DataTest.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Developer\Test\Unit\Helper;
  7. class DataTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Developer\Helper\Data
  11. */
  12. protected $helper;
  13. /**
  14. * @var \Magento\Framework\App\Config\ScopeConfigInterface | \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $scopeConfigMock;
  17. /**
  18. * @var \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $remoteAddressMock;
  21. /**
  22. * @var \Magento\Framework\HTTP\Header | \PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $httpHeaderMock;
  25. protected function setUp()
  26. {
  27. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  28. $className = \Magento\Developer\Helper\Data::class;
  29. $arguments = $objectManagerHelper->getConstructArguments($className);
  30. /** @var \Magento\Framework\App\Helper\Context $context */
  31. $context = $arguments['context'];
  32. $this->scopeConfigMock = $context->getScopeConfig();
  33. $this->remoteAddressMock = $context->getRemoteAddress();
  34. $this->httpHeaderMock = $context->getHttpHeader();
  35. $this->helper = $objectManagerHelper->getObject($className, $arguments);
  36. }
  37. /**
  38. * @param array $allowedIps
  39. * @param bool $expected
  40. * @dataProvider isDevAllowedDataProvider
  41. */
  42. public function testIsDevAllowed($allowedIps, $expected, $callNum = 1)
  43. {
  44. $storeId = 'storeId';
  45. $this->scopeConfigMock->expects($this->once())
  46. ->method('getValue')
  47. ->with(
  48. \Magento\Developer\Helper\Data::XML_PATH_DEV_ALLOW_IPS,
  49. \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
  50. $storeId
  51. )->will($this->returnValue($allowedIps));
  52. $this->remoteAddressMock->expects($this->once())
  53. ->method('getRemoteAddress')
  54. ->will($this->returnValue('remoteAddress'));
  55. $this->httpHeaderMock->expects($this->exactly($callNum))
  56. ->method('getHttpHost')
  57. ->will($this->returnValue('httpHost'));
  58. $this->assertEquals($expected, $this->helper->isDevAllowed($storeId));
  59. }
  60. /**
  61. * @return array
  62. */
  63. public function isDevAllowedDataProvider()
  64. {
  65. return [
  66. 'allow_nothing' => [
  67. '',
  68. true,
  69. 0,
  70. ],
  71. 'allow_remote_address' => [
  72. 'ip1, ip2, remoteAddress',
  73. true,
  74. 0,
  75. ],
  76. 'allow_http_host' => [
  77. 'ip1, ip2, httpHost',
  78. true,
  79. ],
  80. 'allow_neither' => [
  81. 'ip1, ip2, ip3',
  82. false,
  83. ],
  84. ];
  85. }
  86. }