diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-12-02 23:58:21 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-12-02 23:58:21 +0000 |
commit | aee64c551a51e8c1b9555abc6dc9af9fcd7f5842 (patch) | |
tree | 8c51d0532b1e151cf5a7bfb880491943741dd979 /modules/search | |
parent | d4a368964a73561db54bdcfcc3f587b95525dd2d (diff) | |
download | brdo-aee64c551a51e8c1b9555abc6dc9af9fcd7f5842.tar.gz brdo-aee64c551a51e8c1b9555abc6dc9af9fcd7f5842.tar.bz2 |
- Patch #950460 by Gábor Hojtsy, drunken monkey, jhodgdon: language selection in advanced search filters broken.
Diffstat (limited to 'modules/search')
-rw-r--r-- | modules/search/search.test | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/search/search.test b/modules/search/search.test index bf1f69419..45da4647f 100644 --- a/modules/search/search.test +++ b/modules/search/search.test @@ -1789,3 +1789,68 @@ class SearchPageOverride extends DrupalWebTestCase { $this->assertText('Test page text is here', 'Page override is working'); } } + +/** + * Test node search with multiple languages. + */ +class SearchLanguageTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search language selection', + 'description' => 'Tests advanced search with different languages enabled.', + 'group' => 'Search', + ); + } + + /** + * Implementation setUp(). + */ + function setUp() { + parent::setUp('search', 'locale'); + + // Create and login user. + $test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search', 'administer nodes', 'administer languages', 'access administration pages')); + $this->drupalLogin($test_user); + } + + function testLanguages() { + // Check that there are initially no languages displayed. + $this->drupalGet('search/node'); + $this->assertNoText(t('Languages'), t('No languages to choose from.')); + + // Add predefined language. + $edit = array('langcode' => 'fr'); + $this->drupalPost('admin/config/regional/language/add', $edit, t('Add language')); + $this->assertText('fr', t('Language added successfully.')); + + // Now we should have languages displayed. + $this->drupalGet('search/node'); + $this->assertText(t('Languages'), t('Languages displayed to choose from.')); + $this->assertText(t('English'), t('English is a possible choice.')); + $this->assertText(t('French'), t('French is a possible choice.')); + + // Ensure selecting no language does not make the query different. + $this->drupalPost('search/node', array(), t('Advanced search')); + $this->assertEqual($this->getUrl(), url('search/node/', array('absolute' => TRUE)), t('Correct page redirection, no language filtering.')); + + // Pick French and ensure it is selected. + $edit = array('language[fr]' => TRUE); + $this->drupalPost('search/node', $edit, t('Advanced search')); + $this->assertFieldByXPath('//input[@name="keys"]', 'language:fr', t('Language filter added to query.')); + + // Change the default language and disable English. + $path = 'admin/config/regional/language'; + $this->drupalGet($path); + $this->assertFieldChecked('edit-site-default-en', t('English is the default language.')); + $edit = array('site_default' => 'fr'); + $this->drupalPost(NULL, $edit, t('Save configuration')); + $this->assertNoFieldChecked('edit-site-default-en', t('Default language updated.')); + $edit = array('enabled[en]' => FALSE); + $this->drupalPost('admin/config/regional/language', $edit, t('Save configuration')); + $this->assertNoFieldChecked('edit-enabled-en', t('Language disabled.')); + + // Check that there are again no languages displayed. + $this->drupalGet('search/node'); + $this->assertNoText(t('Languages'), t('No languages to choose from.')); + } +} |