SecurityTest.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AdminNotification\Test\Unit\Model\System\Message;
  7. class SecurityTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \PHPUnit_Framework_MockObject_MockObject
  11. */
  12. protected $_cacheMock;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $_scopeConfigMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $_configMock;
  21. /**
  22. * @var \PHPUnit_Framework_MockObject_MockObject
  23. */
  24. protected $_curlFactoryMock;
  25. /**
  26. * @var \Magento\AdminNotification\Model\System\Message\Security
  27. */
  28. protected $_messageModel;
  29. protected function setUp()
  30. {
  31. //Prepare objects for constructor
  32. $this->_cacheMock = $this->createMock(\Magento\Framework\App\CacheInterface::class);
  33. $this->_scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
  34. $this->_curlFactoryMock = $this->createPartialMock(
  35. \Magento\Framework\HTTP\Adapter\CurlFactory::class,
  36. ['create']
  37. );
  38. $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  39. $arguments = [
  40. 'cache' => $this->_cacheMock,
  41. 'scopeConfig' => $this->_scopeConfigMock,
  42. 'curlFactory' => $this->_curlFactoryMock,
  43. ];
  44. $this->_messageModel = $objectManagerHelper->getObject(
  45. \Magento\AdminNotification\Model\System\Message\Security::class,
  46. $arguments
  47. );
  48. }
  49. /**
  50. *
  51. * @param $expectedResult
  52. * @param $cached
  53. * @param $response
  54. * @return void
  55. * @dataProvider isDisplayedDataProvider
  56. */
  57. public function testIsDisplayed($expectedResult, $cached, $response)
  58. {
  59. $this->_cacheMock->expects($this->any())->method('load')->will($this->returnValue($cached));
  60. $this->_cacheMock->expects($this->any())->method('save')->will($this->returnValue(null));
  61. $httpAdapterMock = $this->createMock(\Magento\Framework\HTTP\Adapter\Curl::class);
  62. $httpAdapterMock->expects($this->any())->method('read')->will($this->returnValue($response));
  63. $this->_curlFactoryMock->expects($this->any())->method('create')->will($this->returnValue($httpAdapterMock));
  64. $this->_scopeConfigMock->expects($this->any())->method('getValue')->will($this->returnValue(null));
  65. $this->assertEquals($expectedResult, $this->_messageModel->isDisplayed());
  66. }
  67. /**
  68. * @return array
  69. */
  70. public function isDisplayedDataProvider()
  71. {
  72. return [
  73. 'cached_case' => [false, true, ''],
  74. 'accessible_file' => [true, false, 'HTTP/1.1 200'],
  75. 'inaccessible_file' => [false, false, 'HTTP/1.1 403']
  76. ];
  77. }
  78. public function testGetText()
  79. {
  80. $messageStart = 'Your web server is set up incorrectly';
  81. $this->assertStringStartsWith($messageStart, (string)$this->_messageModel->getText());
  82. }
  83. }