/** * Tests the cache method * * @return void */ public function testCache() { $response = new Response(); $since = time(); $time = new \DateTime('+1 day', new \DateTimeZone('UTC')); $response->expires('+1 day'); $expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => $time->format('D, j M Y H:i:s') . ' GMT', 'Cache-Control' => 'public, max-age=' . ($time->format('U') - time())]; $response->cache($since); $this->assertEquals($expected, $response->header()); $response = new Response(); $since = time(); $time = '+5 day'; $expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", strtotime($time)) . " GMT", 'Cache-Control' => 'public, max-age=' . (strtotime($time) - time())]; $response->cache($since, $time); $this->assertEquals($expected, $response->header()); $response = new Response(); $since = time(); $time = time(); $expected = ['Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", $time) . " GMT", 'Cache-Control' => 'public, max-age=0']; $response->cache($since, $time); $this->assertEquals($expected, $response->header()); }