Example #1
0
 public function testFollowRedirectWithPort()
 {
     $headers = array('HTTP_HOST' => 'www.example.com:8080', 'HTTP_USER_AGENT' => 'Symfony2 BrowserKit', 'HTTPS' => false);
     $client = new TestClient();
     $client->followRedirects(false);
     $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com:8080/redirected')));
     $client->request('GET', 'http://www.example.com:8080/');
     $this->assertEquals($headers, $client->getRequest()->getServer());
 }
Example #2
0
 public function testFollowRedirectWithCookies()
 {
     $client = new TestClient();
     $client->followRedirects(false);
     $client->setNextResponse(new Response('', 302, array('Location' => 'http://www.example.com/redirected', 'Set-Cookie' => 'foo=bar')));
     $client->request('GET', 'http://www.example.com/');
     $this->assertEquals(array(), $client->getRequest()->getCookies());
     $client->followRedirect();
     $this->assertEquals(array('foo' => 'bar'), $client->getRequest()->getCookies());
 }
Example #3
0
    public function testFollowRedirectWithHeaders()
    {
        $headers = array(
            'HTTP_HOST'       => 'www.example.com',
            'HTTP_USER_AGENT' => 'Symfony2 BrowserKit',
            'CONTENT_TYPE'    => 'application/vnd.custom+xml',
            'HTTPS'           => false,
        );

        $client = new TestClient();
        $client->followRedirects(false);
        $client->setNextResponse(new Response('', 302, array(
            'Location'    => 'http://www.example.com/redirected',
        )));
        $client->request('GET', 'http://www.example.com/', array(), array(), array(
            'CONTENT_TYPE' => 'application/vnd.custom+xml',
        ));

        $this->assertEquals($headers, $client->getRequest()->getServer());

        $client->followRedirect();

        $headers['HTTP_REFERER'] = 'http://www.example.com/';

        $this->assertEquals($headers, $client->getRequest()->getServer());
    }
Example #4
0
 public function testFollowRedirectWithPostMethod()
 {
     $parameters = array('foo' => 'bar');
     $files = array('myfile.foo' => 'baz');
     $server = array('X_TEST_FOO' => 'bazbar');
     $content = 'foobarbaz';
     $client = new TestClient();
     $client->setNextResponse(new Response('', 307, array('Location' => 'http://www.example.com/redirected')));
     $client->request('POST', 'http://www.example.com/foo/foobar', $parameters, $files, $server, $content);
     $this->assertEquals('http://www.example.com/redirected', $client->getRequest()->getUri(), '->followRedirect() follows a redirect with POST method');
     $this->assertArrayHasKey('foo', $client->getRequest()->getParameters(), '->followRedirect() keeps parameters with POST method');
     $this->assertArrayHasKey('myfile.foo', $client->getRequest()->getFiles(), '->followRedirect() keeps files with POST method');
     $this->assertArrayHasKey('X_TEST_FOO', $client->getRequest()->getServer(), '->followRedirect() keeps $_SERVER with POST method');
     $this->assertEquals($content, $client->getRequest()->getContent(), '->followRedirect() keeps content with POST method');
     $this->assertEquals('POST', $client->getRequest()->getMethod(), '->followRedirect() keeps request method');
 }