diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/locale/locale.test | 13 | ||||
-rw-r--r-- | modules/simpletest/drupal_web_test_case.php | 30 |
2 files changed, 34 insertions, 9 deletions
diff --git a/modules/locale/locale.test b/modules/locale/locale.test index 3138348a5..c7a6e4489 100644 --- a/modules/locale/locale.test +++ b/modules/locale/locale.test @@ -79,16 +79,13 @@ class LocaleConfigurationTest extends DrupalWebTestCase { // Check if we can change the default language. $path = 'admin/international/language'; $this->drupalGet($path); - // Set up the raw HTML strings we need to search for. - $elements = $this->xpath('//input[@id="edit-site-default-en"]'); - $this->assertTrue(isset($elements[0]) && !empty($elements[0]['checked']), t('English is the default language.')); + $this->assertFieldChecked('edit-site-default-en', t('English is the default language.')); // Change the default language. $edit = array( 'site_default' => $langcode, ); $this->drupalPost($path, $edit, t('Save configuration')); - $elements = $this->xpath('//input[@id="edit-site-default-en"]'); - $this->assertTrue(isset($elements[0]) && empty($elements[0]['checked']), t('Default language updated.')); + $this->assertNoFieldChecked('edit-site-default-en', t('Default language updated.')); $this->assertEqual($this->getUrl(), url('admin/international/language', array('absolute' => TRUE)), t('Correct page redirection.')); // Ensure we can't delete the default language. @@ -102,16 +99,14 @@ class LocaleConfigurationTest extends DrupalWebTestCase { 'enabled[en]' => FALSE, ); $this->drupalPost($path, $edit, t('Save configuration')); - $elements = $this->xpath('//input[@id="edit-enabled-en"]'); - $this->assertTrue(isset($elements[0]) && empty($elements[0]['checked']), t('Language disabled.')); + $this->assertNoFieldChecked('edit-enabled-en', t('Language disabled.')); // Set disabled language to be the default and ensure it is re-enabled. $edit = array( 'site_default' => 'en', ); $this->drupalPost($path, $edit, t('Save configuration')); - $elements = $this->xpath('//input[@id="edit-enabled-en"]'); - $this->assertTrue(isset($elements[0]) && !empty($elements[0]['checked']), t('Default language re-enabled.')); + $this->assertFieldChecked('edit-enabled-en', t('Default language re-enabled.')); // Ensure 'edit' link works. $this->clickLink(t('edit')); diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php index 6df78fbf2..4af15d36a 100644 --- a/modules/simpletest/drupal_web_test_case.php +++ b/modules/simpletest/drupal_web_test_case.php @@ -2361,6 +2361,36 @@ class DrupalWebTestCase extends DrupalTestCase { } /** + * Assert that a checkbox field in the current page is checked. + * + * @param $id + * Id of field to assert. + * @param $message + * Message to display. + * @return + * TRUE on pass, FALSE on fail. + */ + protected function assertFieldChecked($id, $message = '') { + $elements = $this->xpath('//input[@id="' . $id . '"]'); + return $this->assertTrue(isset($elements[0]) && !empty($elements[0]['checked']), $message ? $message : t('Checkbox field @id is checked.', array('@id' => $id)), t('Browser')); + } + + /** + * Assert that a checkbox field in the current page is not checked. + * + * @param $id + * Id of field to assert. + * @param $message + * Message to display. + * @return + * TRUE on pass, FALSE on fail. + */ + protected function assertNoFieldChecked($id, $message = '') { + $elements = $this->xpath('//input[@id="' . $id . '"]'); + return $this->assertTrue(isset($elements[0]) && empty($elements[0]['checked']), $message ? $message : t('Checkbox field @id is not checked.', array('@id' => $id)), t('Browser')); + } + + /** * Assert that a field exists with the given name or id. * * @param $field |