mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 00:42:54 +02:00
Merge branch 'MDL-38619_master' of git://github.com/dmonllao/moodle
This commit is contained in:
commit
57902e2738
62
cohort/tests/behat/add_cohort.feature
Normal file
62
cohort/tests/behat/add_cohort.feature
Normal file
@ -0,0 +1,62 @@
|
||||
@admin @cohorts
|
||||
Feature: Add cohorts of users
|
||||
In order to create site-wide groups
|
||||
As a moodle admin
|
||||
I need to create cohorts and add users on them
|
||||
|
||||
Background:
|
||||
Given the following "users" exists:
|
||||
| username | firstname | lastname | email |
|
||||
| user1 | First | User | first@user.com |
|
||||
| user2 | Second | User | second@user.com |
|
||||
| user3 | Third | User | third@user.com |
|
||||
| user4 | Forth | User | forth@user.com |
|
||||
And I log in as "admin"
|
||||
And I expand "Front page settings" node
|
||||
And I expand "Site administration" node
|
||||
And I expand "Users" node
|
||||
And I expand "Accounts" node
|
||||
And I follow "Cohorts"
|
||||
And I press "Add"
|
||||
And I fill the moodle form with:
|
||||
| Name | Test cohort name |
|
||||
| Context | System |
|
||||
| Cohort ID | 333 |
|
||||
| Description | Test cohort description |
|
||||
And I press "Save changes"
|
||||
|
||||
@javascript
|
||||
Scenario: Add a cohort
|
||||
When I follow "Cohorts"
|
||||
Then I should see "Test cohort name"
|
||||
And I should see "333"
|
||||
And I should see "Test cohort description"
|
||||
And I should see "Created manually"
|
||||
|
||||
@javascript
|
||||
Scenario: Add users to a cohort selecting them from the system users list
|
||||
When I add "user1" user to "333" cohort
|
||||
And I add "user2" user to "333" cohort
|
||||
Then I should see "2" in the "#cohorts" "css_element"
|
||||
And I follow "Assign"
|
||||
And the "Current users" select box should contain "First User (first@user.com)"
|
||||
And the "Current users" select box should contain "Second User (second@user.com)"
|
||||
And the "Current users" select box should not contain "Forth User (forth@user.com)"
|
||||
|
||||
@javascript
|
||||
Scenario: Add users to a cohort uploading a users file
|
||||
When I follow "Bulk user actions"
|
||||
And I select "Third User" from "Available"
|
||||
And I press "Add to selection"
|
||||
And I select "Forth User" from "Available"
|
||||
And I press "Add to selection"
|
||||
And I select "Add to cohort" from "id_action"
|
||||
And I press "Go"
|
||||
And I select "Test cohort name [333]" from "Cohort"
|
||||
And I press "Add to cohort"
|
||||
And I follow "Cohorts"
|
||||
Then I should see "2" in the "#cohorts" "css_element"
|
||||
And I follow "Assign"
|
||||
And the "Current users" select box should contain "Third User (third@user.com)"
|
||||
And the "Current users" select box should contain "Forth User (forth@user.com)"
|
||||
And the "Current users" select box should not contain "First User (first@user.com)"
|
80
cohort/tests/behat/behat_cohort.php
Normal file
80
cohort/tests/behat/behat_cohort.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?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/>.
|
||||
|
||||
/**
|
||||
* Cohorts steps definitions.
|
||||
*
|
||||
* @package core
|
||||
* @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\Behat\Context\Step\Given as Given;
|
||||
|
||||
/**
|
||||
* Steps definitions for cohort actions.
|
||||
*
|
||||
* @package core
|
||||
* @category test
|
||||
* @copyright 2013 David Monllaó
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class behat_cohort extends behat_base {
|
||||
|
||||
/**
|
||||
* Adds the user to the specified cohort.
|
||||
*
|
||||
* @Given /^I add "(?P<user_username_string>(?:[^"]|\\")*)" user to "(?P<cohort_idnumber_string>(?:[^"]|\\")*)" cohort$/
|
||||
* @param string $username
|
||||
* @param string $cohortidnumber
|
||||
*/
|
||||
public function i_add_user_to_cohort($username, $cohortidnumber) {
|
||||
global $DB;
|
||||
|
||||
// The user was created by the data generator, executed by the same PHP process that is
|
||||
// running this step, not by any Selenium action.
|
||||
$userid = $DB->get_field('user', 'id', array('username' => $username));
|
||||
|
||||
$steps = array(
|
||||
new Given('I click on "Assign" "link" in the "//table[@id=\'cohorts\']//tr[contains(., \'' . $cohortidnumber . '\')]" "xpath_element"'),
|
||||
new Given('I select "' . $userid . '" from "Potential users"'),
|
||||
new Given('I press "Add"'),
|
||||
new Given('I press "Back to cohorts"')
|
||||
);
|
||||
|
||||
// If we are not in the cohorts management we should move there before anything else.
|
||||
if (!$this->getSession()->getPage()->find('css', 'input#cohort_search_q')) {
|
||||
$steps = array_merge(
|
||||
array(
|
||||
new Given('I am on homepage'),
|
||||
new Given('I expand "Front page settings" node'),
|
||||
new Given('I expand "Site administration" node'),
|
||||
new Given('I expand "Users" node'),
|
||||
new Given('I expand "Accounts" node'),
|
||||
new Given('I follow "Cohorts"')
|
||||
),
|
||||
$steps
|
||||
);
|
||||
}
|
||||
|
||||
return $steps;
|
||||
}
|
||||
}
|
55
cohort/tests/behat/upload_cohort_users.feature
Normal file
55
cohort/tests/behat/upload_cohort_users.feature
Normal file
@ -0,0 +1,55 @@
|
||||
@admin @cohorts
|
||||
Feature: Upload users to a cohort
|
||||
In order to quickly fill site-wide groups with users
|
||||
As a moodle admin
|
||||
I need to upload a file with users data containing cohort assigns
|
||||
|
||||
@javascript
|
||||
Scenario: Upload users and assign them to a course with cohort enrolment method enabled
|
||||
Given the following "cohorts" exists:
|
||||
| name | idnumber |
|
||||
| Cohort 1 | ASD |
|
||||
| Cohort 2 | DSA |
|
||||
And the following "courses" exists:
|
||||
| fullname | shortname | category |
|
||||
| Course 1 | C1 | 0 |
|
||||
| Course 2 | C2 | 0 |
|
||||
And I log in as "admin"
|
||||
And I follow "Course 1"
|
||||
And I add "Cohort sync" enrolment method with:
|
||||
| Cohort | Cohort 1 |
|
||||
And I am on homepage
|
||||
And I follow "Course 2"
|
||||
And I add "Cohort sync" enrolment method with:
|
||||
| Cohort | Cohort 2 |
|
||||
And I expand "Course administration" node
|
||||
And I expand "Site administration" node
|
||||
And I expand "Users" node
|
||||
And I expand "Accounts" node
|
||||
When I follow "Upload users"
|
||||
And I upload "lib/tests/fixtures/upload_users_cohorts.csv" file to "File" filepicker
|
||||
And I press "Upload users"
|
||||
And I press "Upload users"
|
||||
And I press "Continue"
|
||||
And I follow "Cohorts"
|
||||
And I click on "Assign" "link" in the "//table[@id='cohorts']//tr[contains(., 'Cohort 1')]" "xpath_element"
|
||||
Then the "Current users" select box should contain "Tom Jones (tomjones@example.com)"
|
||||
And the "Current users" select box should contain "Bob Jones (bobjones@example.com)"
|
||||
And I press "Back to cohorts"
|
||||
And I click on "Assign" "link" in the "//table[@id='cohorts']//tr[contains(., 'Cohort 2')]" "xpath_element"
|
||||
And the "Current users" select box should contain "Mary Smith (marysmith@example.com)"
|
||||
And the "Current users" select box should contain "Alice Smith (alicesmith@example.com)"
|
||||
And I am on homepage
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Enrolled users"
|
||||
And I should see "Tom Jones"
|
||||
And I should see "Bob Jones"
|
||||
And I should not see "Mary Smith"
|
||||
And I am on homepage
|
||||
And I follow "Course 2"
|
||||
And I expand "Users" node
|
||||
And I follow "Enrolled users"
|
||||
And I should see "Mary Smith"
|
||||
And I should see "Alice Smith"
|
||||
And I should not see "Tom Jones"
|
61
enrol/tests/behat/behat_enrol.php
Normal file
61
enrol/tests/behat/behat_enrol.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?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\Behat\Context\Step\Given as Given,
|
||||
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 {
|
||||
|
||||
/**
|
||||
* Adds the specified enrolment method to the current course filling the form with the provided data.
|
||||
*
|
||||
* @Given /^I add "(?P<enrolment_method_name_string>(?:[^"]|\\")*)" enrolment method with:$/
|
||||
* @param string $enrolmethod
|
||||
* @param TableNode $table
|
||||
*/
|
||||
public function i_add_enrolment_method_with($enrolmethod, TableNode $table) {
|
||||
|
||||
return array(
|
||||
new Given('I expand "Users" node'),
|
||||
new Given('I follow "Enrolment methods"'),
|
||||
new Given('I select "' . $enrolmethod . '" from "Add method"'),
|
||||
new Given('I fill the moodle form with:', $table),
|
||||
new Given('I press "Add method"')
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@ -102,6 +102,10 @@ class behat_data_generators extends behat_base {
|
||||
'datagenerator' => 'grouping_group',
|
||||
'required' => array('grouping', 'group'),
|
||||
'switchids' => array('grouping' => 'groupingid', 'group' => 'groupid')
|
||||
),
|
||||
'cohorts' => array(
|
||||
'datagenerator' => 'cohort',
|
||||
'required' => array('idnumber')
|
||||
)
|
||||
);
|
||||
|
||||
|
5
lib/tests/fixtures/upload_users_cohorts.csv
vendored
Normal file
5
lib/tests/fixtures/upload_users_cohorts.csv
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
username,password,firstname,lastname,email,cohort1
|
||||
tomjones,Pass1234*,Tom,Jones,tomjones@example.com,ASD
|
||||
marysmith,Pass1234*,Mary,Smith,marysmith@example.com,DSA
|
||||
bobjones,Pass1234*,Bob,Jones,bobjones@example.com,ASD
|
||||
alicesmith,Pass1234*,Alice,Smith,alicesmith@example.com,DSA
|
|
Loading…
x
Reference in New Issue
Block a user