Skip to content

Commit c9c7567

Browse files
author
Igor Melnikov
committed
Merge branch 'upstream-develop' into MAGETWO-44975-incorrect-messgae-on-success-page
2 parents 3b468f5 + f44c65d commit c9c7567

File tree

79 files changed

+266
-77
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+266
-77
lines changed

app/code/Magento/Backend/App/Area/FrontNameResolver.php

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
namespace Magento\Backend\App\Area;
99

1010
use Magento\Backend\Setup\ConfigOptionsList;
11+
use Magento\Framework\App\Config\ScopeConfigInterface;
1112
use Magento\Framework\App\DeploymentConfig;
13+
use Magento\Store\Model\ScopeInterface;
14+
use Magento\Store\Model\Store;
1215

1316
class FrontNameResolver implements \Magento\Framework\App\Area\FrontNameResolverInterface
1417
{
@@ -38,27 +41,51 @@ class FrontNameResolver implements \Magento\Framework\App\Area\FrontNameResolver
3841
*/
3942
protected $deploymentConfig;
4043

44+
/** @var ScopeConfigInterface */
45+
private $configInterface;
46+
4147
/**
4248
* @param \Magento\Backend\App\Config $config
4349
* @param DeploymentConfig $deploymentConfig
50+
* @param ScopeConfigInterface $configInterface
4451
*/
45-
public function __construct(\Magento\Backend\App\Config $config, DeploymentConfig $deploymentConfig)
46-
{
52+
public function __construct(
53+
\Magento\Backend\App\Config $config,
54+
DeploymentConfig $deploymentConfig,
55+
ScopeConfigInterface $configInterface
56+
) {
4757
$this->config = $config;
4858
$this->defaultFrontName = $deploymentConfig->get(ConfigOptionsList::CONFIG_PATH_BACKEND_FRONTNAME);
59+
$this->configInterface = $configInterface;
4960
}
5061

5162
/**
5263
* Retrieve area front name
5364
*
54-
* @return string
65+
* @param bool $checkHost If true, verify front name is valid for this url (hostname is correct)
66+
* @return string|bool
5567
*/
56-
public function getFrontName()
68+
public function getFrontName($checkHost = false)
5769
{
70+
if ($checkHost && !$this->isHostBackend()) {
71+
return false;
72+
}
5873
$isCustomPathUsed = (bool)(string)$this->config->getValue(self::XML_PATH_USE_CUSTOM_ADMIN_PATH);
5974
if ($isCustomPathUsed) {
6075
return (string)$this->config->getValue(self::XML_PATH_CUSTOM_ADMIN_PATH);
6176
}
6277
return $this->defaultFrontName;
6378
}
79+
80+
/**
81+
* Return whether the host from request is the backend host
82+
* @return bool
83+
*/
84+
public function isHostBackend()
85+
{
86+
$backendUrl = $this->configInterface->getValue(Store::XML_PATH_UNSECURE_BASE_URL, ScopeInterface::SCOPE_STORE);
87+
$backendHost = parse_url(trim($backendUrl), PHP_URL_HOST);
88+
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
89+
return (strcasecmp($backendHost, $host) === 0);
90+
}
6491
}

app/code/Magento/Backend/App/Router/NoRouteHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function process(\Magento\Framework\App\RequestInterface $request)
4242
$requestPathParams = explode('/', trim($request->getPathInfo(), '/'));
4343
$areaFrontName = array_shift($requestPathParams);
4444

45-
if ($areaFrontName == $this->helper->getAreaFrontName()) {
45+
if ($areaFrontName === $this->helper->getAreaFrontName(true)) {
4646
$moduleName = $this->routeConfig->getRouteFrontName('adminhtml');
4747
$actionNamespace = 'noroute';
4848
$actionName = 'index';

app/code/Magento/Backend/Helper/Data.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,11 @@ public function getHomePageUrl()
198198
/**
199199
* Return Backend area front name
200200
*
201-
* @return string
201+
* @param bool $checkHost
202+
* @return bool|string
202203
*/
203-
public function getAreaFrontName()
204+
public function getAreaFrontName($checkHost = false)
204205
{
205-
return $this->_frontNameResolver->getFrontName();
206+
return $this->_frontNameResolver->getFrontName($checkHost);
206207
}
207208
}

app/code/Magento/Backend/Test/Unit/App/Area/FrontNameResolverTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ protected function setUp()
3333
->with(ConfigOptionsList::CONFIG_PATH_BACKEND_FRONTNAME)
3434
->will($this->returnValue($this->_defaultFrontName));
3535
$this->_configMock = $this->getMock('\Magento\Backend\App\Config', [], [], '', false);
36-
$this->_model = new FrontNameResolver($this->_configMock, $deploymentConfigMock);
36+
$configMock = $this->getMock('\Magento\Framework\App\Config\ScopeConfigInterface', [], [], '', false);
37+
$this->_model = new FrontNameResolver($this->_configMock, $deploymentConfigMock, $configMock);
3738
}
3839

3940
public function testIfCustomPathUsed()

app/code/Magento/Backend/Test/Unit/Model/Menu/Config/XsdTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class XsdTest extends \PHPUnit_Framework_TestCase
2020

2121
protected function setUp()
2222
{
23+
if (!function_exists('libxml_set_external_entity_loader')) {
24+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
25+
}
2326
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2427
$this->_xsdSchema = $urnResolver->getRealPath('urn:magento:module:Magento_Backend:etc/menu.xsd');
2528
$this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();

app/code/Magento/Catalog/Test/Unit/Model/Attribute/Config/XsdTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ class XsdTest extends \PHPUnit_Framework_TestCase
1616

1717
protected function setUp()
1818
{
19+
if (!function_exists('libxml_set_external_entity_loader')) {
20+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
21+
}
1922
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2023
$this->_schemaFile = $urnResolver->getRealPath('urn:magento:module:Magento_Catalog:etc/catalog_attributes.xsd');
2124
}

app/code/Magento/Catalog/Test/Unit/Model/ProductOptions/Config/XsdTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class XsdTest extends \PHPUnit_Framework_TestCase
2020

2121
protected function setUp()
2222
{
23+
if (!function_exists('libxml_set_external_entity_loader')) {
24+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
25+
}
2326
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2427
$this->_xsdSchemaPath = $urnResolver->getRealPath('urn:magento:module:Magento_Catalog:etc/');
2528
$this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();

app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/XsdMergedTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class XsdMergedTest extends \PHPUnit_Framework_TestCase
2020

2121
protected function setUp()
2222
{
23+
if (!function_exists('libxml_set_external_entity_loader')) {
24+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
25+
}
2326
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2427
$this->_xsdSchema = $urnResolver->getRealPath(
2528
'urn:magento:module:Magento_Catalog:etc/product_types_merged.xsd'

app/code/Magento/Catalog/Test/Unit/Model/ProductTypes/Config/XsdTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class XsdTest extends \PHPUnit_Framework_TestCase
2020

2121
protected function setUp()
2222
{
23+
if (!function_exists('libxml_set_external_entity_loader')) {
24+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
25+
}
2326
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2427
$this->_xsdSchema = $urnResolver->getRealPath('urn:magento:module:Magento_Catalog:etc/product_types.xsd');
2528
$this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();

app/code/Magento/Config/Test/Unit/Model/Config/XsdTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ class XsdTest extends \PHPUnit_Framework_TestCase
2020

2121
protected function setUp()
2222
{
23+
if (!function_exists('libxml_set_external_entity_loader')) {
24+
$this->markTestSkipped('Skipped on HHVM. Will be fixed in MAGETWO-45033');
25+
}
2326
$urnResolver = new \Magento\Framework\Config\Dom\UrnResolver();
2427
$this->_xsdSchema = $urnResolver->getRealPath('urn:magento:module:Magento_Config:etc/system.xsd');
2528
$this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();

0 commit comments

Comments
 (0)