diff --git a/modules/search/search.test b/modules/search/search.test index 02bde2f5c454e1bb5cfb259586a03eaf1a9ead17..2415abe65ec7eaafbc81fa5e8c04fe02f7c07ff1 100644 --- a/modules/search/search.test +++ b/modules/search/search.test @@ -1,7 +1,10 @@ <?php // $Id$ +// The search index can contain different types of content. Typically the type is 'node'. +// Here we test with _test_ and _test2_ as the type. define('SEARCH_TYPE', '_test_'); +define('SEARCH_TYPE_2', '_test2_'); class SearchMatchTestCase extends DrupalWebTestCase { function getInfo() { @@ -36,11 +39,14 @@ class SearchMatchTestCase extends DrupalWebTestCase { for ($i = 1; $i <= 7; ++$i) { search_index($i, SEARCH_TYPE, $this->getText($i)); } + for ($i = 1; $i <= 5; ++$i) { + search_index($i + 7, SEARCH_TYPE_2, $this->getText2($i)); + } search_update_totals(); } /** - * Helper method for generating snippets of content. + * _test_: Helper method for generating snippets of content. * * Generated items to test against: * 1 ipsum @@ -56,6 +62,21 @@ class SearchMatchTestCase extends DrupalWebTestCase { return implode(' ', array_slice($words, $n - 1, $n)); } + /** + * _test2_: Helper method for generating snippets of content. + * + * Generated items to test against: + * 8 dear + * 9 king philip + * 10 philip came over + * 11 came over from germany + * 12 over from germany swimming + */ + function getText2($n) { + $words = explode(' ', "Dear King Philip came over from Germany swimming."); + return implode(' ', array_slice($words, $n - 1, $n)); + } + /** * Run predefine queries looking for indexed terms. */ @@ -116,6 +137,21 @@ class SearchMatchTestCase extends DrupalWebTestCase { $this->_testQueryMatching($query, $set, $results); $this->_testQueryScores($query, $set, $results); } + + // These queries are run against the second index type, SEARCH_TYPE_2. + $queries = array( + // Simple AND queries. + 'ipsum' => array(), + 'enim' => array(), + 'enim minim' => array(), + 'dear' => array(8), + 'germany' => array(11, 12), + ); + foreach ($queries as $query => $results) { + $set = do_search($query, SEARCH_TYPE_2); + $this->_testQueryMatching($query, $set, $results); + $this->_testQueryScores($query, $set, $results); + } } /**