diff --git a/lib/behat/form_field/behat_form_field.php b/lib/behat/form_field/behat_form_field.php index 8ba838a3a44..19340b7d607 100644 --- a/lib/behat/form_field/behat_form_field.php +++ b/lib/behat/form_field/behat_form_field.php @@ -126,8 +126,7 @@ class behat_form_field { $classname = 'behat_form_checkbox'; break; case 'radio': - // Behaves the same way. - $classname = 'behat_form_checkbox'; + $classname = 'behat_form_radio'; break; default: return false; @@ -140,6 +139,7 @@ class behat_form_field { } $classpath = $CFG->dirroot . '/lib/behat/form_field/' . $classname . '.php'; + require_once($classpath); return new $classname($this->session, $this->field); } diff --git a/lib/behat/form_field/behat_form_radio.php b/lib/behat/form_field/behat_form_radio.php new file mode 100644 index 00000000000..445751ed7a6 --- /dev/null +++ b/lib/behat/form_field/behat_form_radio.php @@ -0,0 +1,59 @@ +. + +/** + * Radio input form element. + * + * @package core_form + * @category test + * @copyright 2013 David Monllaó + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. + +require_once(__DIR__ . '/behat_form_checkbox.php'); + +/** + * Radio input form field. + * + * Extends behat_form_checkbox as the set_value() behaviour + * is the same. + * + * This form field type can be added to forms as any other + * moodle form element, but it does not make sense without + * a group of radio inputs, so is hard to find it alone and + * detect it by behat_form_manager::get_field(), where is useful + * is when the default behat_form_field class is being used, it + * finds a input[type=radio] and it delegates set_value() and + * get_value() to behat_form_radio. + * + * @package core_form + * @category test + * @copyright 2013 David Monllaó + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class behat_form_radio extends behat_form_checkbox { + + /** + * Returns the radio input value attribute. + * + * @return string The value attribute + */ + public function get_value() { + return $this->field->getValue(); + } +}