public function test_get_tag_suggestions() { // ensure correct counts of tags $this->tags_manager->calc_count_tags(); $query = "tag"; $exclude = array("tag1"); $count = 5; $tags = $this->tags_manager->get_tag_suggestions($query, $exclude, $count); $this->assertEquals(array(array("text" => "tag2")), $tags); $query = "tag"; $exclude = array(); $count = 5; $tags = $this->tags_manager->get_tag_suggestions($query, $exclude, $count); $this->assertEquals(array(array("text" => "tag1"), array("text" => "tag2")), $tags); $query = "tag"; $exclude = array(); $count = 1; $tags = $this->tags_manager->get_tag_suggestions($query, $exclude, $count); $this->assertEquals(array(array("text" => "tag1")), $tags); $query = "ta"; $exclude = array(); $count = 5; $tags = $this->tags_manager->get_tag_suggestions($query, $exclude, $count); $this->assertEquals(array(), $tags); }
/** * Gets suggestions for tags based on a ajax request, route: /tags/suggest * * @param php://input raw post data must contain a json-encoded object of this structure: {"query":"...", "exclude":["...", "...", ...]} */ public function suggest_tags() { if (false && $this->request->is_ajax()) { $data = json_decode(file_get_contents('php://input'), true); $query = $data['query']; $exclude = $data['exclude']; $tags = $this->tags_manager->get_tag_suggestions($query, $exclude, 5); $json_response = new json_response(); $json_response->send($tags); } // fake a 404 return $this->helper->error($this->user->lang('RH_TOPICTAGS_TAG_SUGGEST_TAG_ROUTE_ERROR', $this->helper->get_current_url()), 404); }