⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 router.test.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 5 页
字号:
		$this->assertEqual($result, $expected);		$result = Router::parse('/foo/view/param1:value1:1/param2:value2:3/param:value');		$expected = array('pass' => array('param1:value1:1'), 'named' => array('param2' => 'value2:3', 'param' => 'value'), 'controller' => 'bar', 'action' => 'view', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connectNamed(array('param1' => '[\d]', 'param2' => '[a-z]', 'param3' => '[\d]'));		$result = Router::parse('/controller/action/param1:1/param2:2/param3:3');		$expected = array('pass' => array('param2:2'), 'named' => array('param1' => '1', 'param3' => '3'), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connectNamed(array('param1' => '[\d]', 'param2' => true, 'param3' => '[\d]'));		$result = Router::parse('/controller/action/param1:1/param2:2/param3:3');		$expected = array('pass' => array(), 'named' => array('param1' => '1', 'param2' => '2', 'param3' => '3'), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connectNamed(array('param1' => 'value[\d]+:[\d]+'), array('greedy' => false));		$result = Router::parse('/controller/action/param1:value1:1/param2:value2:3/param3:value');		$expected = array('pass' => array('param2:value2:3', 'param3:value'), 'named' => array('param1' => 'value1:1'), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/foo/*', array('controller' => 'bar', 'action' => 'fubar'), array('named' => array('param1' => 'value[\d]:[\d]')));		Router::connectNamed(array(), array('greedy' => false));		$result = Router::parse('/foo/param1:value1:1/param2:value2:3/param3:value');		$expected = array('pass' => array('param2:value2:3', 'param3:value'), 'named' => array('param1' => 'value1:1'), 'controller' => 'bar', 'action' => 'fubar', 'plugin' => null);		$this->assertEqual($result, $expected);	}/** * testUrlGenerationWithPrefixes method *  * @access public * @return void */	function testUrlGenerationWithPrefixes() {		Router::reload();		Router::connect('/protected/:controller/:action/*', array(			'controller'	=> 'users',			'action'		=> 'index',			'prefix'		=> 'protected',			'protected'		=> true		));		Router::parse('/');		Router::setRequestInfo(array(			array('plugin' => null, 'controller' => 'images', 'action' => 'index', 'pass' => array(), 'prefix' => null, 'admin' => false, 'form' => array(), 'url' => array('url' => 'images/index')),			array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '', 'here' => '/images/index', 'webroot' => '/')		));		$result = Router::url(array('controller' => 'images', 'action' => 'add'));		$expected = '/images/add';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'images', 'action' => 'add', 'protected' => true));		$expected = '/protected/images/add';		$this->assertEqual($result, $expected);	}/** * testRemoveBase method *  * @access public * @return void */	function testRemoveBase() {		Router::setRequestInfo(array(			array('controller' => 'controller', 'action' => 'index', 'form' => array(), 'url' => array(), 'bare' => 0, 'plugin' => null),			array('base' => '/base', 'here' => '/', 'webroot' => '/base/', 'passedArgs' => array(), 'argSeparator' => ':', 'namedArgs' => array())		));		$result = Router::url(array('controller' => 'my_controller', 'action' => 'my_action'));		$expected = '/base/my_controller/my_action/';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'my_controller', 'action' => 'my_action', 'base' => false));		$expected = '/my_controller/my_action/';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'my_controller', 'action' => 'my_action', 'base' => true));		$expected = '/base/my_controller/my_action/base:1';		$this->assertEqual($result, $expected);	}/** * testParamsUrlParsing method *  * @access public * @return void */	function testParamsUrlParsing() {		Router::connect('/', array('controller' => 'posts', 'action' => 'index'));		Router::connect('/view/:user/*', array('controller' => 'posts', 'action' => 'view'), array('user'));		$result = Router::parse('/view/gwoo/');		$expected = array('user' => 'gwoo', 'controller' => 'posts', 'action' => 'view', 'plugin' =>'', 'pass' => array(), 'named' => array());		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/([0-9]+)-p-(.*)/', array('controller' => 'products', 'action' => 'show'));		Router::connect('/(.*)-q-(.*)/', array('controller' => 'products', 'action' => 'show'));		$result = Router::parse('/100-p-500/');		$expected = array('pass' => array('100', '500'), 'named' => array(), 'controller' => 'products', 'action' => 'show', 'plugin' => null);		$this->assertEqual($result, $expected);		$result = Router::parse('/bob-q-500/');		$expected = array('pass' => array('bob', '500'), 'named' => array(), 'controller' => 'products', 'action' => 'show', 'plugin' => null);		$this->assertEqual($result, $expected);		$result = Router::parse('/bob-p-500/');		$expected = array('pass' => array(), 'named' => array(), 'controller' => 'bob-p-500', 'plugin' => null, 'action' => 'index');		$this->assertEqual($result, $expected);	}/** * testPagesUrlParsing method *  * @access public * @return void */	function testPagesUrlParsing() {		Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));		Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));		$result = Router::parse('/');		$expected = array('pass'=>array('home'), 'named' => array(), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/home/');		$expected = array('pass' => array('home'), 'named' => array(), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));		$result = Router::parse('/pages/display/home/parameter:value');		$expected = array('pass' => array('home'), 'named' => array('parameter' => 'value'), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));		Router::connect('/pages/*/:event', array('controller' => 'pages', 'action' => 'display'), array('event' => '[a-z0-9_-]+'));		$result = Router::parse('/');		$expected = array('pass'=>array('home'), 'named' => array(), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/home');		$expected = array('pass' => array('home'), 'named' => array(), 'event' => '', 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/home/');		$expected = array('pass' => array('home'), 'named' => array(), 'event' => '', 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/display/home/event:value');		$expected = array('pass' => array('home'), 'named' => array('event' => 'value'), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/display/home/event:Val_u2');		$expected = array('pass' => array('home'), 'named' => array('event' => 'Val_u2'), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		$result = Router::parse('/pages/display/home/event:val-ue');		$expected = array('pass' => array('home'), 'named' => array('event' => 'val-ue'), 'plugin' => null, 'controller' => 'pages', 'action' => 'display');		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/', array('controller' => 'posts', 'action' => 'index'));		Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));		$result = Router::parse('/pages/contact/');		$expected = array('pass'=>array('contact'), 'named' => array(), 'plugin'=> null, 'controller'=>'pages', 'action'=>'display');		$this->assertEqual($result, $expected);	}	function testParsingWithPrefixes() {		$adminParams = array('prefix' => 'admin', 'admin' => true);		Router::connect('/admin/:controller', $adminParams);		Router::connect('/admin/:controller/:action', $adminParams);		Router::connect('/admin/:controller/:action/*', $adminParams);		Router::setRequestInfo(array(			array('controller' => 'controller', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),			array('base' => '/base', 'here' => '/', 'webroot' => '/base/', 'passedArgs' => array(), 'argSeparator' => ':', 'namedArgs' => array())		));		$result = Router::parse('/admin/posts/');		$expected = array('pass' => array(), 'named' => array(), 'prefix' => 'admin', 'plugin' => null, 'controller' => 'posts', 'action' => 'index', 'admin' => true);		$this->assertEqual($result, $expected);		$result = Router::parse('/admin/posts');		$this->assertEqual($result, $expected);		$result = Router::url(array('admin' => true, 'controller' => 'posts'));		$expected = '/base/admin/posts';		$this->assertEqual($result, $expected);		$result = Router::prefixes();		$expected = array('admin');		$this->assertEqual($result, $expected);	}	function testPassedArgsOrder() {		Router::connect('/test2/*', array('controller' => 'pages', 'action' => 'display', 2));		Router::connect('/test/*', array('controller' => 'pages', 'action' => 'display', 1));		Router::parse('/');		$result = Router::url(array('controller' => 'pages', 'action' => 'display', 1, 'whatever'));		$expected = '/test/whatever';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'pages', 'action' => 'display', 2, 'whatever'));		$expected = '/test2/whatever';		$this->assertEqual($result, $expected);		Router::reload();		Router::setRequestInfo(array(			array('plugin' => null, 'controller' => 'images', 'action' => 'index', 'pass' => array(), 'named' => array(), 'prefix' => 'protected', 'admin' => false,  'form' => array(), 'url' => array ('url' => 'protected/images/index')),			array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '', 'here' => '/protected/images/index', 'webroot' => '/')		));		Router::connect('/protected/:controller/:action/*', array(			'controller'	=> 'users',			'action'		=> 'index',			'prefix'		=> 'protected'		));		Router::parse('/');		$result = Router::url(array('controller' => 'images', 'action' => 'add'));		$expected = '/protected/images/add';		$this->assertEqual($result, $expected);		$result = Router::prefixes();		$expected = array('protected', 'admin');		$this->assertEqual($result, $expected);	}	function testRegexRouteMatching() {		Router::connect('/:locale/:controller/:action/*', array(), array('locale' => 'dan|eng'));		$result = Router::parse('/test/test_action');		$expected = array('pass' => array(), 'named' => array(), 'controller' => 'test', 'action' => 'test_action', 'plugin' => null);		$this->assertEqual($result, $expected);		$result = Router::parse('/eng/test/test_action');		$expected = array('pass' => array(), 'named' => array(), 'locale' => 'eng', 'controller' => 'test', 'action' => 'test_action', 'plugin' => null);		$this->assertEqual($result, $expected);		$result = Router::parse('/badness/test/test_action');		$expected = array('pass' => array('test_action'), 'named' => array(), 'controller' => 'badness', 'action' => 'test', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/:locale/:controller/:action/*', array(), array('locale' => 'dan|eng'));		Router::setRequestInfo(array(			array('plugin' => null, 'controller' => 'test', 'action' => 'index', 'pass' => array(), 'form' => array(), 'url' => array ('url' => 'test/test_action')),			array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '', 'here' => '/test/test_action', 'webroot' => '/')		));		$result = Router::url(array('action' => 'test_another_action'));		$expected = '/test/test_another_action/';		$this->assertEqual($result, $expected);		$result = Router::url(array('action' => 'test_another_action', 'locale' => 'eng'));		$expected = '/eng/test/test_another_action';		$this->assertEqual($result, $expected);		$result = Router::url(array('action' => 'test_another_action', 'locale' => 'badness'));		$expected = '/test/test_another_action/locale:badness';		$this->assertEqual($result, $expected);	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -