See Release Notes
Long Term Support Release
Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401]
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 "[page name]" page'. 90 * 91 * Recognised page names are: 92 * | Page name | Description | 93 * | Contact Site Support | The Contact Site Support page (user/contactsitesupport.php) | 94 * 95 * @param string $page name of the page, with the component name removed e.g. 'Admin notification'. 96 * @return moodle_url the corresponding URL. 97 * @throws Exception with a meaningful error message if the specified page cannot be found. 98 */ 99 protected function resolve_page_url(string $page): moodle_url { 100 101 switch (strtolower($page)) { 102 case 'contact site support': 103 return new moodle_url('/user/contactsitesupport.php'); 104 105 default: 106 throw new Exception("Unrecognised core_user page type '{$page}'."); 107 } 108 } 109 110 /** 111 * Convert page names to URLs for steps like 'When I am on the "[identifier]" "[page type]" page'. 112 * 113 * Recognised page names are: 114 * | Page Type | Identifier meaning | Description | 115 * | editing | username or email | User editing page (/user/editadvanced.php) | 116 * | profile | username or email | User profile page (/user/profile.php) | 117 * 118 * @param string $type identifies which type of page this is, e.g. 'Editing'. 119 * @param string $identifier identifies the user, e.g. 'student1'. 120 * @return moodle_url the corresponding URL. 121 * @throws Exception with a meaningful error message if the specified page cannot be found. 122 */ 123 protected function resolve_page_instance_url(string $type, string $identifier): moodle_url { 124 125 switch (strtolower($type)) { 126 case 'editing': 127 $userid = $this->get_user_id_by_identifier($identifier); 128 if (!$userid) { 129 throw new Exception('The specified user with username or email "' . 130 $identifier . '" does not exist'); 131 } 132 return new moodle_url('/user/editadvanced.php', ['id' => $userid]); 133 case 'profile': 134 $userid = $this->get_user_id_by_identifier($identifier); 135 if (!$userid) { 136 throw new Exception('The specified user with username or email "' . $identifier . '" does not exist'); 137 } 138 return new moodle_url('/user/profile.php', ['id' => $userid]); 139 default: 140 throw new Exception("Unrecognised page type '{$type}'."); 141 } 142 } 143 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body