summaryrefslogtreecommitdiff
path: root/modules/search
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-12-02 23:58:21 +0000
committerDries Buytaert <dries@buytaert.net>2010-12-02 23:58:21 +0000
commitaee64c551a51e8c1b9555abc6dc9af9fcd7f5842 (patch)
tree8c51d0532b1e151cf5a7bfb880491943741dd979 /modules/search
parentd4a368964a73561db54bdcfcc3f587b95525dd2d (diff)
downloadbrdo-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.test65
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.'));
+ }
+}