first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-09-30 18:11:26 -04:00
commit e592ca6823
27270 changed files with 5002257 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
@core_enrol @core_group
Feature: Users can be added to multiple groups at once
In order to manage group membership effectively
As a user
I need to add another user to multiple groups
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student1@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "groups" exist:
| name | course | idnumber |
| Group 1 | C1 | G1 |
| Group 2 | C1 | G2 |
| Group 3 | C1 | G3 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | editingteacher |
@javascript @skip_chrome_zerosize
Scenario: Adding a user to multiple groups
Given I log in as "teacher1"
And I am on "Course 1" course homepage
And I follow "Participants"
And I click on "Edit groups for \"Student 1\"" "link" in the "student1" "table_row"
And I open the autocomplete suggestions list in the "student1" "table_row"
And I click on "Group 1" item in the autocomplete list
And I click on "Group 2" item in the autocomplete list
And I press the escape key
And I click on "Save changes" "link" in the "student1" "table_row"
Then I should see "Group 1, Group 2"
+113
View File
@@ -0,0 +1,113 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Enrolment steps definitions.
*
* @package core_enrol
* @category test
* @copyright 2013 David Monllaó
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
require_once(__DIR__ . '/../../../lib/behat/behat_base.php');
use Behat\Gherkin\Node\TableNode as TableNode;
/**
* Steps definitions for general enrolment actions.
*
* @package core_enrol
* @category test
* @copyright 2013 David Monllaó
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class behat_enrol extends behat_base {
/**
* Add the specified enrolment method to the specified course filling the form with the provided data.
*
* @Given /^I add "(?P<enrolment_method_name_string>(?:[^"]|\\")*)" enrolment method in "(?P<course_identifier_string>(?:[^"]|\\")*)" with:$/
* @param string $enrolmethod The enrolment method being used
* @param string $courseidentifier The courseidentifier such as short name
* @param TableNode $table Enrolment details
*/
public function i_add_enrolment_method_for_with(string $enrolmethod, string $courseidentifier, TableNode $table): void {
$this->execute("behat_navigation::i_am_on_page_instance", [$courseidentifier, 'enrolment methods']);
// Select enrolment method.
$this->execute('behat_forms::i_select_from_the_singleselect',
array($this->escape($enrolmethod), get_string('addinstance', 'enrol'))
);
// Wait again, for page to reloaded.
$this->execute('behat_general::i_wait_to_be_redirected');
// Set form fields.
$this->execute("behat_forms::i_set_the_following_fields_to_these_values", $table);
// Ensure we get button in focus, before pressing button.
if ($this->running_javascript()) {
$this->execute('behat_general::i_press_named_key', ['', 'tab']);
}
// Save changes.
$this->execute("behat_forms::press_button", get_string('addinstance', 'enrol'));
}
/**
* Enrols the specified user in the current course without options.
*
* This is a simple step, to set enrolment options would be better to
* create a separate step as a TableNode will be required.
*
* @Given /^I enrol "(?P<user_fullname_string>(?:[^"]|\\")*)" user as "(?P<rolename_string>(?:[^"]|\\")*)"$/
* @param string $userfullname
* @param string $rolename
*/
public function i_enrol_user_as($userfullname, $rolename) {
// Navigate to enrolment page.
try {
$parentnodes = get_string('users', 'admin');
$this->execute("behat_navigation::i_navigate_to_in_current_page_administration",
array($parentnodes . ' > '. get_string('enrolledusers', 'enrol'))
);
} catch (Exception $e) {
$this->execute("behat_general::i_click_on", [get_string('participants'), 'link']);
}
$this->execute("behat_forms::press_button", get_string('enrolusers', 'enrol'));
if ($this->running_javascript()) {
$this->execute('behat_forms::i_set_the_field_to', array(get_string('assignrole', 'enrol_manual'), $rolename));
// We have a div here, not a tr.
$this->execute('behat_forms::i_set_the_field_to', array(get_string('selectusers', 'enrol_manual'), $userfullname));
$enrolusers = get_string('enrolusers', 'enrol_manual');
$this->execute('behat_general::i_click_on_in_the', [$enrolusers, 'button', $enrolusers, 'dialogue']);
} else {
$this->execute('behat_forms::i_set_the_field_to', array(get_string('assignrole', 'role'), $rolename));
$this->execute('behat_forms::i_set_the_field_to', array("addselect", $userfullname));
$this->execute("behat_forms::press_button", "add");
}
}
}
+26
View File
@@ -0,0 +1,26 @@
@enrol
Feature: User can be enrolled into a course
In order to let them participate in course activities
As an admin
I must be able to enrol users
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Studie | One | student1@example.com |
And the following "courses" exist:
| fullname | shortname |
| Course 001 | C001 |
And I log in as "admin"
And I am on "Course 001" course homepage
Scenario: User can be enrolled without javascript
When I enrol "Studie One" user as "Student"
And I am on the "Course 001" "Enrolled users" page
Then I should see "Studie One"
@javascript
Scenario: User can be enrolled with javascript enrol element
When I enrol "Studie One" user as "Student"
And I am on the "Course 001" "Enrolled users" page
Then I should see "Studie One"
+36
View File
@@ -0,0 +1,36 @@
@core @core_enrol
Feature: Test role visibility for the participants page
In order to control access
As an admin
I need to control which roles can see each other
Background: Add a bunch of users
Given the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "users" exist:
| username | firstname | lastname | email |
| learner1 | Learner | 1 | learner1@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
| manager1 | Manager | 1 | manager1@example.com |
And the following "course enrolments" exist:
| user | course | role |
| learner1 | C1 | student |
| teacher1 | C1 | editingteacher |
| manager1 | C1 | manager |
Scenario: Check the default roles are visible
Given I log in as "manager1"
And I am on the "Course 1" "enrolled users" page
Then "Learner 1" row "Roles" column of "participants" table should contain "Student"
And "Teacher 1" row "Roles" column of "participants" table should contain "Teacher"
And "Manager 1" row "Roles" column of "participants" table should contain "Manager"
And I should not see "No Roles" in the "table#participants" "css_element"
Scenario: Do not allow managers to view any roles but manager and check they are hidden
Given I log in as "teacher1"
And I am on the "Course 1" "enrolled users" page
Then "Learner 1" row "Roles" column of "participants" table should contain "Student"
And "Teacher 1" row "Roles" column of "participants" table should contain "Teacher"
And "Manager 1" row "Roles" column of "participants" table should not contain "Manager"
And "Manager 1" row "Roles" column of "participants" table should contain "No roles"