UrlCheckTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Setup\Controller;
  7. use Magento\TestFramework\Helper\Bootstrap;
  8. use Zend\Stdlib\RequestInterface as Request;
  9. use Zend\View\Model\JsonModel;
  10. class UrlCheckTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var UrlCheck
  14. */
  15. private $controller;
  16. protected function setUp()
  17. {
  18. $this->controller = Bootstrap::getObjectManager()->create(UrlCheck::class);
  19. }
  20. /**
  21. * @param array $requestContent
  22. * @param bool $successUrl
  23. * @param bool $successSecureUrl
  24. * @return void
  25. * @dataProvider indexActionDataProvider
  26. */
  27. public function testIndexAction($requestContent, $successUrl, $successSecureUrl)
  28. {
  29. $requestMock = $this->getMockBuilder(Request::class)
  30. ->getMockForAbstractClass();
  31. $requestMock->expects($this->once())
  32. ->method('getContent')
  33. ->willReturn(json_encode($requestContent));
  34. $requestProperty = new \ReflectionProperty(get_class($this->controller), 'request');
  35. $requestProperty->setAccessible(true);
  36. $requestProperty->setValue($this->controller, $requestMock);
  37. $resultModel = new JsonModel(['successUrl' => $successUrl, 'successSecureUrl' => $successSecureUrl]);
  38. $this->assertEquals($resultModel, $this->controller->indexAction());
  39. }
  40. /**
  41. * @return array
  42. */
  43. public function indexActionDataProvider()
  44. {
  45. return [
  46. [
  47. 'requestContent' => [
  48. 'address' => [
  49. 'actual_base_url' => 'http://example.com/'
  50. ],
  51. 'https' => [
  52. 'text' => 'https://example.com/',
  53. 'admin' => true,
  54. 'front' => false
  55. ],
  56. ],
  57. 'successUrl' => true,
  58. 'successSecureUrl' => true
  59. ],
  60. [
  61. 'requestContent' => [
  62. 'address' => [
  63. 'actual_base_url' => 'http://example.com/folder/'
  64. ],
  65. 'https' => [
  66. 'text' => 'https://example.com/folder_name/',
  67. 'admin' => false,
  68. 'front' => true
  69. ],
  70. ],
  71. 'successUrl' => true,
  72. 'successSecureUrl' => true
  73. ],
  74. [
  75. 'requestContent' => [
  76. 'address' => [
  77. 'actual_base_url' => 'ftp://example.com/'
  78. ],
  79. 'https' => [
  80. 'text' => 'https://example.com_test/',
  81. 'admin' => true,
  82. 'front' => true
  83. ],
  84. ],
  85. 'successUrl' => false,
  86. 'successSecureUrl' => false
  87. ],
  88. ];
  89. }
  90. }