public function testParseRequest()
{
$manager = new UrlManager(['cache' => null]);
$request = new Request(['hostInfo' => 'http://en.example.com', 'methodParam' => '_METHOD']);
$suites = $this->getTestsForParseRequest();
foreach ($suites as $i => $suite) {
list($name, $config, $tests) = $suite;
$rule = new UrlRule($config);
foreach ($tests as $j => $test) {
$request->pathInfo = $test[0];
$route = $test[1];
$params = isset($test[2]) ? $test[2] : [];
$_POST['_METHOD'] = isset($test[3]) ? $test[3] : 'GET';
$result = $rule->parseRequest($manager, $request);
if ($route === false) {
$this->assertFalse($result, "Test#{$i}-{$j}: {$name}");
} else {
$this->assertEquals([$route, $params], $result, "Test#{$i}-{$j}: {$name}");
}
}
}
}