Пример #1
0
        });
        it("exports a request", function () {
            $request = new Request(['scheme' => 'http', 'host' => 'www.domain.com', 'port' => 80, 'username' => 'username', 'password' => 'password', 'path' => 'index.php']);
            expect($request->export())->toEqual(['method' => 'GET', 'scheme' => 'http', 'version' => '1.1', 'host' => 'www.domain.com', 'port' => 80, 'path' => '/index.php', 'query' => '', 'fragment' => '', 'username' => 'username', 'password' => 'password', 'url' => 'http://www.domain.com/index.php', 'stream' => $request->stream()]);
        });
    });
    describe("->toString()", function () {
        it("casts to a string", 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->toString())->toBe('Body Message');
        });
    });
    describe("->__clone", function () {
        it("clones the headers but not the stream ressource", function () {
            $request = new Request(['data' => 'Body Message']);
            $new = clone $request;
            expect($request->headers)->not->toBe($new->headers);
            expect($request->stream())->toBe($new->stream());
        });
        it("clones cookies", function () {
            $request = new Request(['data' => 'Body Message']);
            $cookies = $request->headers->cookies;
            $cookies['foo'] = 'bar';
            $newRequest = clone $request;
            $new = $newRequest->headers->cookies;
            expect($cookies['foo'])->not->toBe($new['foo']);
            expect($cookies['foo']->value())->toBe($new['foo']->value());
        });
    });
});
Пример #2
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');
        });
    });
});
Пример #3
0
 /**
  * Exports a `Request` instance to an array.
  *
  * @param  array $options Options.
  * @return array          The export array.
  */
 public function export($options = [])
 {
     $this->_setContentLength();
     return ['basePath' => $this->basePath(), 'locale' => $this->locale(), 'data' => $this->data(), 'params' => $this->params(), 'env' => $this->env] + parent::export($options);
 }
Пример #4
0
            expect($new->getHeaderLine('Vary'))->toBe('Accept-Encoding, Cookie, User-Agent');
        });
    });
    describe("->withoutHeader()", function () {
        it("creates a new request with the provided protocol version", function () {
            $request = new Request(['headers' => ['Content-Type: text/html; charset=UTF-8']]);
            $new = $request->withoutHeader('Content-Type');
            expect($request->hasHeader('Content-Type'))->toBe(true);
            expect($new)->not->toBe($request);
            expect($new->hasHeader('Content-Type'))->toBe(false);
        });
    });
    describe("->getBody()", function () {
        it("gets the stream body", function () {
            $request = new Request(['data' => 'Body Message']);
            $body = $request->getBody();
            expect($body)->toBeAnInstanceOf(StreamInterface::class);
            expect((string) $body)->toBe('Body Message');
        });
    });
    describe("->withBody()", function () {
        it("creates a new request with the provided stream", function () {
            $request = new Request(['data' => 'Body Message']);
            $stream = new Stream('New Message');
            $new = $request->withBody($stream);
            expect($request->getBody()->toString())->toBe('Body Message');
            expect($new)->not->toBe($request);
            expect((string) $new->getBody())->toBe('New Message');
        });
    });
});