From 751143bc1c79c14979b1282ec5115ffa58f5d0f9 Mon Sep 17 00:00:00 2001 From: magento-engcom-team Date: Wed, 25 Oct 2017 15:47:54 +0300 Subject: [PATCH] MAGETWO-6802: Magento\Search\Helper\getSuggestUrl() not used in search template. --- app/code/Magento/Search/Helper/Data.php | 2 +- .../Search/Test/Unit/Helper/DataTest.php | 46 +++++++++++++++++++ .../view/frontend/templates/form.mini.phtml | 4 +- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Search/Helper/Data.php b/app/code/Magento/Search/Helper/Data.php index f3ad8a39de00e..e813d7342761f 100644 --- a/app/code/Magento/Search/Helper/Data.php +++ b/app/code/Magento/Search/Helper/Data.php @@ -124,7 +124,7 @@ public function getSuggestUrl() { return $this->_getUrl( 'search/ajax/suggest', - ['_secure' => $this->storeManager->getStore()->isCurrentlySecure()] + ['_secure' => $this->_getRequest()->isSecure()] ); } diff --git a/app/code/Magento/Search/Test/Unit/Helper/DataTest.php b/app/code/Magento/Search/Test/Unit/Helper/DataTest.php index 5cfde7e8efda9..291362734feff 100644 --- a/app/code/Magento/Search/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/Search/Test/Unit/Helper/DataTest.php @@ -3,6 +3,7 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ + namespace Magento\Search\Test\Unit\Helper; /** @@ -43,6 +44,11 @@ class DataTest extends \PHPUnit\Framework\TestCase */ protected $storeManagerMock; + /** + * @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject + */ + private $urlBuilderMock; + protected function setUp() { $this->stringMock = $this->createMock(\Magento\Framework\Stdlib\StringUtils::class); @@ -53,9 +59,14 @@ protected function setUp() ->disableOriginalConstructor() ->setMethods([]) ->getMock(); + $this->urlBuilderMock = $this->getMockBuilder(\Magento\Framework\UrlInterface::class) + ->setMethods(['getUrl']) + ->disableOriginalConstructor() + ->getMockForAbstractClass(); $this->contextMock = $this->createMock(\Magento\Framework\App\Helper\Context::class); $this->contextMock->expects($this->any())->method('getScopeConfig')->willReturn($this->scopeConfigMock); $this->contextMock->expects($this->any())->method('getRequest')->willReturn($this->requestMock); + $this->contextMock->expects($this->any())->method('getUrlBuilder')->willReturn($this->urlBuilderMock); $this->model = new \Magento\Search\Helper\Data( $this->contextMock, @@ -126,4 +137,39 @@ public function queryTextDataProvider() ['testtest', 7, 'testtes'], ]; } + + /** + * Test getSuggestUrl() take into consideration type of request(secure, non-secure). + * + * @dataProvider getSuggestUrlDataProvider + * @param bool $isSecure + * @return void + */ + public function testGetSuggestUrl(bool $isSecure) + { + $this->requestMock->expects(self::once()) + ->method('isSecure') + ->willReturn($isSecure); + $this->urlBuilderMock->expects(self::once()) + ->method('getUrl') + ->with(self::identicalTo('search/ajax/suggest'), self::identicalTo(['_secure' => $isSecure])); + $this->model->getSuggestUrl(); + } + + /** + * Provide test data for testGetSuggestUrl() test. + * + * @return array + */ + public function getSuggestUrlDataProvider() + { + return [ + 'non-secure' => [ + 'isSecure' => false, + ], + 'secure' => [ + 'secure' => true, + ], + ]; + } } diff --git a/app/code/Magento/Search/view/frontend/templates/form.mini.phtml b/app/code/Magento/Search/view/frontend/templates/form.mini.phtml index c4297b404717c..2ea87be13d5e3 100644 --- a/app/code/Magento/Search/view/frontend/templates/form.mini.phtml +++ b/app/code/Magento/Search/view/frontend/templates/form.mini.phtml @@ -9,7 +9,7 @@ helper('Magento\Search\Helper\Data'); +$helper = $this->helper(\Magento\Search\Helper\Data::class); ?>