Skip to content

Commit a7cd4a5

Browse files
committed
MC-37089: Create automated test for "[Security] Customer's Order Data are not available for Guests"
1 parent 1dc62a7 commit a7cd4a5

File tree

1 file changed

+50
-2
lines changed
  • dev/tests/integration/testsuite/Magento/Sales/Controller/Guest

1 file changed

+50
-2
lines changed

dev/tests/integration/testsuite/Magento/Sales/Controller/Guest/ViewTest.php

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,70 @@
77

88
namespace Magento\Sales\Controller\Guest;
99

10+
use Magento\Framework\Stdlib\CookieManagerInterface;
11+
use Magento\Sales\Api\Data\OrderInterfaceFactory;
12+
use Magento\Sales\Api\OrderRepositoryInterface;
1013
use Magento\TestFramework\Request;
1114
use Magento\TestFramework\TestCase\AbstractController;
1215

1316
/**
14-
* Test for \Magento\Sales\Controller\Guest\View class.
17+
* Test for orders and returns controller.
18+
*
19+
* @see \Magento\Sales\Controller\Guest\View
1520
*/
1621
class ViewTest extends AbstractController
1722
{
23+
/** @var CookieManagerInterface */
24+
private $cookieManager;
25+
26+
/** @var OrderInterfaceFactory */
27+
private $orderFactory;
28+
29+
/** @var OrderRepositoryInterface */
30+
private $orderRepository;
31+
32+
/**
33+
* @inheritdoc
34+
*/
35+
protected function setUp(): void
36+
{
37+
parent::setUp();
38+
39+
$this->cookieManager = $this->_objectManager->get(CookieManagerInterface::class);
40+
$this->orderFactory = $this->_objectManager->get(OrderInterfaceFactory::class);
41+
$this->orderRepository = $this->_objectManager->get(OrderRepositoryInterface::class);
42+
}
43+
1844
/**
1945
* Check that controller applied GET requests.
46+
*
47+
* @return void
2048
*/
21-
public function testExecuteWithGetRequest()
49+
public function testExecuteWithGetRequest(): void
2250
{
2351
$this->getRequest()->setMethod(Request::METHOD_GET);
2452
$this->dispatch('sales/guest/view/');
2553

2654
$this->assertRedirect($this->stringContains('sales/guest/form'));
2755
}
56+
57+
/**
58+
* @magentoDataFixture Magento/Sales/_files/order.php
59+
*
60+
* @return void
61+
*/
62+
public function testExecuteWithWrongCookie(): void
63+
{
64+
$order = $this->orderFactory->create()->loadByIncrementId('100000001');
65+
$order->setProtectCode('0e6640');
66+
$this->orderRepository->save($order);
67+
$cookieValue = base64_encode('0' . ':' . $order->getIncrementId());
68+
$this->cookieManager->setPublicCookie(\Magento\Sales\Helper\Guest::COOKIE_NAME, $cookieValue);
69+
$this->getRequest()->setMethod(Request::METHOD_GET);
70+
$this->dispatch('sales/guest/view/');
71+
$this->assertRedirect($this->stringContains('sales/guest/form/'));
72+
$this->assertSessionMessages(
73+
$this->containsEqual((string)__('You entered incorrect data. Please try again.'))
74+
);
75+
}
2876
}

0 commit comments

Comments
 (0)