RegisterFormKeyFromCookieTest.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. declare(strict_types=1);
  8. namespace Magento\PageCache\Plugin;
  9. use Magento\Framework\App\FrontController;
  10. use Magento\Framework\App\RequestInterface;
  11. use PHPUnit\Framework\TestCase;
  12. use Magento\Framework\App\Request\Http as HttpRequest;
  13. use Magento\Framework\Data\Form\FormKey\Validator as FormKeyValidator;
  14. use Magento\TestFramework\Helper\Bootstrap;
  15. class RegisterFormKeyFromCookieTest extends TestCase
  16. {
  17. /**
  18. * @var HttpRequest
  19. */
  20. private $request;
  21. /**
  22. * @var FrontController
  23. */
  24. private $frontController;
  25. /**
  26. * @var FormKeyValidator
  27. */
  28. private $formKeyValidator;
  29. /**
  30. * @inheritDoc
  31. */
  32. protected function setUp()
  33. {
  34. $objectManager = Bootstrap::getObjectManager();
  35. $this->request = $objectManager->get(RequestInterface::class);
  36. $this->frontController = $objectManager->get(
  37. FrontController::class
  38. );
  39. $this->formKeyValidator = $objectManager->get(FormKeyValidator::class);
  40. }
  41. /**
  42. * @magentoAppArea frontend
  43. */
  44. public function testTakenFromCookie()
  45. {
  46. if (!Bootstrap::canTestHeaders()) {
  47. $this->markTestSkipped(
  48. 'Can\'t test dispatch process without sending headers'
  49. );
  50. }
  51. $_SERVER['HTTP_HOST'] = 'localhost';
  52. $formKey = 'customFormKey';
  53. $_COOKIE['form_key'] = $formKey;
  54. $this->request->setMethod(HttpRequest::METHOD_POST);
  55. $this->request->setParam('form_key', $formKey);
  56. $this->request->setRequestUri('core/index/index');
  57. $this->frontController->dispatch($this->request);
  58. $this->assertTrue($this->formKeyValidator->validate($this->request));
  59. }
  60. }