public function browserFollowsRedirectionIfResponseTellsSo()
{
$initialUri = new Uri('http://localhost/foo');
$redirectUri = new Uri('http://localhost/goToAnotherFoo');
$firstResponse = new Http\Response();
$firstResponse->setStatus(301);
$firstResponse->setHeader('Location', (string) $redirectUri);
$secondResponse = new Http\Response();
$secondResponse->setStatus(202);
$requestEngine = $this->createMock(Client\RequestEngineInterface::class);
$requestEngine->expects($this->at(0))->method('sendRequest')->with($this->attributeEqualTo('uri', $initialUri))->will($this->returnValue($firstResponse));
$requestEngine->expects($this->at(1))->method('sendRequest')->with($this->attributeEqualTo('uri', $redirectUri))->will($this->returnValue($secondResponse));
$this->browser->setRequestEngine($requestEngine);
$actual = $this->browser->request($initialUri);
$this->assertSame($secondResponse, $actual);
}