diff --git a/lib/Cake/Routing/Router.php b/lib/Cake/Routing/Router.php index dba1d6bad..26f6f82c9 100644 --- a/lib/Cake/Routing/Router.php +++ b/lib/Cake/Routing/Router.php @@ -803,6 +803,9 @@ class Router { $params = $request->params; $path = array('base' => $request->base, 'here' => $request->here); } + if (empty($path['base'])) { + $path['base'] = Configure::read('App.base'); + } $base = $path['base']; $extension = $output = $q = $frag = null; diff --git a/lib/Cake/Test/Case/Routing/RouterTest.php b/lib/Cake/Test/Case/Routing/RouterTest.php index 0508deb9f..23896fde4 100644 --- a/lib/Cake/Test/Case/Routing/RouterTest.php +++ b/lib/Cake/Test/Case/Routing/RouterTest.php @@ -80,6 +80,18 @@ class RouterTest extends CakeTestCase { $this->assertEquals('https://example.com', Configure::read('App.fullBaseUrl')); } +/** + * Test that Router uses App.base to build URL's when there are no stored + * request objects. + * + * @return void + */ + public function testBaseUrlWithBasePath() { + Configure::write('App.base', '/cakephp'); + Router::fullBaseUrl('http://example.com'); + $this->assertEquals('http://example.com/cakephp/tasks', Router::url('/tasks', true)); + } + /** * testRouteDefaultParams method *