public function testCanHandleStaleIfErrorWhenRevalidating() { $server = new Server(8000); $server->start(); $server->flush(); $lm = gmdate('c', time() - 60); $server->enqueue(array("HTTP/1.1 200 OK\r\n" . "Date: {$lm}\r\n" . "Cache-Control: must-revalidate, max-age=0, stale-if-error=1200\r\n" . "Last-Modified: {$lm}\r\n" . "Content-Length: 2\r\n\r\nhi")); $cache = new CachePlugin(); $client = new Client($server->getUrl()); $client->addSubscriber($cache); $this->assertEquals(200, $client->get()->send()->getStatusCode()); $this->assertEquals(1, count($server->getReceivedRequests())); // wait for the server to actually stop $server->stop(); while ($server->isRunning()) { sleep(1); } $this->assertEquals(200, $client->get()->send()->getStatusCode()); }