/** * @dataProvider providerGetSetUrl * * @param string $url The URL to test. * @param string|null $expectedUrl The expected URL, or NULL to use the original URL. * @param string $host The expected host name. * @param integer $port The expected port number. * @param string $requestUri The expected request URI. * @param string $path The expected path. * @param string $qs The expected query string. * @param string $isSecure The expected isSecure flag. * @param array $query The expected query parameters. */ public function testGetSetUrl($url, $expectedUrl, $host, $port, $requestUri, $path, $qs, $isSecure, array $query) { $request = new Request(); // Set some values to ensure the defaults get overridden. $request->setPort(999); $request->setSecure(true); $request->setRequestUri('/path?a=b'); $this->assertSame($request, $request->setUrl($url)); $this->assertSame($expectedUrl ?: $url, $request->getUrl()); $this->assertSame($host, $request->getHost()); $this->assertSame($port, $request->getPort()); $this->assertSame($requestUri, $request->getRequestUri()); $this->assertSame($path, $request->getPath()); $this->assertSame($qs, $request->getQueryString()); $this->assertSame($isSecure, $request->isSecure()); $this->assertSame($query, $request->getQuery()); }