Example #1
0
use Lead\Storage\Stream\Stream;
use Lead\Net\Http\Psr7\Uri;
use Lead\Net\Http\Request;
describe("MessageTrait", function () {
    describe("->getProtocolVersion()", function () {
        it("delegates to `->version()`", function () {
            $request = new Request();
            expect($request)->toReceive('version');
            $request->getProtocolVersion();
        });
    });
    describe("->withProtocolVersion()", function () {
        it("creates a new request with the provided protocol version", function () {
            $request = new Request();
            $new = $request->withProtocolVersion('2.0');
            expect($request->getProtocolVersion())->toBe('1.1');
            expect($new)->not->toBe($request);
            expect($new->getProtocolVersion())->toBe('2.0');
        });
    });
    describe("->getHeaders()", function () {
        it("returns headers", function () {
            $headers = ['Date: Thu, 25 Dec 2014 00:00:00 GMT', 'Content-Type: text/html; charset=UTF-8', 'Vary: Accept-Encoding, Cookie, User-Agent'];
            $request = new Request(['headers' => $headers, 'data' => 'Body Message']);
            expect($request->getHeaders())->toEqual(['Host' => ['localhost'], 'Connection' => ['Close'], 'User-Agent' => ['Mozilla/5.0'], 'Date' => ['Thu', '25 Dec 2014 00:00:00 GMT'], 'Content-Type' => ['text/html; charset=UTF-8'], 'Vary' => ['Accept-Encoding', 'Cookie', 'User-Agent']]);
        });
    });
    describe("->hasHeader()", function () {
        it("checks existing headers", function () {
            $request = new Request(['headers' => ['Content-Type: text/html; charset=UTF-8'], 'data' => 'Body Message']);
            expect($request->hasHeader('Content-Type'))->toBe(true);