Skip to content

Commit 61508b3

Browse files
committed
MC-29261: [Magento Cloud] - When admin URL is different to front-base URL admin redirects to storefront
1 parent 9de4a7e commit 61508b3

File tree

2 files changed

+67
-42
lines changed
  • app/code/Magento/CurrencySymbol
    • Controller/Adminhtml/System/Currencysymbol
    • Test/Unit/Controller/Adminhtml/System/Currencysymbol

2 files changed

+67
-42
lines changed

app/code/Magento/CurrencySymbol/Controller/Adminhtml/System/Currencysymbol/Save.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,44 @@
55
*/
66
namespace Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol;
77

8-
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
8+
use Magento\Backend\Model\View\Result\Redirect;
9+
use Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol as CurrencysymbolController;
10+
use Magento\CurrencySymbol\Model\System\Currencysymbol;
11+
use Magento\Framework\App\Action\HttpPostActionInterface;
12+
use Magento\Framework\Controller\ResultInterface;
13+
use Magento\Framework\Filter\FilterManager;
914

1015
/**
1116
* Class Save
1217
*/
13-
class Save extends \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol implements HttpPostActionInterface
18+
class Save extends CurrencysymbolController implements HttpPostActionInterface
1419
{
1520
/**
1621
* Save custom Currency symbol
1722
*
18-
* @return void
23+
* @return ResultInterface
1924
*/
2025
public function execute()
2126
{
27+
/** @var Redirect $resultRedirect */
28+
$resultRedirect = $this->resultRedirectFactory->create();
2229
$symbolsDataArray = $this->getRequest()->getParam('custom_currency_symbol', null);
2330
if (is_array($symbolsDataArray)) {
2431
foreach ($symbolsDataArray as &$symbolsData) {
25-
/** @var $filterManager \Magento\Framework\Filter\FilterManager */
26-
$filterManager = $this->_objectManager->get(\Magento\Framework\Filter\FilterManager::class);
32+
/** @var $filterManager FilterManager */
33+
$filterManager = $this->_objectManager->get(FilterManager::class);
2734
$symbolsData = $filterManager->stripTags($symbolsData);
2835
}
2936
}
3037

3138
try {
32-
$this->_objectManager->create(\Magento\CurrencySymbol\Model\System\Currencysymbol::class)
39+
$this->_objectManager->create(Currencysymbol::class)
3340
->setCurrencySymbolsData($symbolsDataArray);
3441
$this->messageManager->addSuccessMessage(__('You applied the custom currency symbols.'));
3542
} catch (\Exception $e) {
3643
$this->messageManager->addErrorMessage($e->getMessage());
3744
}
3845

39-
$this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
46+
return $resultRedirect->setPath('*');
4047
}
4148
}

app/code/Magento/CurrencySymbol/Test/Unit/Controller/Adminhtml/System/Currencysymbol/SaveTest.php

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,112 +5,126 @@
55
*/
66
namespace Magento\CurrencySymbol\Test\Unit\Controller\Adminhtml\System\Currencysymbol;
77

8+
use Magento\Backend\Helper\Data;
9+
use Magento\Backend\Model\View\Result\Redirect;
10+
use Magento\Backend\Model\View\Result\RedirectFactory;
11+
use Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save;
12+
use Magento\CurrencySymbol\Model\System\Currencysymbol;
13+
use Magento\Framework\App\RequestInterface;
14+
use Magento\Framework\App\Response\RedirectInterface;
15+
use Magento\Framework\App\ResponseInterface;
16+
use Magento\Framework\Filter\FilterManager;
17+
use Magento\Framework\Message\ManagerInterface;
18+
use Magento\Framework\ObjectManagerInterface;
819
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
20+
use PHPUnit\Framework\TestCase;
21+
use PHPUnit\Framework\MockObject\MockObject;
922

