From 3bffb4cc8d16dcb5a4fa5358accd3b3bcedfcd02 Mon Sep 17 00:00:00 2001 From: Vimal Kumar Date: Sat, 18 Jan 2020 14:17:17 +0530 Subject: [PATCH 1/6] fixed issue #25761 --- .../Sitemap/Model/ItemProvider/StoreUrl.php | 54 ++++++++++++++++ .../ItemProvider/StoreUrlConfigReader.php | 61 +++++++++++++++++++ .../Magento/Sitemap/etc/adminhtml/system.xml | 14 ++++- app/code/Magento/Sitemap/etc/config.xml | 4 ++ app/code/Magento/Sitemap/etc/di.xml | 6 ++ 5 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php create mode 100644 app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php new file mode 100644 index 0000000000000..dd7c50385945f --- /dev/null +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php @@ -0,0 +1,54 @@ +itemFactory = $itemFactory; + $this->configReader = $configReader; + } + + /** + * {@inheritdoc} + */ + public function getItems($storeId) + { + $items[] = $this->itemFactory->create([ + 'url' => '', + 'priority' => $this->configReader->getPriority($storeId), + 'changeFrequency' => $this->configReader->getChangeFrequency($storeId), + ]); + + return $items; + } +} diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php new file mode 100644 index 0000000000000..9a33028d77c76 --- /dev/null +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php @@ -0,0 +1,61 @@ +scopeConfig = $scopeConfig; + } + + /** + * {@inheritdoc} + */ + public function getPriority($storeId) + { + return (string)$this->scopeConfig->getValue( + self::XML_PATH_PRIORITY, + ScopeInterface::SCOPE_STORE, + $storeId + ); + } + + /** + * {@inheritdoc} + */ + public function getChangeFrequency($storeId) + { + return (string)$this->scopeConfig->getValue( + self::XML_PATH_CHANGE_FREQUENCY, + ScopeInterface::SCOPE_STORE, + $storeId + ); + } +} diff --git a/app/code/Magento/Sitemap/etc/adminhtml/system.xml b/app/code/Magento/Sitemap/etc/adminhtml/system.xml index 57c426c68e83f..46ae510287716 100644 --- a/app/code/Magento/Sitemap/etc/adminhtml/system.xml +++ b/app/code/Magento/Sitemap/etc/adminhtml/system.xml @@ -51,7 +51,19 @@ Valid values range from 0.0 to 1.0. - + + + + + Magento\Sitemap\Model\Config\Source\Frequency + + + + Magento\Sitemap\Model\Config\Backend\Priority + Valid values range from 0.0 to 1.0. + + + diff --git a/app/code/Magento/Sitemap/etc/config.xml b/app/code/Magento/Sitemap/etc/config.xml index 6f14ff728ac4f..36b2cc2207422 100644 --- a/app/code/Magento/Sitemap/etc/config.xml +++ b/app/code/Magento/Sitemap/etc/config.xml @@ -25,6 +25,10 @@ daily all + + 1 + daily + 0 diff --git a/app/code/Magento/Sitemap/etc/di.xml b/app/code/Magento/Sitemap/etc/di.xml index e627b3b50fff9..4c4a5f98f737a 100644 --- a/app/code/Magento/Sitemap/etc/di.xml +++ b/app/code/Magento/Sitemap/etc/di.xml @@ -25,12 +25,18 @@ + Magento\Sitemap\Model\ItemProvider\StoreUrl Magento\Sitemap\Model\ItemProvider\Category Magento\Sitemap\Model\ItemProvider\CmsPage Magento\Sitemap\Model\ItemProvider\Product + + + Magento\Sitemap\Model\ItemProvider\StoreUrlConfigReader + + Magento\Sitemap\Model\ItemProvider\CategoryConfigReader From 57b8f53c447a8b07f521a677678921364891b3b6 Mon Sep 17 00:00:00 2001 From: Deepak S Nair Date: Mon, 20 Jan 2020 10:25:01 +0530 Subject: [PATCH 2/6] update sort order --- app/code/Magento/Sitemap/etc/adminhtml/system.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Sitemap/etc/adminhtml/system.xml b/app/code/Magento/Sitemap/etc/adminhtml/system.xml index 46ae510287716..8814d7dcf67bd 100644 --- a/app/code/Magento/Sitemap/etc/adminhtml/system.xml +++ b/app/code/Magento/Sitemap/etc/adminhtml/system.xml @@ -53,11 +53,11 @@ - + Magento\Sitemap\Model\Config\Source\Frequency - + Magento\Sitemap\Model\Config\Backend\Priority Valid values range from 0.0 to 1.0. @@ -106,7 +106,7 @@ - + @@ -118,7 +118,7 @@ validate-number validate-greater-than-zero - + From f165a5375830077ebaed7d07f7d8c965332ffae9 Mon Sep 17 00:00:00 2001 From: Deepak S Nair Date: Thu, 23 Jan 2020 11:51:32 +0530 Subject: [PATCH 3/6] fixed #25761 - added automated test cases --- .../Unit/Model/ItemProvider/StoreUrlTest.php | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php diff --git a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php new file mode 100644 index 0000000000000..6a6d2a5770439 --- /dev/null +++ b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php @@ -0,0 +1,70 @@ +getConfigReaderMock(); + $itemFactoryMock = $this->getItemFactoryMock(); + $resolver = new StoreUrlItemResolver($configReaderMock, $itemFactoryMock); + $items = $resolver->getItems(1); + + $this->assertTrue(count($items) == 1); + foreach ($items as $index => $item) { + $this->assertSame('daily', $items[$index]->getChangeFrequency()); + $this->assertSame('1.0', $items[$index]->getPriority()); + } + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function getItemFactoryMock() + { + $itemFactoryMock = $this->getMockBuilder(SitemapItemInterfaceFactory::class) + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + + $itemFactoryMock->expects($this->any()) + ->method('create') + ->willReturnCallback(function ($data) { + $helper = new ObjectManager($this); + + return $helper->getObject(SitemapItem::class, $data); + }); + + return $itemFactoryMock; + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject + */ + private function getConfigReaderMock() + { + $configReaderMock = $this->getMockForAbstractClass(ConfigReaderInterface::class); + $configReaderMock->expects($this->any()) + ->method('getPriority') + ->willReturn('1.0'); + $configReaderMock->expects($this->any()) + ->method('getChangeFrequency') + ->willReturn('daily'); + + return $configReaderMock; + } +} \ No newline at end of file From 8f5b2c7ff88d4771ad34bd0548185d3cc0c30643 Mon Sep 17 00:00:00 2001 From: Deepak S Nair Date: Thu, 23 Jan 2020 14:33:12 +0530 Subject: [PATCH 4/6] fixed #25761 - update test case and one comment --- app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php | 2 +- .../Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php index dd7c50385945f..e262f56d0905f 100644 --- a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php @@ -25,7 +25,7 @@ class StoreUrl implements ItemProviderInterface private $configReader; /** - * CategorySitemapItemResolver constructor. + * StoreUrlSitemapItemResolver constructor. * * @param ConfigReaderInterface $configReader * @param SitemapItemInterfaceFactory $itemFactory diff --git a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php index 6a6d2a5770439..62b30aa176bf1 100644 --- a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php +++ b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php @@ -25,9 +25,9 @@ public function testGetItems() $items = $resolver->getItems(1); $this->assertTrue(count($items) == 1); - foreach ($items as $index => $item) { - $this->assertSame('daily', $items[$index]->getChangeFrequency()); - $this->assertSame('1.0', $items[$index]->getPriority()); + foreach ($items as $item) { + $this->assertSame('daily', $item->getChangeFrequency()); + $this->assertSame('1.0', $item->getPriority()); } } From d93fe31aa16a297c28dcba4c5f8ad906475e08f2 Mon Sep 17 00:00:00 2001 From: Deepak S Nair Date: Thu, 23 Jan 2020 18:14:33 +0530 Subject: [PATCH 5/6] fix #25761 - resolved feedbacks --- .../Model/ItemProvider/StoreUrlConfigReader.php | 4 ++-- .../Test/Unit/Model/ItemProvider/StoreUrlTest.php | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php index 9a33028d77c76..782863e79ea4d 100644 --- a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php @@ -36,7 +36,7 @@ public function __construct(ScopeConfigInterface $scopeConfig) } /** - * {@inheritdoc} + * @inheritdoc */ public function getPriority($storeId) { @@ -48,7 +48,7 @@ public function getPriority($storeId) } /** - * {@inheritdoc} + * @inheritdoc */ public function getChangeFrequency($storeId) { diff --git a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php index 62b30aa176bf1..e18a54889a1b2 100644 --- a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php +++ b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php @@ -11,8 +11,10 @@ use Magento\Sitemap\Model\ItemProvider\StoreUrl as StoreUrlItemResolver; use Magento\Sitemap\Model\SitemapItem; use Magento\Sitemap\Model\SitemapItemInterfaceFactory; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; -class StoreUrlTest extends \PHPUnit\Framework\TestCase +class StoreUrlTest extends TestCase { /** * test for getItems method @@ -24,7 +26,7 @@ public function testGetItems() $resolver = new StoreUrlItemResolver($configReaderMock, $itemFactoryMock); $items = $resolver->getItems(1); - $this->assertTrue(count($items) == 1); + $this->assertCount(1, $items); foreach ($items as $item) { $this->assertSame('daily', $item->getChangeFrequency()); $this->assertSame('1.0', $item->getPriority()); @@ -32,7 +34,7 @@ public function testGetItems() } /** - * @return \PHPUnit_Framework_MockObject_MockObject + * @return SitemapItemInterfaceFactory|MockObject */ private function getItemFactoryMock() { @@ -53,7 +55,7 @@ private function getItemFactoryMock() } /** - * @return \PHPUnit_Framework_MockObject_MockObject + * @return ConfigReaderInterface|MockObject */ private function getConfigReaderMock() { From dec897285bb89e971c9597746d501bf9e84515f6 Mon Sep 17 00:00:00 2001 From: Deepak S Nair Date: Mon, 27 Jan 2020 19:25:14 +0530 Subject: [PATCH 6/6] fix-25761 : resolved static test issues and added translation --- app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php | 5 ++++- .../Sitemap/Model/ItemProvider/StoreUrlConfigReader.php | 3 +++ .../Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php | 2 +- app/code/Magento/Sitemap/i18n/en_US.csv | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php index e262f56d0905f..11a2d585d8da6 100644 --- a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrl.php @@ -8,6 +8,9 @@ use Magento\Sitemap\Model\SitemapItemInterfaceFactory; +/** + * Class for adding Store Url in sitemap + */ class StoreUrl implements ItemProviderInterface { /** @@ -39,7 +42,7 @@ public function __construct( } /** - * {@inheritdoc} + * @inheritdoc */ public function getItems($storeId) { diff --git a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php index 782863e79ea4d..b18dd73fb2836 100644 --- a/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php +++ b/app/code/Magento/Sitemap/Model/ItemProvider/StoreUrlConfigReader.php @@ -9,6 +9,9 @@ use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Store\Model\ScopeInterface; +/** + * Class for getting configuration for Store Url + */ class StoreUrlConfigReader implements ConfigReaderInterface { /**#@+ diff --git a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php index e18a54889a1b2..0edfd253f0c1d 100644 --- a/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php +++ b/app/code/Magento/Sitemap/Test/Unit/Model/ItemProvider/StoreUrlTest.php @@ -69,4 +69,4 @@ private function getConfigReaderMock() return $configReaderMock; } -} \ No newline at end of file +} diff --git a/app/code/Magento/Sitemap/i18n/en_US.csv b/app/code/Magento/Sitemap/i18n/en_US.csv index 29ecd7e22773e..8a7ac86e2fb47 100644 --- a/app/code/Magento/Sitemap/i18n/en_US.csv +++ b/app/code/Magento/Sitemap/i18n/en_US.csv @@ -64,3 +64,4 @@ ID,ID "Link for Google","Link for Google" "Last Generated","Last Generated" Action,Action +"Store Url Options","Store Url Options"