From d1df3c143b3ce56167b5d8aec84c15e8b281f875 Mon Sep 17 00:00:00 2001 From: Josh Lockhart Date: Tue, 31 Mar 2015 13:13:30 -0400 Subject: [PATCH] Add tests for new Last-Modified logic --- tests/CacheTest.php | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/CacheTest.php b/tests/CacheTest.php index d26bf06..efa937c 100644 --- a/tests/CacheTest.php +++ b/tests/CacheTest.php @@ -64,6 +64,38 @@ public function testLastModifiedWithCacheHit() $this->assertEquals(304, $res->getStatusCode()); } + public function testLastModifiedWithCacheHitAndNewerDate() + { + $now = time(); + $lastModified = gmdate('D, d M Y H:i:s T', $now + 86400); + $ifModifiedSince = gmdate('D, d M Y H:i:s T', $now + 172800); // <-- Newer date + $cache = new Cache('public', 86400); + $req = $this->requestFactory()->withHeader('If-Modified-Since', $ifModifiedSince); + $res = new Response(); + $next = function (Request $req, Response $res) use ($lastModified) { + return $res->withHeader('Last-Modified', $lastModified); + }; + $res = $cache($req, $res, $next); + + $this->assertEquals(304, $res->getStatusCode()); + } + + public function testLastModifiedWithCacheHitAndOlderDate() + { + $now = time(); + $lastModified = gmdate('D, d M Y H:i:s T', $now + 86400); + $ifModifiedSince = gmdate('D, d M Y H:i:s T', $now); // <-- Older date + $cache = new Cache('public', 86400); + $req = $this->requestFactory()->withHeader('If-Modified-Since', $ifModifiedSince); + $res = new Response(); + $next = function (Request $req, Response $res) use ($lastModified) { + return $res->withHeader('Last-Modified', $lastModified); + }; + $res = $cache($req, $res, $next); + + $this->assertEquals(200, $res->getStatusCode()); + } + public function testLastModifiedWithCacheMiss() { $now = time();