Skip to content

Commit c4c4838

Browse files
committed
MAGETWO-61060: [Backport] - Incorrect URLs in sitemap when generated from admin with 'Use Secure URLs in Admin' = Yes - for 2.0
1 parent eef788e commit c4c4838

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
3+
namespace Magento\Sitemap\Model;
4+
5+
use Magento\Framework\App\CacheInterface;
6+
use Magento\TestFramework\Helper\Bootstrap;
7+
use Magento\Framework\App\Filesystem;
8+
9+
/**
10+
* Tests Magento\Framework\ComposerInformation
11+
*/
12+
class SitemapTest extends \PHPUnit_Framework_TestCase
13+
{
14+
/**
15+
* @var \Magento\Framework\ObjectManagerInterface
16+
*/
17+
private $objectManager;
18+
19+
/**
20+
* @var \Magento\Sitemap\Model\Sitemap
21+
*/
22+
private $sitemap;
23+
24+
/**
25+
* Remove cached configuration and reinitialize the application
26+
*/
27+
private function refreshConfiguration()
28+
{
29+
$this->objectManager->get(CacheInterface::class)
30+
->clean([\Magento\Framework\App\Config::CACHE_TAG]);
31+
Bootstrap::getInstance()->reinitialize();
32+
}
33+
34+
/**
35+
* Set up
36+
*/
37+
public function setUp()
38+
{
39+
$this->objectManager = Bootstrap::getObjectManager();
40+
$this->sitemap = $this->objectManager->create(Sitemap::class);
41+
}
42+
43+
/**
44+
* Test generation sitemap when secure url is on
45+
*
46+
* @magentoDataFixture Magento/Sitemap/_files/sitemap_secure.php
47+
*/
48+
public function testGenerationWithAdminSecureUrl()
49+
{
50+
self::refreshConfiguration();
51+
52+
$this->sitemap->setData(
53+
[
54+
'sitemap_id' => '1',
55+
'sitemap_filename' => 'sitemap.xml',
56+
'sitemap_path' => '/',
57+
'store_id' => '1'
58+
]
59+
);
60+
61+
$result = $this->sitemap->generateXml();
62+
63+
$filename = BP . $result->getSitemapPath() . $result->getSitemapFilename();
64+
65+
$this->assertFileExists($filename, 'File not exists! ' . $filename);
66+
67+
$file = $this->objectManager->get(\Magento\Framework\Filesystem\Io\File::class);
68+
69+
$file_content = $file->read($filename);
70+
71+
$this->assertNotContains('https', $file_content, "File must not contain https in sitemap file! ");
72+
}
73+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
4+
5+
$scopeInterface = $objectManager->get(
6+
\Magento\Framework\App\Config\ScopeConfigInterface::class
7+
);
8+
$writerInterface = $objectManager->get(
9+
\Magento\Framework\App\Config\Storage\WriterInterface::class
10+
);
11+
12+
$registry = $objectManager->get(\Magento\Framework\Registry::class);
13+
14+
$webSecureBaseUrl = $scopeInterface->getValue('web/secure/base_url');
15+
$webSecureUseInAdminhtml = $scopeInterface->getValue('web/secure/use_in_adminhtml');
16+
17+
$registry->register('web_secure_base_url', $webSecureBaseUrl);
18+
$registry->register('web_secure_use_in_adminhtml', $webSecureUseInAdminhtml);
19+
20+
$writerInterface->save(
21+
'web/secure/base_url',
22+
'https://example.com/'
23+
);
24+
$writerInterface->save(
25+
'web/secure/use_in_adminhtml',
26+
'1'
27+
);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
4+
5+
$writerInterface = $objectManager->get(
6+
\Magento\Framework\App\Config\Storage\WriterInterface::class
7+
);
8+
9+
$registry = $objectManager->get(\Magento\Framework\Registry::class);
10+
11+
if (null !== $registry->registry('web_secure_base_url')) {
12+
$writerInterface->save(
13+
'web/secure/base_url',
14+
$registry->registry('web_secure_base_url')
15+
);
16+
}
17+
18+
if (null !== $registry->registry('web_secure_use_in_adminhtml')) {
19+
$writerInterface->save(
20+
'web/secure/use_in_adminhtml',
21+
$registry->registry('web_secure_use_in_adminhtml')
22+
);
23+
}
24+
25+
$registry->unregister('web_secure_base_url');
26+
$registry->unregister('web_secure_use_in_adminhtml');

0 commit comments

Comments
 (0)