From 20e1bb12ba105af046fb103ce2c534b901a05a1f Mon Sep 17 00:00:00 2001 From: Angie Byron <webchick@24967.no-reply.drupal.org> Date: Mon, 3 Aug 2009 22:18:59 +0000 Subject: [PATCH] #339406 by dropcube and boombatower: Add an assertion to check if a checkbox is checked. --- modules/locale/locale.test | 13 +++------ 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 3138348a5dba..c7a6e4489b57 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 6df78fbf255e..4af15d36a955 100644 --- a/modules/simpletest/drupal_web_test_case.php +++ b/modules/simpletest/drupal_web_test_case.php @@ -2360,6 +2360,36 @@ protected function assertNoFieldById($id, $value = '', $message = '') { return $this->assertNoFieldByXPath($this->constructFieldXpath('id', $id), $value, $message ? $message : t('Did not find field by id @id', array('@id' => $id)), t('Browser')); } + /** + * 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. * -- GitLab