1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Single checkbox form element. 19 * 20 * @package core_form 21 * @category test 22 * @copyright 2013 David MonllaĆ³ 23 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 24 */ 25 26 // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. 27 28 require_once (__DIR__ . '/behat_form_field.php'); 29 30 /** 31 * Checkbox form field. 32 * 33 * @package core_form 34 * @category test 35 * @copyright 2013 David MonllaĆ³ 36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 */ 38 class behat_form_checkbox extends behat_form_field { 39 40 /** 41 * Sets the value of a checkbox. 42 * 43 * Anything !empty() is considered checked. 44 * 45 * @param string $value 46 * @return void 47 */ 48 public function set_value($value) { 49 50 if (!empty($value) && !$this->field->isChecked()) { 51 52 if (!$this->running_javascript()) { 53 $this->field->check(); 54 return; 55 } 56 57 // Check it if it should be checked and it is not. 58 $this->field->click(); 59 60 } else if (empty($value) && $this->field->isChecked()) { 61 62 if (!$this->running_javascript()) { 63 $this->field->uncheck(); 64 return; 65 } 66 67 // Uncheck if it is checked and shouldn't. 68 $this->field->click(); 69 } 70 } 71 72 /** 73 * Returns whether the field is checked or not. 74 * 75 * @return bool True if it is checked and false if it's not. 76 */ 77 public function get_value() { 78 return $this->field->isChecked(); 79 } 80 81 /** 82 * Is it enabled? 83 * 84 * @param string $expectedvalue Anything !empty() is considered checked. 85 * @return bool 86 */ 87 public function matches($expectedvalue = false) { 88 89 $ischecked = $this->field->isChecked(); 90 91 // Any non-empty value provided means that it should be checked. 92 if (!empty($expectedvalue) && $ischecked) { 93 return true; 94 } else if (empty($expectedvalue) && !$ischecked) { 95 return true; 96 } 97 98 return false; 99 } 100 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body