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 // NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php. 18 19 require_once (__DIR__ . '/behat_form_select.php'); 20 21 /** 22 * Custom interaction with inplace editable elements of type select 23 * 24 * @package core_form 25 * @copyright 2021 Paul Holden <paulh@moodle.com> 26 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 27 */ 28 class behat_form_inplaceeditable_select extends behat_form_select { 29 30 /** 31 * Sets the value to a field 32 * 33 * @param string $value 34 */ 35 public function set_value($value): void { 36 // Require JS to run this step. 37 self::require_javascript(); 38 39 // Enable editing. 40 self::execute('behat_general::i_click_on_in_the', [ 41 '[data-inplaceeditablelink]', 42 'css_element', 43 $this->field, 44 'NodeElement', 45 ]); 46 47 // After editing is enabled, set the select field value. 48 $select = $this->field->find('css', 'select'); 49 $select->selectOption($value); 50 } 51 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body