Example #1
0
        });
    });
    describe("->getUri()", function () {
        it("returns the request URI", function () {
            $request = Request::parseUrl('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz');
            $uri = $request->getUri();
            expect($uri)->toBeAnInstanceOf('Psr\\Http\\Message\\UriInterface');
            expect((string) $uri)->toBe('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz');
        });
    });
    describe("->withUri()", function () {
        it("creates a new request with the provided URI", function () {
            $request = new Request();
            $new = $request->withUri(new Uri('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz'));
            expect($new)->not->toBe($request);
            $uri = $new->getUri();
            expect($uri)->toBeAnInstanceOf('Psr\\Http\\Message\\UriInterface');
            expect((string) $uri)->toBe('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz');
            expect($new->getHeaderLine('Host'))->toBe('www.domain.com:8000');
        });
        it("creates a new request with the provided URI and preserve the Host header", function () {
            $request = new Request();
            $new = $request->withUri(new Uri('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz'), true);
            expect($new)->not->toBe($request);
            $uri = $new->getUri();
            expect($uri)->toBeAnInstanceOf('Psr\\Http\\Message\\UriInterface');
            expect((string) $uri)->toBe('https://*****:*****@www.domain.com:8000/foo?bar=baz#quz');
            expect($new->getHeaderLine('Host'))->toBe('localhost');
        });
    });
});