SearchLanguageTestCase::testLanguages

7 search.test SearchLanguageTestCase::testLanguages()
8 search.test SearchLanguageTestCase::testLanguages()

File

modules/search/search.test, line 1955
Tests for search.module.

Code

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.'));
}
Login or register to post comments