'Query handling', 'description' => 'Throw various queries at the query object and make sure they all parse correctly.', 'group' => 'ApacheSolr' ); } function setUp() { parent::setUp('search', 'apachesolr'); } // use fields from schema.xml only private $filters = array( 'uid:1', 'uid:1 uid:2', '-tid:31', '-tid:31 -tid:25', 'uid:31 -tid:25', 'title:"I love you"', ); function testParseSimple() { foreach ($this->filters as $string) { $query = apachesolr_drupal_query('', $string, '', TRUE); // force the query to be rebuilt without removing any fields. $query->remove_field('fake-field-name'); $this->assertEqual("filters=$string", $query->get_url_querystring()); } } function testAddField() { foreach ($this->filters as $string) { $query = apachesolr_drupal_query('', $string, '', TRUE); $query->add_field('wham', '1'); $this->assertEqual("filters=$string wham:1", $query->get_url_querystring()); } } function testRemoveField() { $string = 'uid:1 tid:2 title:foo'; $query = apachesolr_drupal_query('', $string, '', TRUE); $query->remove_field('uid', '1'); $this->assertEqual("filters=tid:2 title:foo", $query->get_url_querystring()); $string = 'uid:1 tid:2 tid:3 title:foo tid:4'; $query = apachesolr_drupal_query('', $string, '', TRUE); $query->remove_field('tid'); $this->assertEqual("filters=uid:1 title:foo", $query->get_url_querystring()); } }