expect($req->getUri())->not->toContainKey('port'); }); it('returns host in lowercase', function () { $req = new ServerRequest(['REQUEST_URI' => '/path?queryString', 'HTTP_HOST' => 'OcHeNtA']); expect($req->getUri())->toContainKey('host'); expect($req->getUri()['host'])->toBe('ochenta'); }); it('throws UnexpectedValueException when invalid host', function () { expect(function () { new ServerRequest(['REQUEST_URI' => 'http://☃.com/path?queryString']); })->toThrow(new UnexpectedValueException()); }); it('returns port from SERVER_PORT environment variable', function () { $req = new ServerRequest(['REQUEST_URI' => '/path?queryString', 'SERVER_PORT' => '443']); expect($req->getUri())->toContainKey('port'); expect($req->getUri()['port'])->toEqual(443); }); it('doesn\'t returns port when SERVER_PORT is 80', function () { $req = new ServerRequest(['REQUEST_URI' => '/path?queryString', 'SERVER_PORT' => 80]); expect($req->getUri())->not->toContainKey('port'); }); it('doesn\'t returns port when SERVER_PORT is 443 in HTTPS', function () { $req = new ServerRequest(['REQUEST_URI' => 'https://example.com/path?queryString', 'SERVER_PORT' => 443, 'HTTPS' => 'on']); expect($req->getUri())->not->toContainKey('port'); }); it('doesn\'t returns port when is 443 in HTTPS', function () { $req = new ServerRequest(['REQUEST_URI' => 'https://example.com:443/path?queryString']); expect($req->getUri())->not->toContainKey('port'); }); }); });