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]); }