/** * @dataProvider isSecureDataProvider * * @param bool $isSecure expected output of isSecure method * @param string $serverHttps value of $_SERVER['HTTPS'] * @param string $headerOffloadKey <Name-Of-Offload-Header> * @param string $headerOffloadValue value of $_SERVER[<Name-Of-Offload-Header>] * @param int $configCall number of times config->getValue is expected to be called */ public function testIsSecure($isSecure, $serverHttps, $headerOffloadKey, $headerOffloadValue, $configCall) { $this->_model = $this->getModel(); $configOffloadHeader = 'Header-From-Proxy'; $configMock = $this->getMockBuilder('Magento\\Framework\\App\\Config')->disableOriginalConstructor()->setMethods(['getValue'])->getMock(); $configMock->expects($this->exactly($configCall))->method('getValue')->with(\Magento\Framework\App\Request\Http::XML_PATH_OFFLOADER_HEADER, ScopeConfigInterface::SCOPE_TYPE_DEFAULT)->willReturn($configOffloadHeader); $this->objectManager->expects($this->exactly($configCall))->method('get')->with('Magento\\Framework\\App\\Config')->will($this->returnValue($configMock)); $this->_model->getServer()->set($headerOffloadKey, $headerOffloadValue); $this->_model->getServer()->set('HTTPS', $serverHttps); $this->assertSame($isSecure, $this->_model->isSecure()); }
/** * Get theme that should be applied for current user-agent according to design exceptions configuration * * @param \Magento\Framework\App\Request\Http $request * @return string|bool */ public function getThemeByRequest(\Magento\Framework\App\Request\Http $request) { $userAgent = $request->getServer('HTTP_USER_AGENT'); if (empty($userAgent)) { return false; } $expressions = $this->scopeConfig->getValue($this->exceptionConfigPath, $this->scopeType); if (!$expressions) { return false; } $expressions = unserialize($expressions); foreach ($expressions as $rule) { if (preg_match($rule['regexp'], $userAgent)) { return $rule['value']; } } return false; }