#308277 by robertDouglass: Tests for multiple search engine types.

merge-requests/26/head
Angie Byron 2009-01-22 04:49:58 +00:00
parent a8c0d79fae
commit 61bbde66f5
1 changed files with 37 additions and 1 deletions

View File

@ -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);
}
}
/**