/** * @group Slow * @slowExecutionTime 0.07538 ms * @covers \Wikia\Search\Config::getQuery */ public function testGetQuery() { $config = new \Wikia\Search\Config(); $this->assertNull($config->getQuery()); $query = "foo and: bar & baz"; $config->setQuery($query); $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery()); $this->assertAttributeContains($query, 'rawQuery', $config->getQuery()); $config = new \Wikia\Search\Config(['query' => 'foo']); $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery()); }
/** * Sets the response based on values set in config * @param Wikia\Search\Config $searchConfig * @param array $fields that will be returned in items array * @param bool $metadata if true, will return also query statistics * @throws InvalidParameterApiException if query field in request is missing */ protected function setResponseFromConfig(Wikia\Search\Config $searchConfig) { if (!$searchConfig->getQuery()->hasTerms()) { throw new InvalidParameterApiException('query'); } //Standard Wikia API response with pagination values $responseValues = (new Factory())->getFromConfig($searchConfig)->searchAsApi(['pageid' => 'id', 'title', 'url', 'ns', 'article_quality_i' => 'quality'], true); if (empty($responseValues['items'])) { throw new NotFoundApiException(); } $this->setResponseData($responseValues, ['urlFields' => 'url'], WikiaResponse::CACHE_STANDARD); }
/** * Returns the query used to get these results * @return string */ public function getQuery() { return $this->searchConfig->getQuery()->getQueryForHtml(); }