‪TYPO3CMS  11.5
PagesXmlSitemapDataProviderTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use Prophecy\PhpUnit\ProphecyTrait;
21 use Psr\Http\Message\ServerRequestInterface;
22 use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
24 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
25 
26 class ‪PagesXmlSitemapDataProviderTest extends UnitTestCase
27 {
28  use ProphecyTrait;
29 
30  protected ‪$resetSingletonInstances = true;
31 
35  protected array ‪$items;
36 
37  public function ‪setUp(): void
38  {
39  parent::setUp();
40  $this->items = [
41  [
42  'loc' => 'https://yourdomain.com/page-1',
43  'lastMod' => 1535655601,
44  ],
45  [
46  'loc' => 'https://yourdomain.com/page-2',
47  'lastMod' => 1530432000,
48  ],
49  [
50  'loc' => 'https://yourdomain.com/page-3',
51  'lastMod' => 1535655756,
52  ],
53  [
54  'loc' => 'https://yourdomain.com/page-4',
55  'lastMod' => 1530432001,
56  ],
57  ];
58  }
59 
63  public function ‪checkIfCorrectKeyIsGivenAfterConstruct(): void
64  {
65  $key = 'dummyKey';
66  $cObj = $this->prophesize(ContentObjectRenderer::class);
67 
68  $subject = $this->getAccessibleMock(
69  PagesXmlSitemapDataProvider::class,
70  ['generateItems'],
71  [$this->prophesize(ServerRequestInterface::class)->reveal(), $key, [], $cObj->reveal()],
72  '',
73  true
74  );
75  self::assertEquals($key, $subject->getKey());
76  }
77 
82  public function ‪checkGetItemsReturnsDefinedItems(int $numberOfItemsPerPage): void
83  {
84  $key = 'dummyKey';
85  $cObj = $this->prophesize(ContentObjectRenderer::class);
86 
87  $subject = $this->getAccessibleMock(
88  PagesXmlSitemapDataProvider::class,
89  ['generateItems', 'defineUrl'],
90  [$this->prophesize(ServerRequestInterface::class)->reveal(), $key, [], $cObj->reveal()],
91  '',
92  false
93  );
94  $subject->_set('request', $this->prophesize(ServerRequestInterface::class)->reveal());
95  $subject->_set('items', $this->items);
96  $subject->_set('numberOfItemsPerPage', $numberOfItemsPerPage);
97 
98  $subject->method('defineUrl')->willReturnCallback(
99  static function ($input) {
100  return $input;
101  }
102  );
103 
104  $returnedItems = $subject->getItems();
105  $expectedReturnedItems = array_slice($this->items, 0, $numberOfItemsPerPage);
106 
107  self::assertLessThanOrEqual($numberOfItemsPerPage, count($returnedItems));
108 
109  self::assertEquals($expectedReturnedItems, $returnedItems);
110  }
111 
115  public function ‪checkGetLastModReturnsRightDate(): void
116  {
117  $key = 'dummyKey';
118  $cObj = $this->prophesize(ContentObjectRenderer::class);
119 
120  $subject = $this->getAccessibleMock(
121  PagesXmlSitemapDataProvider::class,
122  ['generateItems'],
123  [$this->prophesize(ServerRequestInterface::class)->reveal(), $key, [], $cObj->reveal()],
124  '',
125  false
126  );
127 
128  $subject->_set('items', $this->items);
129 
130  self::assertEquals(1535655756, $subject->getLastModified());
131  }
132 
136  public function ‪numberOfItemsPerPageProvider(): array
137  {
138  return [
139  '1 items per page' => [1],
140  '3 items per page' => [3],
141  '100 items per page' => [100],
142  ];
143  }
144 }
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\checkGetItemsReturnsDefinedItems
‪checkGetItemsReturnsDefinedItems(int $numberOfItemsPerPage)
Definition: PagesXmlSitemapDataProviderTest.php:81
‪TYPO3\CMS\Seo\XmlSitemap\PagesXmlSitemapDataProvider
Definition: PagesXmlSitemapDataProvider.php:34
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\checkGetLastModReturnsRightDate
‪checkGetLastModReturnsRightDate()
Definition: PagesXmlSitemapDataProviderTest.php:114
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\$resetSingletonInstances
‪$resetSingletonInstances
Definition: PagesXmlSitemapDataProviderTest.php:29
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest
Definition: PagesXmlSitemapDataProviderTest.php:27
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\$items
‪array $items
Definition: PagesXmlSitemapDataProviderTest.php:34
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\numberOfItemsPerPageProvider
‪array numberOfItemsPerPageProvider()
Definition: PagesXmlSitemapDataProviderTest.php:135
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\checkIfCorrectKeyIsGivenAfterConstruct
‪checkIfCorrectKeyIsGivenAfterConstruct()
Definition: PagesXmlSitemapDataProviderTest.php:62
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap
Definition: PagesXmlSitemapDataProviderTest.php:18
‪TYPO3\CMS\Seo\Tests\Unit\XmlSitemap\PagesXmlSitemapDataProviderTest\setUp
‪setUp()
Definition: PagesXmlSitemapDataProviderTest.php:36