Merge branch '1.3' of github.com:cakephp/cakephp1x into 1.3

This commit is contained in:
Mark Story 2010-01-18 21:57:46 -05:00
commit 9b3a2fd658
2 changed files with 29 additions and 1 deletions

View file

@ -278,6 +278,7 @@ class Router {
$routeClass = $options['routeClass']; $routeClass = $options['routeClass'];
unset($options['routeClass']); unset($options['routeClass']);
} }
//TODO 2.0 refactor this to use a string class name, throw exception, and then construct.
$Route =& new $routeClass($route, $defaults, $options); $Route =& new $routeClass($route, $defaults, $options);
if ($routeClass !== 'CakeRoute' && !is_subclass_of($Route, 'CakeRoute')) { if ($routeClass !== 'CakeRoute' && !is_subclass_of($Route, 'CakeRoute')) {
trigger_error(__('Route classes must extend CakeRoute', true), E_USER_WARNING); trigger_error(__('Route classes must extend CakeRoute', true), E_USER_WARNING);
@ -539,6 +540,7 @@ class Router {
$this->connect("/{$prefix}/:plugin/:controller", $indexParams, $match); $this->connect("/{$prefix}/:plugin/:controller", $indexParams, $match);
$this->connect("/{$prefix}/:plugin/:controller/:action/*", $params, $match); $this->connect("/{$prefix}/:plugin/:controller/:action/*", $params, $match);
} }
$this->connect('/:plugin/:controller', array('action' => 'index'), $match);
$this->connect('/:plugin/:controller/:action/*', array(), $match); $this->connect('/:plugin/:controller/:action/*', array(), $match);
} }

View file

@ -1849,7 +1849,7 @@ class RouterTest extends CakeTestCase {
* @return void * @return void
* @access public * @access public
*/ */
function testCurentRoute() { function testCurrentRoute() {
$url = array('controller' => 'pages', 'action' => 'display', 'government'); $url = array('controller' => 'pages', 'action' => 'display', 'government');
Router::connect('/government', $url); Router::connect('/government', $url);
Router::parse('/government'); Router::parse('/government');
@ -1924,6 +1924,32 @@ class RouterTest extends CakeTestCase {
$this->assertFalse(isset($result['action'])); $this->assertFalse(isset($result['action']));
} }
/**
* test that the required default routes are connected.
*
* @return void
*/
function testConnectDefaultRoutes() {
App::build(array(
'plugins' => array(
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS
)
), true);
App::objects('plugin', null, false);
$plugins = App::objects('plugin');
$plugin = Inflector::underscore($plugins[0]);
$result = Router::url(array('plugin' => $plugin, 'controller' => 'js_file', 'action' => 'index'));
$this->assertEqual($result, '/plugin_js/js_file');
$result = Router::parse('/plugin_js/js_file');
$expected = array(
'plugin' => 'plugin_js', 'controller' => 'js_file', 'action' => 'index',
'named' => array(), 'pass' => array()
);
$this->assertEqual($result, $expected);
}
/** /**
* test using a custom route class for route connection * test using a custom route class for route connection
* *