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

📄 router.test.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 5 页
字号:
 * @return void */	function testRouteSymmetry() {		Router::connect(			"/:extra/page/:slug/*",			array('controller' => 'pages', 'action' => 'view', 'extra' => null),			array("extra" => '[a-z1-9_]*', "slug" => '[a-z1-9_]+', "action" => 'view')		);		$result = Router::parse('/some_extra/page/this_is_the_slug');		$expected = array('pass' => array(), 'named' => array(), 'plugin' => null, 'controller' => 'pages', 'action' => 'view', 'slug' => 'this_is_the_slug', 'extra' => 'some_extra');		$this->assertEqual($result, $expected);		$result = Router::parse('/page/this_is_the_slug');		$expected = array( 'pass' => array(), 'named' => array(), 'plugin' => null, 'controller' => 'pages', 'action' => 'view', 'slug' => 'this_is_the_slug', 'extra' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connect(			"/:extra/page/:slug/*",			array('controller' => 'pages', 'action' => 'view', 'extra' => null),			array("extra" => '[a-z1-9_]*', "slug" => '[a-z1-9_]+')		);		Router::parse('/');		$result = Router::url(array('admin' => null, 'plugin' => null, 'controller' => 'pages', 'action' => 'view', 'slug' => 'this_is_the_slug', 'extra' => null));		$expected = '/page/this_is_the_slug';		$this->assertEqual($result, $expected);		$result = Router::url(array('admin' => null, 'plugin' => null, 'controller' => 'pages', 'action' => 'view', 'slug' => 'this_is_the_slug', 'extra' => 'some_extra'));		$expected = '/some_extra/page/this_is_the_slug';		$this->assertEqual($result, $expected);	}/** * testAdminRouting method *  * @access public * @return void */	function testAdminRouting() {		Configure::write('Routing.admin', 'admin');		Router::reload();		Router::parse('/');		Router::reload();		Router::connect('/admin', array('admin' => true, 'controller' => 'users'));		$result = Router::parse('/admin');		$expected = array('pass' => array(), 'named' => array(), 'plugin' => '', 'controller' => 'users', 'action' => 'index', 'admin' => true, 'prefix' => 'admin');		$this->assertEqual($result, $expected);		$result = Router::url(array('admin' => true, 'controller' => 'posts', 'action' => 'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/admin/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);		Router::reload();		Router::parse('/');		$result = Router::url(array('admin' => false, 'controller' => 'posts', 'action' => 'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);		Router::reload();		Router::setRequestInfo(array(			array('admin' => true, 'controller' => 'controller', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),			array('base' => '/', 'here' => '/', 'webroot' => '/base/', 'passedArgs' => array(), 'argSeparator' => ':', 'namedArgs' => array())		));		Router::parse('/');		$result = Router::url(array('admin' => false, 'controller' => 'posts', 'action' => 'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'posts', 'action' => 'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/admin/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);		Router::reload();		$result = Router::parse('admin/users/view/');		$expected = array('pass' => array(), 'named' => array(), 'controller' => 'users', 'action' => 'view', 'plugin' => null, 'prefix' => 'admin', 'admin' => true);		$this->assertEqual($result, $expected);		Configure::write('Routing.admin', 'beheer');		Router::reload();		Router::setRequestInfo(array(			array('beheer' => true, 'controller' => 'posts', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),			array('base' => '/', 'here' => '/beheer/posts/index', 'webroot' => '/', 'passedArgs' => array(), 'argSeparator' => ':', 'namedArgs' => array())		));		$result = Router::parse('beheer/users/view/');		$expected = array('pass' => array(), 'named' => array(), 'controller' => 'users', 'action' => 'view', 'plugin' => null, 'prefix' => 'beheer', 'beheer' => true);		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'posts', 'action' => 'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/beheer/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);	}/** * testExtensionParsingSetting method *  * @access public * @return void */	function testExtensionParsingSetting() {		$router = Router::getInstance();		$this->assertFalse($this->router->__parseExtensions);		$router->parseExtensions();		$this->assertTrue($this->router->__parseExtensions);	}/** * testExtensionParsing method *  * @access public * @return void */	function testExtensionParsing() {		Router::parseExtensions();		$result = Router::parse('/posts.rss');		$expected = array('plugin' => null, 'controller' => 'posts', 'action' => 'index', 'url' => array('ext' => 'rss'), 'pass'=> array(), 'named' => array());		$this->assertEqual($result, $expected);		$result = Router::parse('/posts/view/1.rss');		$expected = array('plugin' => null, 'controller' => 'posts', 'action' => 'view', 'pass' => array('1'), 'named' => array(), 'url' => array('ext' => 'rss'), 'named' => array());		$this->assertEqual($result, $expected);		$result = Router::parse('/posts/view/1.rss?query=test');		$this->assertEqual($result, $expected);		$result = Router::parse('/posts/view/1.atom');		$expected['url'] = array('ext' => 'atom');		$this->assertEqual($result, $expected);		Router::reload();		Router::parseExtensions('rss', 'xml');		$result = Router::parse('/posts.xml');		$expected = array('plugin' => null, 'controller' => 'posts', 'action' => 'index', 'url' => array('ext' => 'xml'), 'pass'=> array(), 'named' => array());		$this->assertEqual($result, $expected);		$result = Router::parse('/posts.atom?hello=goodbye');		$expected = array('plugin' => null, 'controller' => 'posts.atom', 'action' => 'index', 'pass' => array(), 'named' => array(), 'url' => array('ext' => 'html'));		$this->assertEqual($result, $expected);		Router::reload();		Router::parseExtensions();		$result = $this->router->__parseExtension('/posts.atom');		$expected = array('ext' => 'atom', 'url' => '/posts');		$this->assertEqual($result, $expected);	}/** * testQuerystringGeneration method *  * @access public * @return void */	function testQuerystringGeneration() {		$result = Router::url(array('controller' => 'posts', 'action'=>'index', '0', '?' => 'var=test&var2=test2'));		$expected = '/posts/index/0?var=test&var2=test2';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'posts', 'action'=>'index', '0', '?' => array('var' => 'test', 'var2' => 'test2')));		$this->assertEqual($result, $expected);		$expected .= '&more=test+data';		$result = Router::url(array('controller' => 'posts', 'action'=>'index', '0', '?' => array('var' => 'test', 'var2' => 'test2', 'more' => 'test data')));		$this->assertEqual($result, $expected);		// Test bug #4614		$restore = ini_get('arg_separator.output');		ini_set('arg_separator.output', '&');		$result = Router::url(array('controller' => 'posts', 'action'=>'index', '0', '?' => array('var' => 'test', 'var2' => 'test2', 'more' => 'test data')));		$this->assertEqual($result, $expected);		ini_set('arg_separator.output', $restore);	}/** * testConnectNamed method *  * @access public * @return void */	function testConnectNamed() {		$named = Router::connectNamed(false, array('default' => true));		$this->assertFalse($named['greedy']);		$this->assertEqual(array_keys($named['rules']), $named['default']);	}/** * testNamedArgsUrlGeneration method *  * @access public * @return void */	function testNamedArgsUrlGeneration() {		$result = Router::url(array('controller' => 'posts', 'action' => 'index', 'published' => 1, 'deleted' => 1));		$expected = '/posts/index/published:1/deleted:1';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'posts', 'action' => 'index', 'published' => 0, 'deleted' => 0));		$expected = '/posts/index/published:0/deleted:0';		$this->assertEqual($result, $expected);		Router::reload();		extract(Router::getNamedExpressions());		Router::connectNamed(array('file'=> '[\w\.\-]+\.(html|png)'));		Router::connect('/', array('controller' => 'graphs', 'action' => 'index'));		Router::connect('/:id/*', array('controller' => 'graphs', 'action' => 'view'), array('id' => $ID));		$result = Router::url(array('controller' => 'graphs', 'action' => 'view', 'id' => 12, 'file' => 'asdf.png'));		$expected = '/12/file:asdf.png';		$this->assertEqual($result, $expected);		$result = Router::url(array('controller' => 'graphs', 'action' => 'view', 'id' => 12, 'file' => 'asdf.foo'));		$expected = '/graphs/view/12/file:asdf.foo';		$this->assertEqual($result, $expected);		Configure::write('Routing.admin', 'admin');		Router::reload();		Router::setRequestInfo(array(			array('admin' => true, 'controller' => 'controller', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),			array('base' => '/', 'here' => '/', 'webroot' => '/base/', 'passedArgs' => array(), 'argSeparator' => ':', 'namedArgs' => array())		));		Router::parse('/');		$result = Router::url(array('page' => 1, 0 => null, 'sort' => 'controller', 'direction' => 'asc', 'order' => null));		$expected = "/admin/controller/index/page:1/sort:controller/direction:asc";		$this->assertEqual($result, $expected);		Router::reload();		Router::setRequestInfo(array(			array('admin' => true, 'controller' => 'controller', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),			array('base' => '/', 'here' => '/', 'webroot' => '/base/', 'passedArgs' => array('type'=> 'whatever'), 'argSeparator' => ':', 'namedArgs' => array('type'=> 'whatever'))		));		$result = Router::parse('/admin/controller/index/type:whatever');		$result = Router::url(array('type'=> 'new'));		$expected = "/admin/controller/index/type:new";		$this->assertEqual($result, $expected);	}/** * testNamedArgsUrlParsing method *  * @access public * @return void */	function testNamedArgsUrlParsing() {		$Router =& Router::getInstance();		Router::reload();		$result = Router::parse('/controller/action/param1:value1:1/param2:value2:3/param:value');		$expected = array('pass' => array(), 'named' => array('param1' => 'value1:1', 'param2' => 'value2:3', 'param' => 'value'), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		$result = Router::connectNamed(false);		$this->assertEqual(array_keys($result['rules']), array());		$this->assertFalse($result['greedy']);		$result = Router::parse('/controller/action/param1:value1:1/param2:value2:3/param:value');		$expected = array('pass' => array('param1:value1:1', 'param2:value2:3', 'param:value'), 'named' => array(), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		$result = Router::connectNamed(true);		$this->assertEqual(array_keys($result['rules']), $Router->named['default']);		$this->assertTrue($result['greedy']);		Router::reload();		Router::connectNamed(array('param1' => 'not-matching'));		$result = Router::parse('/controller/action/param1:value1:1/param2:value2:3/param:value');		$expected = array('pass' => array('param1:value1:1'), 'named' => array('param2' => 'value2:3', 'param' => 'value'), 'controller' => 'controller', 'action' => 'action', 'plugin' => null);		$this->assertEqual($result, $expected);		Router::reload();		Router::connect('/foo/:action/*', array('controller' => 'bar'), array('named' => array('param1' => array('action' => 'index')), 'greedy' => true));		$result = Router::parse('/foo/index/param1:value1:1/param2:value2:3/param:value');		$expected = array('pass' => array(), 'named' => array('param1' => 'value1:1', 'param2' => 'value2:3', 'param' => 'value'), 'controller' => 'bar', 'action' => 'index', 'plugin' => null);

⌨️ 快捷键说明

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