UrlCheckTest.php 2.97 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Setup\Controller;

use Magento\TestFramework\Helper\Bootstrap;
use Zend\Stdlib\RequestInterface as Request;
use Zend\View\Model\JsonModel;

class UrlCheckTest extends \PHPUnit\Framework\TestCase
{
    /**
     * @var UrlCheck
     */
    private $controller;

    protected function setUp()
    {
        $this->controller = Bootstrap::getObjectManager()->create(UrlCheck::class);
    }

    /**
     * @param array $requestContent
     * @param bool $successUrl
     * @param bool $successSecureUrl
     * @return void
     * @dataProvider indexActionDataProvider
     */
    public function testIndexAction($requestContent, $successUrl, $successSecureUrl)
    {
        $requestMock = $this->getMockBuilder(Request::class)
            ->getMockForAbstractClass();
        $requestMock->expects($this->once())
            ->method('getContent')
            ->willReturn(json_encode($requestContent));

        $requestProperty = new \ReflectionProperty(get_class($this->controller), 'request');
        $requestProperty->setAccessible(true);
        $requestProperty->setValue($this->controller, $requestMock);

        $resultModel = new JsonModel(['successUrl' => $successUrl, 'successSecureUrl' => $successSecureUrl]);

        $this->assertEquals($resultModel, $this->controller->indexAction());
    }

    /**
     * @return array
     */
    public function indexActionDataProvider()
    {
        return [
            [
                'requestContent' => [
                    'address' => [
                        'actual_base_url' => 'http://example.com/'
                    ],
                    'https' => [
                        'text' => 'https://example.com/',
                        'admin' => true,
                        'front' => false
                    ],
                ],
                'successUrl' => true,
                'successSecureUrl' => true
            ],
            [
                'requestContent' => [
                    'address' => [
                        'actual_base_url' => 'http://example.com/folder/'
                    ],
                    'https' => [
                        'text' => 'https://example.com/folder_name/',
                        'admin' => false,
                        'front' => true
                    ],
                ],
                'successUrl' => true,
                'successSecureUrl' => true
            ],
            [
                'requestContent' => [
                    'address' => [
                        'actual_base_url' => 'ftp://example.com/'
                    ],
                    'https' => [
                        'text' => 'https://example.com_test/',
                        'admin' => true,
                        'front' => true
                    ],
                ],
                'successUrl' => false,
                'successSecureUrl' => false
            ],
        ];
    }
}