示例#1
0
 public function testRouteGlobbing()
 {
     $set = new RouteSet();
     $set->addRoute('articles/:action/:id', array('controller' => 'articles'));
     $set->addRoute('downloads/*filepath', array('controller' => 'downloads', 'action' => 'send_file'));
     $set->addRoute('*path', array('controller' => 'pages', 'action' => 'view'));
     $this->assertEquals(array('controller' => 'articles', 'action' => 'edit', 'id' => 15), $set->recognizePath('/articles/edit/15'));
     $this->assertEquals(array('controller' => 'downloads', 'action' => 'send_file', 'filepath' => 'pdf/my_book'), $set->recognizePath('/downloads/pdf/my_book'));
     $this->assertEquals(array('controller' => 'pages', 'action' => 'view', 'path' => 'products/web/cms/php'), $set->recognizePath('/products/web/cms/php'));
     $this->assertEquals(array('controller' => 'pages', 'action' => 'view'), $set->recognizePath('/'));
     $this->assertEquals('', $set->generate(array('controller' => 'pages', 'action' => 'view', 'path' => '')));
     $this->assertEquals('products/web/cms/php', $set->generate(array('controller' => 'pages', 'action' => 'view', 'path' => 'products/web/cms/php')));
     $this->assertEquals('downloads/pdf/my_book', $set->generate(array('controller' => 'downloads', 'action' => 'send_file', 'filepath' => 'pdf/my_book')));
 }