Skip to content

Commit

Permalink
Reorganize tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jissereitsma committed Mar 4, 2024
1 parent e009f37 commit a2b3f93
Showing 1 changed file with 38 additions and 38 deletions.
76 changes: 38 additions & 38 deletions Test/Integration/HeaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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 = [];
}
}

0 comments on commit a2b3f93

Please sign in to comment.