/** * @dataProvider providerConstruct */ public function testConstruct($url, $protocol, $host, $port, $path, $query, $baseUrl, $basePath) { $request = new Url($url); $this->assertEquals($url, $request->getUrl()); $this->assertEquals($protocol, $request->getProtocol()); $this->assertEquals($host, $request->getHost()); $this->assertEquals($port, $request->getPort()); $this->assertEquals($path, $request->getPath()); $this->assertEquals($query, $request->getQuery()); $this->assertEquals($baseUrl, $request->getBaseUrl()); $this->assertEquals($basePath, $request->getBasePath()); }
/** * Look up the node which matches the query based on the expired routes * @param string $query * @param array $routes * @return null|zibo\core\Request Request object to dispatch a node if found, null otherwise */ private function getRequestFromExpiredQuery(array $routes, $query, $site) { $model = ModelManager::getInstance()->getModel(ExpiredRouteModel::NAME); $node = $model->getNodeByRoutes($routes, $site); if (!$node) { return null; } $route = $node->getRoute(); $baseUrl = Url::getBaseUrl(); $basePath = $baseUrl . $route; $parameters = $this->getParametersFromQuery($query, $route); array_unshift($parameters, $node->id); return new Request($baseUrl, $basePath, self::FRONTEND_CONTROLLER, IndexController::ACTION_EXPIRED, $parameters, $query); }