Version 1
[yaffs-website] / vendor / symfony / http-kernel / Tests / HttpCache / ResponseCacheStrategyTest.php
diff --git a/vendor/symfony/http-kernel/Tests/HttpCache/ResponseCacheStrategyTest.php b/vendor/symfony/http-kernel/Tests/HttpCache/ResponseCacheStrategyTest.php
new file mode 100644 (file)
index 0000000..f30a3b6
--- /dev/null
@@ -0,0 +1,78 @@
+<?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'));
+    }
+}