From 8c2c490d75fc03160c514c328d8abdc64f5a599a Mon Sep 17 00:00:00 2001 From: rogerdz Date: Wed, 12 Mar 2025 15:39:03 +0000 Subject: [PATCH 1/2] add x-magento-cache-debug header --- .../Model/App/FrontController/BuiltinPlugin.php | 7 ++++--- .../Model/Controller/Result/BuiltinPlugin.php | 15 +++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) 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 @@ 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 @@ 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 = []; From b8e53d87e44034dfc6f9e91fa69ab72816fc7505 Mon Sep 17 00:00:00 2001 From: Roger Date: Thu, 13 Mar 2025 02:08:21 +0000 Subject: [PATCH 2/2] fix unit test --- .../App/FrontController/BuiltinPluginTest.php | 28 +++++++++++-------- .../Controller/Result/BuiltinPluginTest.php | 14 +++++++--- 2 files changed, 26 insertions(+), 16 deletions(-) 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 @@ 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 @@ 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);