Skip to content

Commit 5e4bf42

Browse files
committed
#12206: Tracking link returns 404 page in admin panel
Cover changes with integration test
1 parent ecf27be commit 5e4bf42

File tree

1 file changed

+59
-13
lines changed
  • dev/tests/integration/testsuite/Magento/Shipping/Helper

1 file changed

+59
-13
lines changed

dev/tests/integration/testsuite/Magento/Shipping/Helper/DataTest.php

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@
55
*/
66
namespace Magento\Shipping\Helper;
77

8+
use Magento\Store\Model\StoreManagerInterface;
9+
810
class DataTest extends \PHPUnit\Framework\TestCase
911
{
1012
/**
1113
* @var \Magento\Shipping\Helper\Data
1214
*/
13-
protected $_helper = null;
15+
private $helper;
1416

1517
protected function setUp()
1618
{
17-
$this->_helper = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
19+
$this->helper = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
1820
\Magento\Shipping\Helper\Data::class
1921
);
2022
}
@@ -31,33 +33,77 @@ public function testGetTrackingPopupUrlBySalesModel($modelName, $getIdMethod, $e
3133
{
3234
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
3335
$constructArgs = [];
34-
if (\Magento\Sales\Model\Order\Shipment::class == $modelName) {
35-
$orderRepository = $this->_getMockOrderRepository($code);
36+
if (\Magento\Sales\Model\Order\Shipment::class === $modelName) {
37+
$orderRepository = $this->getMockOrderRepository($code);
38+
$constructArgs['orderRepository'] = $orderRepository;
39+
} elseif (\Magento\Sales\Model\Order\Shipment\Track::class === $modelName) {
40+
$shipmentRepository = $this->getMockShipmentRepository($code);
41+
$constructArgs['shipmentRepository'] = $shipmentRepository;
42+
}
43+
44+
$model = $objectManager->create($modelName, $constructArgs);
45+
$model->{$getIdMethod}($entityId);
46+
47+
if (\Magento\Sales\Model\Order::class === $modelName) {
48+
$model->setProtectCode($code);
49+
}
50+
if (\Magento\Sales\Model\Order\Shipment\Track::class === $modelName) {
51+
$model->setParentId(1);
52+
}
53+
54+
$actual = $this->helper->getTrackingPopupUrlBySalesModel($model);
55+
$this->assertEquals($expected, $actual);
56+
}
57+
58+
/**
59+
* From the admin panel with custom URL we should have generated frontend URL
60+
*
61+
* @param string $modelName
62+
* @param string $getIdMethod
63+
* @param int $entityId
64+
* @param string $code
65+
* @param string $expected
66+
* @magentoAppArea adminhtml
67+
* @magentoConfigFixture admin_store web/unsecure/base_link_url http://admin.localhost/
68+
* @dataProvider getTrackingPopupUrlBySalesModelDataProvider
69+
*/
70+
public function testGetTrackingPopupUrlBySalesModelFromAdmin($modelName, $getIdMethod, $entityId, $code, $expected)
71+
{
72+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
73+
74+
/** @var StoreManagerInterface $storeManager */
75+
$storeManager = $objectManager->create(StoreManagerInterface::class);
76+
$storeManager->reinitStores();
77+
78+
$constructArgs = [];
79+
if (\Magento\Sales\Model\Order\Shipment::class === $modelName) {
80+
$orderRepository = $this->getMockOrderRepository($code);
3681
$constructArgs['orderRepository'] = $orderRepository;
37-
} elseif (\Magento\Sales\Model\Order\Shipment\Track::class == $modelName) {
38-
$shipmentRepository = $this->_getMockShipmentRepository($code);
82+
} elseif (\Magento\Sales\Model\Order\Shipment\Track::class === $modelName) {
83+
$shipmentRepository = $this->getMockShipmentRepository($code);
3984
$constructArgs['shipmentRepository'] = $shipmentRepository;
4085
}
4186

4287
$model = $objectManager->create($modelName, $constructArgs);
4388
$model->{$getIdMethod}($entityId);
4489

45-
if (\Magento\Sales\Model\Order::class == $modelName) {
90+
if (\Magento\Sales\Model\Order::class === $modelName) {
4691
$model->setProtectCode($code);
4792
}
48-
if (\Magento\Sales\Model\Order\Shipment\Track::class == $modelName) {
93+
if (\Magento\Sales\Model\Order\Shipment\Track::class === $modelName) {
4994
$model->setParentId(1);
5095
}
5196

52-
$actual = $this->_helper->getTrackingPopupUrlBySalesModel($model);
97+
//Frontend URL should be used there
98+
$actual = $this->helper->getTrackingPopupUrlBySalesModel($model);
5399
$this->assertEquals($expected, $actual);
54100
}
55101

56102
/**
57103
* @param $code
58-
* @return \Magento\Sales\Api\OrderRepositoryInterface
104+
* @return \Magento\Sales\Api\OrderRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
59105
*/
60-
protected function _getMockOrderRepository($code)
106+
private function getMockOrderRepository($code)
61107
{
62108
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
63109
$order = $objectManager->create(\Magento\Sales\Model\Order::class);
@@ -71,10 +117,10 @@ protected function _getMockOrderRepository($code)
71117
* @param $code
72118
* @return \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject
73119
*/
74-
protected function _getMockShipmentRepository($code)
120+
private function getMockShipmentRepository($code)
75121
{
76122
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
77-
$orderRepository = $this->_getMockOrderRepository($code);
123+
$orderRepository = $this->getMockOrderRepository($code);
78124
$shipmentArgs = ['orderRepository' => $orderRepository];
79125

80126
$shipment = $objectManager->create(\Magento\Sales\Model\Order\Shipment::class, $shipmentArgs);

0 commit comments

Comments
 (0)