public function testMixedCaseRouting() { $routeMock = $this->getMock('stdClass', array('callback')); $routeMock->expects($this->once())->method('callback'); $noMatchMock = $this->getMock('stdClass', array('callback')); $noMatchMock->expects($this->never())->method('callback'); $r = new Router(); $r->add('/case/sensitive/route', array(), array($noMatchMock, 'callback')); $r->addRoute(new CaseInsensitiveRoute('/case/insensitive/route'), array($routeMock, 'callback')); $r->route('/Case/INSENSITIVE/RoUtE'); }
public function testRegexReverseRouting() { $r = new Router(); $r->add('/\\d+:id', array('controller' => 'foo', 'action' => 'bar')); $r->add('/foo/\\w+:id', array('controller' => 'foo', 'action' => 'bar')); $this->assertEquals('/42', $r->reverseRoute(array('controller' => 'foo', 'action' => 'bar', 'id' => 42))); $this->assertEquals('/foo/baz', $r->reverseRoute(array('controller' => 'foo', 'action' => 'bar', 'id' => 'baz'))); }