79 lines
2.3 KiB
PHP
79 lines
2.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* This code is partially based on the Rack-Cache library by Ryan Tomayko,
|
|
* which is released under the MIT license.
|
|
* (based on commit 02d2b48d75bcb63cf1c0c7149c077ad256542801)
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Symfony\Component\HttpKernel\Tests\HttpCache;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategy;
|
|
|
|
class ResponseCacheStrategyTest extends TestCase
|
|
{
|
|
public function testMinimumSharedMaxAgeWins()
|
|
{
|
|
$cacheStrategy = new ResponseCacheStrategy();
|
|
|
|
$response1 = new Response();
|
|
$response1->setSharedMaxAge(60);
|
|
$cacheStrategy->add($response1);
|
|
|
|
$response2 = new Response();
|
|
$response2->setSharedMaxAge(3600);
|
|
$cacheStrategy->add($response2);
|
|
|
|
$response = new Response();
|
|
$response->setSharedMaxAge(86400);
|
|
$cacheStrategy->update($response);
|
|
|
|
$this->assertSame('60', $response->headers->getCacheControlDirective('s-maxage'));
|
|
}
|
|
|
|
public function testSharedMaxAgeNotSetIfNotSetInAnyEmbeddedRequest()
|
|
{
|
|
$cacheStrategy = new ResponseCacheStrategy();
|
|
|
|
$response1 = new Response();
|
|
$response1->setSharedMaxAge(60);
|
|
$cacheStrategy->add($response1);
|
|
|
|
$response2 = new Response();
|
|
$cacheStrategy->add($response2);
|
|
|
|
$response = new Response();
|
|
$response->setSharedMaxAge(86400);
|
|
$cacheStrategy->update($response);
|
|
|
|
$this->assertFalse($response->headers->hasCacheControlDirective('s-maxage'));
|
|
}
|
|
|
|
public function testSharedMaxAgeNotSetIfNotSetInMasterRequest()
|
|
{
|
|
$cacheStrategy = new ResponseCacheStrategy();
|
|
|
|
$response1 = new Response();
|
|
$response1->setSharedMaxAge(60);
|
|
$cacheStrategy->add($response1);
|
|
|
|
$response2 = new Response();
|
|
$response2->setSharedMaxAge(3600);
|
|
$cacheStrategy->add($response2);
|
|
|
|
$response = new Response();
|
|
$cacheStrategy->update($response);
|
|
|
|
$this->assertFalse($response->headers->hasCacheControlDirective('s-maxage'));
|
|
}
|
|
}
|