コード例 #1
0
 /**
  * test the parse method of DashedRoute.
  *
  * @return void
  */
 public function testParse()
 {
     $route = new DashedRoute('/:controller/:action/:id', [], ['id' => Router::ID]);
     $route->compile();
     $result = $route->parse('/my-posts/my-view/1');
     $this->assertEquals('MyPosts', $result['controller']);
     $this->assertEquals('myView', $result['action']);
     $this->assertEquals('1', $result['id']);
     $route = new DashedRoute('/:controller/:action-:id');
     $route->compile();
     $result = $route->parse('/my-posts/my-view-1');
     $this->assertEquals('MyPosts', $result['controller']);
     $this->assertEquals('myView', $result['action']);
     $this->assertEquals('1', $result['id']);
     $route = new DashedRoute('/:controller/:action/:slug-:id', [], ['id' => Router::ID]);
     $route->compile();
     $result = $route->parse('/my-posts/my-view/the-slug-1');
     $this->assertEquals('MyPosts', $result['controller']);
     $this->assertEquals('myView', $result['action']);
     $this->assertEquals('1', $result['id']);
     $this->assertEquals('the-slug', $result['slug']);
     $route = new DashedRoute('/admin/:controller', ['prefix' => 'admin', 'action' => 'index']);
     $route->compile();
     $result = $route->parse('/admin/');
     $this->assertFalse($result);
     $result = $route->parse('/admin/my-posts');
     $this->assertEquals('MyPosts', $result['controller']);
     $this->assertEquals('index', $result['action']);
     $route = new DashedRoute('/media/search/*', ['controller' => 'Media', 'action' => 'searchIt']);
     $result = $route->parse('/media/search');
     $this->assertEquals('Media', $result['controller']);
     $this->assertEquals('searchIt', $result['action']);
     $this->assertEquals([], $result['pass']);
     $result = $route->parse('/media/search/tv_shows');
     $this->assertEquals('Media', $result['controller']);
     $this->assertEquals('searchIt', $result['action']);
     $this->assertEquals(['tv_shows'], $result['pass']);
 }