
| Current Path : /var/www/html1/testsite/web/core/tests/Drupal/Tests/Core/Cache/Context/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html1/testsite/web/core/tests/Drupal/Tests/Core/Cache/Context/HeadersCacheContextTest.php |
<?php
namespace Drupal\Tests\Core\Cache\Context;
use Drupal\Core\Cache\Context\HeadersCacheContext;
use Drupal\Tests\UnitTestCase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
/**
* @coversDefaultClass \Drupal\Core\Cache\Context\HeadersCacheContext
* @group Cache
*/
class HeadersCacheContextTest extends UnitTestCase {
/**
* @covers ::getContext
*
* @dataProvider providerTestGetContext
*/
public function testGetContext($headers, $header_name, $context) {
$request_stack = new RequestStack();
$request = Request::create('/', 'GET');
// Request defaults could change, so compare with default values instead of
// passed in context value.
$request->headers->replace($headers);
$request_stack->push($request);
$cache_context = new HeadersCacheContext($request_stack);
$this->assertSame($cache_context->getContext($header_name), $context);
}
/**
* Provides a list of headers and expected cache contexts.
*/
public function providerTestGetContext() {
return [
[[], NULL, ''],
[[], 'foo', ''],
// Non-empty headers.
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], NULL, 'alpaca=&llama=rocks&panda=drools&z=0'],
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'llama', 'rocks'],
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'alpaca', '?valueless?'],
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'panda', 'drools'],
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'z', '0'],
[['llama' => 'rocks', 'alpaca' => '', 'panda' => 'drools', 'z' => '0'], 'chicken', ''],
// Header value could be an array.
[['z' => ['0', '1']], NULL, 'z=0,1'],
// Values are sorted to minimize cache variations.
[['z' => ['1', '0'], 'a' => []], NULL, 'a=&z=0,1'],
[['a' => [], 'z' => ['1', '0']], NULL, 'a=&z=0,1'],
];
}
}