[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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 // Trigger the onchange event as triggered when 'checking' the checkbox. 61 $this->trigger_on_change(); 62 63 } else if (empty($value) && $this->field->isChecked()) { 64 65 if (!$this->running_javascript()) { 66 $this->field->uncheck(); 67 return; 68 } 69 70 // Uncheck if it is checked and shouldn't. 71 $this->field->click(); 72 73 // Trigger the onchange event as triggered when 'checking' the checkbox. 74 $this->trigger_on_change(); 75 } 76 } 77 78 /** 79 * Returns whether the field is checked or not. 80 * 81 * @return bool True if it is checked and false if it's not. 82 */ 83 public function get_value() { 84 return $this->field->isChecked(); 85 } 86 87 /** 88 * Is it enabled? 89 * 90 * @param string $expectedvalue Anything !empty() is considered checked. 91 * @return bool 92 */ 93 public function matches($expectedvalue = false) { 94 95 $ischecked = $this->field->isChecked(); 96 97 // Any non-empty value provided means that it should be checked. 98 if (!empty($expectedvalue) && $ischecked) { 99 return true; 100 } else if (empty($expectedvalue) && !$ischecked) { 101 return true; 102 } 103 104 return false; 105 } 106 107 /** 108 * Trigger on change event. 109 */ 110 protected function trigger_on_change() { 111 $this->session->getDriver()->triggerSynScript( 112 $this->field->getXPath(), 113 "Syn.trigger('change', {}, {{ELEMENT}})" 114 ); 115 } 116 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |