"h2", "x-forwarded-proto" => "http" ]); /** @var ResponseInterface $response */ $response = $middleware($request); $this->assertEquals(Response::STATUS_BAD_REQUEST, $response->getStatusCode()); $this->assertEquals("Unsupported protocol", $response->getBody()); $request = new ServerRequest("GET", "/", [ "Upgrade" => "h2c", "x-forwarded-proto" => "http", ]); /** @var ResponseInterface $response */ $response = $middleware($request); $this->assertEquals(Response::STATUS_BAD_REQUEST, $response->getStatusCode()); $this->assertEquals("Unsupported protocol", $response->getBody()); } public function testHandlingUpgradeRequest() { $http2settings = new SettingsFrame(); $http2settings->set(SettingsFrame::SETTINGS_MAX_CONCURRENT_STREAMS, 64); $request = new ServerRequest("GET", "/", [ "Upgrade" => "h2c", "Connection" => "upgrade", "x-forwarded-proto" => "http", "HTTP2-Settings" => $http2settings->toBinary(), ]); $middleware = new Http2Middleware(); /** @var ResponseInterface $response */ $response = $middleware($request); $this->assertEquals(Response::STATUS_SWITCHING_PROTOCOLS, $response->getStatusCode()); } }