PageRenderTime 47ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/magento/module-backend/Test/Unit/Model/Session/AdminConfigTest.php

https://bitbucket.org/sergiu-tot-fb/vendors
PHP | 143 lines | 100 code | 16 blank | 27 comment | 0 complexity | 0cbe3ee5f9a71f5facb032bbd6b14d3b MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.1, MIT, Apache-2.0
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Test class for \Magento\Backend\Model\Session\AdminConfig
  8. */
  9. namespace Magento\Backend\Test\Unit\Model\Session;
  10. class AdminConfigTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Framework\App\RequestInterface | \PHPUnit_Framework_MockObject_MockObject
  14. */
  15. private $requestMock;
  16. /**
  17. * @var \Magento\Framework\ValidatorFactory | \PHPUnit_Framework_MockObject_MockObject
  18. */
  19. private $validatorFactory;
  20. /**
  21. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  22. */
  23. private $objectManager;
  24. /**
  25. * @var \Magento\Backend\Model\UrlFactory | \PHPUnit_Framework_MockObject_MockObject
  26. */
  27. private $backendUrlFactory;
  28. /**
  29. * @var \Magento\Framework\Filesystem|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. private $filesystemMock;
  32. protected function setUp()
  33. {
  34. $this->requestMock = $this->createPartialMock(
  35. \Magento\Framework\App\Request\Http::class,
  36. ['getBasePath', 'isSecure', 'getHttpHost']
  37. );
  38. $this->requestMock->expects($this->atLeastOnce())->method('getBasePath')->will($this->returnValue('/'));
  39. $this->requestMock->expects($this->atLeastOnce())
  40. ->method('getHttpHost')
  41. ->will($this->returnValue('init.host'));
  42. $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  43. $this->validatorFactory = $this->getMockBuilder(\Magento\Framework\ValidatorFactory::class)
  44. ->setMethods(['setInstanceName', 'create'])
  45. ->disableOriginalConstructor()
  46. ->getMock();
  47. $backendUrl = $this->createMock(\Magento\Backend\Model\Url::class);
  48. $backendUrl->expects($this->once())->method('getBaseUrl')->will($this->returnValue('/'));
  49. $this->backendUrlFactory = $this->createPartialMock(\Magento\Backend\Model\UrlFactory::class, ['create']);
  50. $this->backendUrlFactory->expects($this->any())->method('create')->willReturn($backendUrl);
  51. $this->filesystemMock = $this->createMock(\Magento\Framework\Filesystem::class);
  52. $dirMock = $this->getMockForAbstractClass(\Magento\Framework\Filesystem\Directory\WriteInterface::class);
  53. $this->filesystemMock->expects($this->any())
  54. ->method('getDirectoryWrite')
  55. ->will($this->returnValue($dirMock));
  56. }
  57. public function testSetCookiePathNonDefault()
  58. {
  59. $mockFrontNameResolver = $this->getMockBuilder(\Magento\Backend\App\Area\FrontNameResolver::class)
  60. ->disableOriginalConstructor()
  61. ->getMock();
  62. $mockFrontNameResolver->expects($this->once())
  63. ->method('getFrontName')
  64. ->will($this->returnValue('backend'));
  65. $validatorMock = $this->getMockBuilder(\Magento\Framework\Validator\ValidatorInterface::class)
  66. ->disableOriginalConstructor()
  67. ->getMock();
  68. $validatorMock->expects($this->any())
  69. ->method('isValid')
  70. ->willReturn(true);
  71. $this->validatorFactory->expects($this->any())
  72. ->method('setInstanceName')
  73. ->willReturnSelf();
  74. $this->validatorFactory->expects($this->any())
  75. ->method('create')
  76. ->willReturn($validatorMock);
  77. $adminConfig = $this->objectManager->getObject(
  78. \Magento\Backend\Model\Session\AdminConfig::class,
  79. [
  80. 'validatorFactory' => $this->validatorFactory,
  81. 'request' => $this->requestMock,
  82. 'frontNameResolver' => $mockFrontNameResolver,
  83. 'backendUrlFactory' => $this->backendUrlFactory,
  84. 'filesystem' => $this->filesystemMock,
  85. ]
  86. );
  87. $this->assertEquals('/backend', $adminConfig->getCookiePath());
  88. }
  89. /**
  90. * Test for setting session name and secure_cookie for admin
  91. * @dataProvider requestSecureDataProvider
  92. * @param $secureRequest
  93. */
  94. public function testSetSessionSettingsByConstructor($secureRequest)
  95. {
  96. $sessionName = 'admin';
  97. $this->requestMock->expects($this->exactly(2))->method('isSecure')->willReturn($secureRequest);
  98. $validatorMock = $this->getMockBuilder(\Magento\Framework\Validator\ValidatorInterface::class)
  99. ->disableOriginalConstructor()
  100. ->getMock();
  101. $validatorMock->expects($this->any())
  102. ->method('isValid')
  103. ->willReturn(true);
  104. $this->validatorFactory->expects($this->any())
  105. ->method('setInstanceName')
  106. ->willReturnSelf();
  107. $this->validatorFactory->expects($this->any())
  108. ->method('create')
  109. ->willReturn($validatorMock);
  110. $adminConfig = $this->objectManager->getObject(
  111. \Magento\Backend\Model\Session\AdminConfig::class,
  112. [
  113. 'validatorFactory' => $this->validatorFactory,
  114. 'request' => $this->requestMock,
  115. 'sessionName' => $sessionName,
  116. 'backendUrlFactory' => $this->backendUrlFactory,
  117. 'filesystem' => $this->filesystemMock,
  118. ]
  119. );
  120. $this->assertSame($sessionName, $adminConfig->getName());
  121. $this->assertSame($secureRequest, $adminConfig->getCookieSecure());
  122. }
  123. public function requestSecureDataProvider()
  124. {
  125. return [[true], [false]];
  126. }
  127. }