function SearchRankingTestCase::testDoubleRankings
Verifies that if we combine two rankings, search still works.
See issue http://drupal.org/node/771596
File
-
modules/
search/ search.test, line 557
Class
- SearchRankingTestCase
- Indexes content and tests ranking factors.
Code
function testDoubleRankings() {
// Login with sufficient privileges.
$this->drupalLogin($this->drupalCreateUser(array(
'skip comment approval',
'create page content',
)));
// See testRankings() above - build a node that will rank high for sticky.
$settings = array(
'type' => 'page',
'title' => 'Drupal rocks',
'body' => array(
LANGUAGE_NONE => array(
array(
'value' => "Drupal's search rocks",
),
),
),
'sticky' => 1,
);
$node = $this->drupalCreateNode($settings);
// Update the search index.
module_invoke_all('update_index');
search_update_totals();
// Refresh variables after the treatment.
$this->refreshVariables();
// Set up for ranking sticky and lots of comments; make sure others are
// disabled.
$node_ranks = array(
'sticky',
'promote',
'relevance',
'recent',
'comments',
'views',
);
foreach ($node_ranks as $var) {
$value = $var == 'sticky' || $var == 'comments' ? 10 : 0;
variable_set('node_rank_' . $var, $value);
}
// Do the search and assert the results.
$set = node_search_execute('rocks');
$this->assertEqual($set[0]['node']->nid, $node->nid, 'Search double ranking order.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.