public function testStaleWhileRevalidateHeader()
 {
     $this->client->get('http://test.com/stale-while-revalidate');
     sleep(2);
     $response = $this->client->get('http://test.com/stale-while-revalidate');
     $this->assertEquals(CacheMiddleware::HEADER_CACHE_STALE, $response->getHeaderLine(CacheMiddleware::HEADER_CACHE_INFO));
     // Do that at the end of the php script...
     $this->cache->purgeReValidation();
     $response = $this->client->get('http://test.com/stale-while-revalidate');
     $this->assertEquals(CacheMiddleware::HEADER_CACHE_HIT, $response->getHeaderLine(CacheMiddleware::HEADER_CACHE_INFO));
 }
 public function setUp()
 {
     // Create default HandlerStack
     $stack = HandlerStack::create(function (RequestInterface $request, array $options) {
         return new FulfilledPromise((new Response())->withBody(\GuzzleHttp\Psr7\stream_for('Hello world!'))->withHeader("Expires", gmdate('D, d M Y H:i:s T', time() + 120)));
     });
     // Add this middleware to the top with `push`
     $stack->push(CacheMiddleware::getMiddleware(), 'cache');
     // Initialize the client with the handler option
     $this->client = new Client(['handler' => $stack]);
 }
 public function testStaleWhileRevalidateHeader()
 {
     $this->client->get("http://test.com/stale-while-revalidate");
     sleep(2);
     $response = $this->client->get("http://test.com/stale-while-revalidate");
     $this->assertEquals("Stale while revalidate", $response->getHeaderLine("X-Cache"));
     // Do that at the end of the php script...
     CacheMiddleware::purgeReValidation();
     $response = $this->client->get("http://test.com/stale-while-revalidate");
     $this->assertEquals("HIT", $response->getHeaderLine("X-Cache"));
 }
 public function setUp()
 {
     // Create default HandlerStack
     $stack = HandlerStack::create(function (RequestInterface $request, array $options) {
         switch ($request->getUri()->getPath()) {
             case '/expired':
                 return new FulfilledPromise((new Response())->withHeader("Expires", gmdate('D, d M Y H:i:s T', time() - 10)));
             case '/2s':
                 return new FulfilledPromise((new Response())->withHeader("Expires", gmdate('D, d M Y H:i:s T', time() + 2)));
             case '/stale-if-error':
                 if ($this->sendError) {
                     return new FulfilledPromise(new Response(500));
                 }
                 return new FulfilledPromise((new Response())->withHeader("Cache-Control", "stale-if-error=120"));
         }
         throw new \InvalidArgumentException();
     });
     // Add this middleware to the top with `push`
     $stack->push(CacheMiddleware::getMiddleware(), 'cache');
     // Initialize the client with the handler option
     $this->client = new Client(['handler' => $stack]);
 }
 public function setUp()
 {
     // Create default HandlerStack
     $stack = HandlerStack::create(function (RequestInterface $request, array $options) {
         switch ($request->getUri()->getPath()) {
             case '/2s':
                 return new FulfilledPromise((new Response())->withAddedHeader("Cache-Control", "max-age=2"));
             case '/no-store':
                 return new FulfilledPromise((new Response())->withAddedHeader("Cache-Control", "no-store"));
             case '/no-cache':
                 if ($request->getHeaderLine("If-None-Match") == "TheHash") {
                     return new FulfilledPromise(new Response(304));
                 }
                 return new FulfilledPromise((new Response())->withAddedHeader("Cache-Control", "no-cache")->withAddedHeader("Etag", "TheHash"));
         }
         throw new \InvalidArgumentException();
     });
     // Add this middleware to the top with `push`
     $stack->push(CacheMiddleware::getMiddleware(), 'cache');
     // Initialize the client with the handler option
     $this->client = new Client(['handler' => $stack]);
 }