Browse Source

Merge pull request #1718 from cakephp/issue-2931

Use App.base when there are no requests to generate URL's

Fixes #2931
Mark Story 12 years ago
parent
commit
a1a937a6bc
2 changed files with 15 additions and 0 deletions
  1. 3 0
      lib/Cake/Routing/Router.php
  2. 12 0
      lib/Cake/Test/Case/Routing/RouterTest.php

+ 3 - 0
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;

+ 12 - 0
lib/Cake/Test/Case/Routing/RouterTest.php

@@ -81,6 +81,18 @@ class RouterTest extends CakeTestCase {
 	}
 
 /**
+ * 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
  *
  * @return void