diff --git a/app/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin.php b/app/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin.php index 061cc801d5d1e..983b587c3fcaa 100644 --- a/app/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin.php +++ b/app/code/Magento/PageCache/Model/App/FrontController/BuiltinPlugin.php @@ -1,12 +1,13 @@ <?php /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. + * Copyright 2014 Adobe + * All Rights Reserved. */ namespace Magento\PageCache\Model\App\FrontController; use Magento\Framework\App\PageCache\NotCacheableInterface; use Magento\Framework\App\Response\Http as ResponseHttp; +use Magento\Framework\App\State; /** * Plugin for processing builtin cache @@ -111,7 +112,7 @@ protected function addDebugHeaders(ResponseHttp $result) */ protected function addDebugHeader(ResponseHttp $response, $name, $value, $replace = false) { - if ($this->state->getMode() == \Magento\Framework\App\State::MODE_DEVELOPER) { + if ($name == 'X-Magento-Cache-Debug' || $this->state->getMode() == State::MODE_DEVELOPER) { $response->setHeader($name, $value, $replace); } } diff --git a/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php b/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php index 1835ac5a247d8..d4e1120064848 100644 --- a/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php +++ b/app/code/Magento/PageCache/Model/Controller/Result/BuiltinPlugin.php @@ -1,18 +1,18 @@ <?php /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. + * Copyright 2014 Adobe + * All Rights Reserved. */ namespace Magento\PageCache\Model\Controller\Result; -use Magento\PageCache\Model\Config; +use Laminas\Http\Header\HeaderInterface as HttpHeaderInterface; use Magento\Framework\App\PageCache\Kernel; +use Magento\Framework\App\Response\Http as ResponseHttp; use Magento\Framework\App\State as AppState; -use Magento\Framework\Registry; use Magento\Framework\Controller\ResultInterface; -use Magento\Framework\App\Response\Http as ResponseHttp; -use Laminas\Http\Header\HeaderInterface as HttpHeaderInterface; +use Magento\Framework\Registry; use Magento\PageCache\Model\Cache\Type as CacheType; +use Magento\PageCache\Model\Config; /** * Plugin for processing builtin cache @@ -79,9 +79,8 @@ public function afterRenderResult(ResultInterface $subject, ResultInterface $res if ($cacheControlHeader instanceof HttpHeaderInterface) { $response->setHeader('X-Magento-Cache-Control', $cacheControlHeader->getFieldValue()); } - - $response->setHeader('X-Magento-Cache-Debug', 'MISS', true); } + $response->setHeader('X-Magento-Cache-Debug', 'MISS', true); $tagsHeader = $response->getHeader('X-Magento-Tags'); $tags = []; diff --git a/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/BuiltinPluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/BuiltinPluginTest.php index 64348b58a33e1..44d2d946fd8c1 100644 --- a/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/BuiltinPluginTest.php +++ b/app/code/Magento/PageCache/Test/Unit/Model/App/FrontController/BuiltinPluginTest.php @@ -1,7 +1,7 @@ <?php /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. + * Copyright 2015 Adobe + * All Rights Reserved. */ declare(strict_types=1); @@ -130,8 +130,15 @@ function ($arg1, $arg2 = null, $arg3 = null) { } ); } else { - $this->responseMock->expects($this->never()) - ->method('setHeader'); + $this->responseMock + ->method('setHeader') + ->willReturnCallback( + function ($arg1, $arg2 = null, $arg3 = null) { + if ($arg1 === 'X-Magento-Cache-Debug' && $arg2 === 'MISS' && $arg3 === true) { + return null; + } + } + ); } $this->responseMock ->expects($this->once()) @@ -208,14 +215,11 @@ public function testAroundDispatchReturnsCache($state): void $this->stateMock->expects($this->any()) ->method('getMode') ->willReturn($state); - if ($state == State::MODE_DEVELOPER) { - $this->responseMock->expects($this->once()) - ->method('setHeader') - ->with('X-Magento-Cache-Debug'); - } else { - $this->responseMock->expects($this->never()) - ->method('setHeader'); - } + + $this->responseMock->expects($this->once()) + ->method('setHeader') + ->with('X-Magento-Cache-Debug'); + $this->assertSame( $this->responseMock, $this->plugin->aroundDispatch($this->frontControllerMock, $this->closure, $this->requestMock) diff --git a/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php b/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php index c0d6c6e82133f..c049fadf457ec 100644 --- a/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php +++ b/app/code/Magento/PageCache/Test/Unit/Model/Controller/Result/BuiltinPluginTest.php @@ -1,7 +1,7 @@ <?php /** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. + * Copyright 2015 Adobe + * All Rights Reserved. */ declare(strict_types=1); @@ -150,9 +150,15 @@ public function testAfterResultWithPlugin() $this->responseMock->expects(static::once()) ->method('clearHeader') ->with('X-Magento-Tags'); - $this->responseMock->expects(static::once()) + $this->responseMock->expects(static::any()) ->method('setHeader') - ->with('X-Magento-Tags', 'tag,' . CacheType::CACHE_TAG); + ->willReturnCallback(function ($arg1, $arg2 = null, $arg3 = null) { + if ($arg1 === 'X-Magento-Cache-Debug' && $arg2 === 'MISS' && $arg3 === true) { + return null; + } elseif ($arg1 === 'X-Magento-Tags' && $arg2 === 'tag,' . CacheType::CACHE_TAG) { + return null; + } + }); $this->kernelMock->expects(static::once()) ->method('process') ->with($this->responseMock);