/** * @since 2.0.0 * @test */ public function deleteWritesCorrectRequestWithVersion() { $this->createHttpRequest()->delete(5, HttpVersion::HTTP_1_0); assert($this->memory, equals(Http::lines('DELETE /foo/resource HTTP/1.0', 'Host: example.com', 'X-Binford: 6100', ''))); }
/** * @test * @since 4.0.0 */ public function linesConvertsAllLines() { assert(Http::lines('HEAD /foo/resource HTTP/1.1', 'Host: example.com', 'Connection: close', '', 'bodyline1', 'bodyline2'), equals(Http::line('HEAD /foo/resource HTTP/1.1') . Http::line('Host: example.com') . Http::line('Connection: close') . Http::emptyLine() . 'bodyline1' . 'bodyline2')); }
/** * @since 2.0.0 * @test */ public function deleteWritesProperHttpRequestLines() { $this->httpConnection->timeout(2)->asUserAgent('Stubbles HTTP Client')->referedFrom('http://example.com/')->withCookie(['foo' => 'bar baz'])->authorizedAs('user', 'pass')->usingHeader('X-Binford', 6100)->delete(); assert($this->memory, equals(Http::lines('DELETE /foo/resource HTTP/1.1', 'Host: example.com', 'User-Agent: Stubbles HTTP Client', 'Referer: http://example.com/', 'Cookie: foo=bar+baz;', 'Authorization: BASIC ' . base64_encode('user:pass'), 'X-Binford: 6100', ''))); }
/** * @test * @dataProvider responseInstanceMethods * @since 4.0.0 */ public function statusLineWithInvalidHttpVersionLeadsToProtocolViolation($method) { $httpResponse = $this->createResponse(Http::lines('HTTP/400 102 Processing', 'Host: localhost', '')); expect(function () use($httpResponse, $method) { $httpResponse->{$method}(); })->throws(ProtocolViolation::class)->withMessage('Received status line "HTTP/400 102 Processing" does not match' . ' expected format "=^(HTTP/\\d+\\.\\d+) (\\d{3}) ([^\\r]*)="'); }