From a2b3f9393941b62f6094c85a5cc98540359eb30d Mon Sep 17 00:00:00 2001 From: Jisse Reitsma Date: Mon, 4 Mar 2024 11:27:49 +0100 Subject: [PATCH] Reorganize tests --- Test/Integration/HeaderTest.php | 76 ++++++++++++++++----------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/Test/Integration/HeaderTest.php b/Test/Integration/HeaderTest.php index 82876ba..056baf7 100644 --- a/Test/Integration/HeaderTest.php +++ b/Test/Integration/HeaderTest.php @@ -13,64 +13,52 @@ class HeaderTest extends AbstractController */ public function testIfLinkHeadersExistsWhenModuleIsEnabled() { - $this->dispatch('/'); - $headers = $this->getResponse()->getHeaders(); - - $match = false; - $foundHeaders = []; - foreach ($headers as $header) { - /** @var $header HeaderInterface */ - $foundHeaders[] = $header->toString(); - if (preg_match('/^Link:/', $header->toString())) { - $this->assertValidLinkHeader($header->toString()); - $match = true; - break; - } - } - - /** @var ScopeConfigInterface $scopeConfig */ - $scopeConfig = $this->_objectManager->get(ScopeConfigInterface::class); - $enabled = $scopeConfig->getValue('system/yireo_linkpreload/enabled'); - $this->assertEquals(1, $enabled); - - if (empty($foundHeaders)) { - $msg = 'No headers found'; - } else { - $msg = 'Expected a Link-header, but found only this: ' . implode("; ", $foundHeaders); - } + $this->assertEnabledValue(1); + $linkHeaders = $this->getLinkHeaders(); + $this->assertTrue(count($linkHeaders) > 0, 'No Link-headers found'); + } - $this->assertTrue($match, $msg); + /** + * @magentoAdminConfigFixture system/yireo_linkpreload/enabled 1 + * @magentoCache all enabled + */ + public function testIfLinkHeadersExistsWhenModuleIsEnabledAndWithFullPageCache() + { + $this->assertEnabledValue(1); + $this->getLinkHeaders(); + $this->getLinkHeaders(); + $linkHeaders = $this->getLinkHeaders(); + $this->assertTrue(count($linkHeaders) > 0, 'No Link-headers found'); } /** * @magentoAdminConfigFixture system/yireo_linkpreload/enabled 0 */ public function testIfLinkHeadersExistsWhenModuleIsDisabled() + { + $this->assertEnabledValue(0); + $linkHeaders = $this->getLinkHeaders(); + $this->assertFalse(count($linkHeaders) > 0, 'Expected no Link-header, but found headers anyway'); + } + + private function getLinkHeaders(): array { $this->dispatch('/'); $headers = $this->getResponse()->getHeaders(); - $match = false; - $foundHeaders = []; + $linkHeaders = []; foreach ($headers as $header) { /** @var $header HeaderInterface */ if (preg_match('/^Link:/', $header->toString())) { - $foundHeaders[] = $header->toString(); - $match = true; + $this->assertValidLinkHeader($header->toString()); + $linkHeaders[] = $header->toString(); break; } } - /** @var ScopeConfigInterface $scopeConfig */ - $scopeConfig = $this->_objectManager->get(ScopeConfigInterface::class); - $enabled = $scopeConfig->getValue('system/yireo_linkpreload/enabled'); - $this->assertEquals(0, $enabled); - - $msg = 'Expected no Link-header, but found headers anyway: ' . implode("; ", $foundHeaders); - $this->assertFalse($match, $msg); + return $linkHeaders; } - private function assertValidLinkHeader(string $linkHeader): void { $linkHeader = str_replace('Link:', '', $linkHeader); @@ -104,4 +92,16 @@ private function assertValidLink(string $link): void } } } + + private function assertEnabledValue(int $expectedValue): void + { + /** @var ScopeConfigInterface $scopeConfig */ + $scopeConfig = $this->_objectManager->get(ScopeConfigInterface::class); + $this->assertEquals($expectedValue, $scopeConfig->getValue('system/yireo_linkpreload/enabled')); + } + + private function reset(): void + { + $foundHeaders = []; + } }