public function testRouterHandlesCustomEtag() { $this->router->api(['version' => 'v1'], function () { $this->router->get('foo', function () { $response = new Response('bar'); $response->setEtag('custom-etag'); return $response; }); }); $request = Request::create('foo', 'GET'); $request->headers->set('If-None-Match', '"custom-etag"', true); $request->headers->set('accept', 'application/vnd.testing.v1+json'); $this->router->setConditionalRequest(true); $response = $this->router->dispatch($request); $this->assertEquals(304, $response->getStatusCode()); $this->assertEquals('"custom-etag"', $response->getETag()); $this->assertEquals(null, $response->getContent()); }
public function testRouterHandlesCustomEtag() { $this->router->version('v1', ['conditional_request' => true], function () { $this->router->get('foo', function () { $response = new Http\Response('bar'); $response->setEtag('custom-etag'); return $response; }); }); $response = $this->router->dispatch($this->createRequest('foo', 'GET', ['if-none-match' => '"custom-etag"', 'accept' => 'application/vnd.api.v1+json'])); $this->assertEquals(304, $response->getStatusCode()); $this->assertEquals('"custom-etag"', $response->getETag()); $this->assertEquals(null, $response->getContent()); }