1023
/**
1124
* Class SaveTest
1225
*/
13-
class SaveTest extends \PHPUnit\Framework\TestCase
26+
class SaveTest extends TestCase
1427
{
1528
/**
16-
* @var \Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save
29+
* @var Save
1730
*/
1831
protected $action;
1932

2033
/**
21-
* @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject
34+
* @var RedirectFactory|MockObject
35+
*/
36+
private $resultRedirectFactory;
37+
38+
/**
39+
* @var RequestInterface|MockObject
2240
*/
2341
protected $requestMock;
2442

2543
/**
26-
* @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject
44+
* @var ResponseInterface|MockObject
2745
*/
2846
protected $responseMock;
2947

3048
/**
31-
* @var \Magento\Framework\ObjectManagerInterface|\PHPUnit_Framework_MockObject_MockObject
49+
* @var ObjectManagerInterface|MockObject
3250
*/
3351
protected $objectManagerMock;
3452

3553
/**
36-
* @var \Magento\CurrencySymbol\Model\System\Currencysymbol|\PHPUnit_Framework_MockObject_MockObject
54+
* @var Currencysymbol|MockObject
3755
*/
3856
protected $currencySymbolMock;
3957

4058
/**
41-
* @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
59+
* @var ManagerInterface|MockObject
4260
*/
4361
protected $messageManagerMock;
4462

4563
/**
46-
* @var \Magento\Framework\App\Response\RedirectInterface|\PHPUnit_Framework_MockObject_MockObject
64+
* @var RedirectInterface|MockObject
4765
*/
4866
protected $redirectMock;
4967

5068
/**
51-
* @var \Magento\Backend\Helper\Data|\PHPUnit_Framework_MockObject_MockObject
69+
* @var Data|MockObject
5270
*/
5371
protected $helperMock;
5472

5573
/**
56-
* @var \Magento\Framework\Filter\FilterManager|\PHPUnit_Framework_MockObject_MockObject
74+
* @var FilterManager|MockObject
5775
*/
5876
protected $filterManagerMock;
5977

78+
/**
79+
* @inheritdoc
80+
*/
6081
protected function setUp()
6182
{
6283
$objectManager = new ObjectManager($this);
63-
64-
$this->requestMock = $this->createMock(\Magento\Framework\App\RequestInterface::class);
65-
66-
$this->helperMock = $this->createMock(\Magento\Backend\Helper\Data::class);
67-
68-
$this->redirectMock = $this->createMock(\Magento\Framework\App\Response\RedirectInterface::class);
69-
84+
$this->requestMock = $this->createMock(RequestInterface::class);
85+
$this->helperMock = $this->createMock(Data::class);
86+
$this->redirectMock = $this->createMock(RedirectInterface::class);
7087
$this->responseMock = $this->createPartialMock(
71-
\Magento\Framework\App\ResponseInterface::class,
88+
ResponseInterface::class,
7289
['setRedirect', 'sendResponse']
7390
);
74-
75-
$this->currencySymbolMock = $this->createMock(\Magento\CurrencySymbol\Model\System\Currencysymbol::class);
76-
91+
$this->currencySymbolMock = $this->createMock(Currencysymbol::class);
7792
$this->filterManagerMock = $this->createPartialMock(
78-
\Magento\Framework\Filter\FilterManager::class,
93+
FilterManager::class,
7994
['stripTags']
8095
);
96+
$this->objectManagerMock = $this->createMock(ObjectManagerInterface::class);
97+
$this->messageManagerMock = $this->createMock(ManagerInterface::class);
98+
$this->resultRedirectFactory = $this->createMock(RedirectFactory::class);
8199

82-
$this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
83-
84-
$this->messageManagerMock = $this->createMock(\Magento\Framework\Message\ManagerInterface::class);
85100
$this->action = $objectManager->getObject(
86-
\Magento\CurrencySymbol\Controller\Adminhtml\System\Currencysymbol\Save::class,
101+
Save::class,
87102
[
88103
'request' => $this->requestMock,
89104
'response' => $this->responseMock,
90105
'objectManager' => $this->objectManagerMock,
91106
'redirect' => $this->redirectMock,
92107
'helper' => $this->helperMock,
93-
'messageManager' => $this->messageManagerMock
108+
'messageManager' => $this->messageManagerMock,
109+
'resultRedirectFactory' => $this->resultRedirectFactory,
94110
]
95111
);
96112
}
97113

114+
/**
115+
* Test to Save custom Currency symbol
116+
*/
98117
public function testExecute()
99118
{
100119
$firstElement = 'firstElement';
101120
$symbolsDataArray = [$firstElement];
102-
$redirectUrl = 'redirectUrl';
103121

104122
$this->requestMock->expects($this->once())
105123
->method('getParam')
106124
->with('custom_currency_symbol')
107125
->willReturn($symbolsDataArray);
108126

109-
$this->helperMock->expects($this->once())->method('getUrl')->with('*');
110-
$this->redirectMock->expects($this->once())->method('getRedirectUrl')->willReturn($redirectUrl);
111-
112127
$this->currencySymbolMock->expects($this->once())->method('setCurrencySymbolsData')->with($symbolsDataArray);
113-
$this->responseMock->expects($this->once())->method('setRedirect');
114128

115129
$this->filterManagerMock->expects($this->once())
116130
->method('stripTags')
@@ -119,18 +133,22 @@ public function testExecute()
119133

120134
$this->objectManagerMock->expects($this->once())
121135
->method('create')
122-
->with(\Magento\CurrencySymbol\Model\System\Currencysymbol::class)
136+
->with(Currencysymbol::class)
123137
->willReturn($this->currencySymbolMock);
124138

125139
$this->objectManagerMock->expects($this->once())
126140
->method('get')
127-
->with(\Magento\Framework\Filter\FilterManager::class)
141+
->with(FilterManager::class)
128142
->willReturn($this->filterManagerMock);
129143

130144
$this->messageManagerMock->expects($this->once())
131145
->method('addSuccessMessage')
132146
->with(__('You applied the custom currency symbols.'));
133147

134-
$this->action->execute();
148+
$redirect = $this->createMock(Redirect::class);
149+
$redirect->expects($this->once())->method('setPath')->with('*')->willReturnSelf();
150+
$this->resultRedirectFactory->method('create')->willReturn($redirect);
151+
152+
$this->assertEquals($redirect, $this->action->execute());
135153
}
136154
}

0 commit comments

Comments
 (0)