summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/locale/locale.test13
-rw-r--r--modules/simpletest/drupal_web_test_case.php30
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