Source

						public function testRouteParsingWithOptionalParamsAndType() {
		$route = new Route(array(
			'template' => '/{:controller}/{:action}/{:id}.{:type}',
			'params' => array('id' => null)
		));
		$request = new Request();
		$default = array('controller' => 'posts');

		$request->url = '/posts/view/5.xml';
		$result = $route->parse($request);
		$expected = array('action' => 'view', 'id' => '5', 'type' => 'xml') + $default;
		$this->assertEqual($expected, $result->params);

		$request->url = '/posts/index.xml';
		$result = $route->parse($request);
		$expected = array('action' => 'index', 'id' => '', 'type' => 'xml') + $default;
		$this->assertEqual($expected, $result->params);

		$request->url = '/posts.xml';
		$result = $route->parse($request);
		$expected = array('action' => 'index', 'id' => '', 'type' => 'xml') + $default;
		$this->assertEqual($expected, $result->params);
	}