From aee64c551a51e8c1b9555abc6dc9af9fcd7f5842 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Thu, 2 Dec 2010 23:58:21 +0000 Subject: =?UTF-8?q?-=20Patch=20#950460=20by=20G=C3=A1bor=20Hojtsy,=20drunk?= =?UTF-8?q?en=20monkey,=20jhodgdon:=20language=20selection=20in=20advanced?= =?UTF-8?q?=20search=20filters=20broken.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/search/search.test | 65 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'modules/search') 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.')); + } +} -- cgit v1.2.3