Index: Tests/MVC/Controller/AbstractController_testcase.php =================================================================== --- Tests/MVC/Controller/AbstractController_testcase.php (revision 2599) +++ Tests/MVC/Controller/AbstractController_testcase.php (working copy) @@ -145,7 +145,22 @@ $this->assertEquals($expectedResult, $actualResult); } + + /** + * @test + */ + public function theBaseUriIsNotAddedIfExternalURI() { + $mockRequest = $this->getMock('Tx_Extbase_MVC_Web_Request'); + $mockRequest->expects($this->any())->method('getBaseURI')->will($this->returnValue('http://www.example.com/foo/')); + $controller = $this->getMock($this->buildAccessibleProxy('Tx_Extbase_MVC_Controller_AbstractController'), array('dummy'), array(), '', FALSE); + $controller->_set('request', $mockRequest); + $actualResult = $controller->_call('addBaseUriIfNecessary', 'http://www.anotherexample.com/foo/bar/baz/boom.html'); + $expectedResult = 'http://www.anotherexample.com/foo/bar/baz/boom.html'; + + $this->assertEquals($expectedResult, $actualResult); + } + /** * @test * @expectedException Tx_Extbase_MVC_Exception_StopAction Index: Classes/MVC/Controller/AbstractController.php =================================================================== --- Classes/MVC/Controller/AbstractController.php (revision 2599) +++ Classes/MVC/Controller/AbstractController.php (working copy) @@ -336,7 +336,7 @@ */ protected function addBaseUriIfNecessary($uri) { $baseUri = $this->request->getBaseURI(); - if(stripos($uri, $baseUri) !== 0) { + if(stripos($uri, 'http://') !== 0 && stripos($uri, 'https://') !== 0) { $uri = $baseUri . (string)$uri; } return $uri;