Differences Between: [Versions 310 and 400] [Versions 311 and 400] [Versions 39 and 400] [Versions 400 and 401] [Versions 400 and 402] [Versions 400 and 403]
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 * User steps definition. 19 * 20 * @package core_user 21 * @category test 22 * @copyright 2017 Damyon Wiese 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__ . '/../../../lib/behat/behat_base.php'); 29 30 use Behat\Mink\Exception\ExpectationException as ExpectationException; 31 32 /** 33 * Steps definitions for users. 34 * 35 * @package core_user 36 * @category test 37 * @copyright 2017 Damyon Wiese 38 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 39 */ 40 class behat_user extends behat_base { 41 42 /** 43 * Choose from the bulk action menu. 44 * 45 * @Given /^I choose "(?P<nodetext_string>(?:[^"]|\\")*)" from the participants page bulk action menu$/ 46 * @param string $nodetext The menu item to select. 47 */ 48 public function i_choose_from_the_participants_page_bulk_action_menu($nodetext) { 49 $this->execute("behat_forms::i_set_the_field_to", [ 50 "With selected users...", 51 $this->escape($nodetext) 52 ]); 53 } 54 55 /** 56 * The input field should have autocomplete set to this value. 57 * 58 * @Then /^the field "(?P<field_string>(?:[^"]|\\")*)" should have purpose "(?P<purpose_string>(?:[^"]|\\")*)"$/ 59 * @param string $field The field to select. 60 * @param string $purpose The expected purpose. 61 */ 62 public function the_field_should_have_purpose($field, $purpose) { 63 $fld = behat_field_manager::get_form_field_from_label($field, $this); 64 65 $value = $fld->get_attribute('autocomplete'); 66 if ($value != $purpose) { 67 $reason = 'The "' . $field . '" field does not have purpose "' . $purpose . '"'; 68 throw new ExpectationException($reason, $this->getSession()); 69 } 70 } 71 72 /** 73 * The input field should not have autocomplete set to this value. 74 * 75 * @Then /^the field "(?P<field_string>(?:[^"]|\\")*)" should not have purpose "(?P<purpose_string>(?:[^"]|\\")*)"$/ 76 * @param string $field The field to select. 77 * @param string $purpose The expected purpose we do not want. 78 */ 79 public function the_field_should_not_have_purpose($field, $purpose) { 80 $fld = behat_field_manager::get_form_field_from_label($field, $this); 81 82 $value = $fld->get_attribute('autocomplete'); 83 if ($value == $purpose) { 84 throw new ExpectationException('The "' . $field . '" field does have purpose "' . $purpose . '"', $this->getSession()); 85 } 86 } 87 88 /** 89 * Convert page names to URLs for steps like 'When I am on the "[identifier]" "[page type]" page'. 90 * 91 * Recognised page names are: 92 * | Page Type | Identifier meaning | Description | 93 * | editing | username or email | User editing page (/user/editadvanced.php) | 94 * | profile | username or email | User profile page (/user/profile.php) | 95 * 96 * @param string $type identifies which type of page this is, e.g. 'Editing'. 97 * @param string $identifier identifies the user, e.g. 'student1'. 98 * @return moodle_url the corresponding URL. 99 * @throws Exception with a meaningful error message if the specified page cannot be found. 100 */ 101 protected function resolve_page_instance_url(string $type, string $identifier): moodle_url { 102 103 switch (strtolower($type)) { 104 case 'editing': 105 $userid = $this->get_user_id_by_identifier($identifier); 106 if (!$userid) { 107 throw new Exception('The specified user with username or email "' . 108 $identifier . '" does not exist'); 109 } 110 return new moodle_url('/user/editadvanced.php', ['id' => $userid]); 111 case 'profile': 112 $userid = $this->get_user_id_by_identifier($identifier); 113 if (!$userid) { 114 throw new Exception('The specified user with username or email "' . $identifier . '" does not exist'); 115 } 116 return new moodle_url('/user/profile.php', ['id' => $userid]); 117 default: 118 throw new Exception("Unrecognised page type '{$type}'."); 119 } 120 } 121 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body