#308233 by robertDouglass: Tests for the advanced search form.
parent
1c0e1c39ec
commit
5e576223bc
|
@ -196,6 +196,75 @@ class SearchBikeShed extends DrupalWebTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
class SearchAdvancedSearchForm extends DrupalWebTestCase {
|
||||
protected $node;
|
||||
|
||||
/**
|
||||
* Implementation of getInfo().
|
||||
*/
|
||||
function getInfo() {
|
||||
return array(
|
||||
'name' => t('Advanced search form'),
|
||||
'description' => t('Indexes content and tests the advanced search form.'),
|
||||
'group' => t('Search'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of setUp().
|
||||
*/
|
||||
function setUp() {
|
||||
parent::setUp('search');
|
||||
// Create and login user.
|
||||
$test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search', 'administer nodes'));
|
||||
$this->drupalLogin($test_user);
|
||||
|
||||
// Create initial node.
|
||||
$node = $this->drupalCreateNode();
|
||||
$this->node = $this->drupalCreateNode();
|
||||
|
||||
// First update the index. This does the initial processing.
|
||||
node_update_index();
|
||||
|
||||
// Then, run the shutdown function. Testing is a unique case where indexing
|
||||
// and searching has to happen in the same request, so running the shutdown
|
||||
// function manually is needed to finish the indexing process.
|
||||
search_update_totals();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test using the search form with GET and POST queries.
|
||||
* Test using the advanced search form to limit search to pages.
|
||||
*/
|
||||
function testNodeType() {
|
||||
$this->assertTrue($this->node->type == 'page', t('Node type is page.'));
|
||||
|
||||
// Assert that the dummy title doesn't equal the real title.
|
||||
$dummy_title = 'Lorem ipsum';
|
||||
$this->assertNotEqual($dummy_title, $this->node->title, t("Dummy title doens't equal node title"));
|
||||
|
||||
// Search for the dummy title with a GET query.
|
||||
$this->drupalGet('search/node/' . drupal_urlencode($dummy_title));
|
||||
$this->assertNoText($this->node->title, t('Page node is not found with dummy title.'));
|
||||
|
||||
// Search for the title of the node with a GET query.
|
||||
$this->drupalGet('search/node/' . drupal_urlencode($this->node->title));
|
||||
$this->assertText($this->node->title, t('Page node is found with GET query.'));
|
||||
|
||||
// Search for the title of the node with a POST query.
|
||||
$edit = array('or' => $this->node->title);
|
||||
$this->drupalPost('search/node', $edit, t('Advanced search'));
|
||||
$this->assertText($this->node->title, t('Page node is found with POST query.'));
|
||||
|
||||
// Advanced search type option.
|
||||
$this->drupalPost('search/node', array_merge($edit, array('type[page]' => 'page')), t('Advanced search'));
|
||||
$this->assertText($this->node->title, t('Page node is found with POST query and type:page.'));
|
||||
|
||||
$this->drupalPost('search/node', array_merge($edit, array('type[article]' => 'article')), t('Advanced search'));
|
||||
$this->assertText('bike shed', t('Article node is not found with POST query and type:article.'));
|
||||
}
|
||||
}
|
||||
|
||||
class SearchRankingTestCase extends DrupalWebTestCase {
|
||||
/**
|
||||
* Implementation of getInfo().
|
||||
|
|
Loading…
Reference in New Issue