mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 08:55:15 +02:00
Merge branch 'MDL-42276_master' of https://github.com/markn86/moodle
This commit is contained in:
commit
b6168f132b
@ -58,3 +58,36 @@ Feature: Organize students into groups
|
||||
And I should see "Student 2"
|
||||
And I should see "Student 3"
|
||||
And I should not see "Student 0"
|
||||
|
||||
@javascript
|
||||
Scenario: Create groups and groupings without the 'moodle/course:changeidnumber' capability
|
||||
Given the following "courses" exists:
|
||||
| fullname | shortname | category | groupmode |
|
||||
| Course 1 | C1 | 0 | 1 |
|
||||
And the following "users" exists:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@asd.com |
|
||||
And the following "course enrolments" exists:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
And I log in as "admin"
|
||||
And I set the following system permissions of "Teacher" role:
|
||||
| moodle/course:changeidnumber | Prevent |
|
||||
And I log out
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Groups"
|
||||
When I press "Create group"
|
||||
Then the "idnumber" "field" should be readonly
|
||||
And I fill the moodle form with:
|
||||
| Group name | The greatest group that never existed |
|
||||
And I press "Save changes"
|
||||
And I should see "The greatest group that never existed"
|
||||
And I follow "Groupings"
|
||||
And I press "Create grouping"
|
||||
And the "idnumber" "field" should be readonly
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Not the greatest grouping, but it's ok! |
|
||||
And I press "Save changes"
|
||||
And I should see "Not the greatest grouping, but it's ok!"
|
||||
|
81
group/tests/behat/delete_groups.feature
Normal file
81
group/tests/behat/delete_groups.feature
Normal file
@ -0,0 +1,81 @@
|
||||
@core @core_group
|
||||
Feature: Automatic deletion of groups and groupings
|
||||
In order to check the expected results occur when deleting groups and groupings in different scenarios
|
||||
As a teacher
|
||||
I need to create groups and groupings under different scenarios and check that the expected result occurs when attempting to delete them.
|
||||
|
||||
Background:
|
||||
Given the following "courses" exists:
|
||||
| fullname | shortname | format |
|
||||
| Course 1 | C1 | topics |
|
||||
And the following "users" exists:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@asd.com |
|
||||
And the following "course enrolments" exists:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Groups"
|
||||
And I press "Create group"
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (without ID) |
|
||||
And I press "Save changes"
|
||||
And I press "Create group"
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (with ID) |
|
||||
| Group ID number | An ID |
|
||||
And I press "Save changes"
|
||||
And I follow "Groupings"
|
||||
And I press "Create grouping"
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (without ID) |
|
||||
And I press "Save changes"
|
||||
And I press "Create grouping"
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (with ID) |
|
||||
| Grouping ID number | An ID |
|
||||
And I press "Save changes"
|
||||
And I follow "Groups"
|
||||
|
||||
@javascript
|
||||
Scenario: Delete groups and groupings with and without ID numbers
|
||||
Given I select "Group (without ID) (0)" from "groups"
|
||||
And I press "Delete selected group"
|
||||
And I press "Yes"
|
||||
Then the "groups" select box should not contain "Group (without ID) (0)"
|
||||
And I select "Group (with ID) (0)" from "groups"
|
||||
And I press "Delete selected group"
|
||||
And I press "Yes"
|
||||
And the "groups" select box should not contain "Group (with ID) (0)"
|
||||
And I follow "Groupings"
|
||||
And I click on "Delete" "link" in the "Grouping (without ID)" "table_row"
|
||||
And I press "Yes"
|
||||
And I should not see "Grouping (without ID)"
|
||||
And I click on "Delete" "link" in the "Grouping (with ID)" "table_row"
|
||||
And I press "Yes"
|
||||
And I should not see "Grouping (with ID)"
|
||||
|
||||
@javascript
|
||||
Scenario: Delete groups and groupings with and without ID numbers without the 'moodle/course:changeidnumber' capability
|
||||
Given I log out
|
||||
And I log in as "admin"
|
||||
And I set the following system permissions of "Teacher" role:
|
||||
| moodle/course:changeidnumber | Prevent |
|
||||
And I log out
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Groups"
|
||||
When I select "Group (with ID) (0)" from "groups"
|
||||
Then the "Delete selected group" "button" should be disabled
|
||||
And I select "Group (without ID) (0)" from "groups"
|
||||
And I press "Delete selected group"
|
||||
And I press "Yes"
|
||||
And I should not see "Group (without ID)"
|
||||
And I follow "Groupings"
|
||||
And "Delete" "link" should not exist in the "Grouping (with ID)" "table_row"
|
||||
And I click on "Delete" "link" in the "Grouping (without ID)" "table_row"
|
||||
And I press "Yes"
|
||||
And I should not see "Grouping (without ID)"
|
102
group/tests/behat/update_groups.feature
Normal file
102
group/tests/behat/update_groups.feature
Normal file
@ -0,0 +1,102 @@
|
||||
@core @core_group
|
||||
Feature: Automatic updating of groups and groupings
|
||||
In order to check the expected results occur when updating groups and groupings in different scenarios
|
||||
As a teacher
|
||||
I need to create groups and groupings under different scenarios and check that the expected result occurs when attempting to update them.
|
||||
|
||||
Background:
|
||||
Given the following "courses" exists:
|
||||
| fullname | shortname | format |
|
||||
| Course 1 | C1 | topics |
|
||||
And the following "users" exists:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@asd.com |
|
||||
And the following "course enrolments" exists:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Groups"
|
||||
And I press "Create group"
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (without ID) |
|
||||
And I press "Save changes"
|
||||
And I press "Create group"
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (with ID) |
|
||||
| Group ID number | An ID |
|
||||
And I press "Save changes"
|
||||
And I follow "Groupings"
|
||||
And I press "Create grouping"
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (without ID) |
|
||||
And I press "Save changes"
|
||||
And I press "Create grouping"
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (with ID) |
|
||||
| Grouping ID number | An ID |
|
||||
And I press "Save changes"
|
||||
And I follow "Groups"
|
||||
|
||||
@javascript
|
||||
Scenario: Update groups and groupings with ID numbers
|
||||
Given I select "Group (with ID)" from "groups"
|
||||
And I press "Edit group settings"
|
||||
And the "idnumber" field should match "An ID" value
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (with ID) (updated) |
|
||||
| Group ID number | An ID (updated) |
|
||||
When I press "Save changes"
|
||||
Then I should see "Group (with ID) (updated)"
|
||||
And I select "Group (with ID) (updated)" from "groups"
|
||||
And I press "Edit group settings"
|
||||
And the "idnumber" field should match "An ID (updated)" value
|
||||
And I press "Save changes"
|
||||
And I follow "Groupings"
|
||||
And I click on "Edit" "link" in the "Grouping (with ID)" "table_row"
|
||||
And the "idnumber" field should match "An ID" value
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (with ID) (updated) |
|
||||
| Grouping ID number | An ID (updated) |
|
||||
And I press "Save changes"
|
||||
And I should see "Grouping (with ID) (updated)"
|
||||
And I click on "Edit" "link" in the "Grouping (with ID) (updated)" "table_row"
|
||||
And the "idnumber" field should match "An ID (updated)" value
|
||||
|
||||
@javascript
|
||||
Scenario: Update groups and groupings with ID numbers without the 'moodle/course:changeidnumber' capability
|
||||
Given I log out
|
||||
And I log in as "admin"
|
||||
And I set the following system permissions of "Teacher" role:
|
||||
| moodle/course:changeidnumber | Prevent |
|
||||
And I log out
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I expand "Users" node
|
||||
And I follow "Groups"
|
||||
And I select "Group (with ID)" from "groups"
|
||||
When I press "Edit group settings"
|
||||
Then the "idnumber" "field" should be readonly
|
||||
And the "idnumber" field should match "An ID" value
|
||||
And I fill the moodle form with:
|
||||
| Group name | Group (with ID) (updated) |
|
||||
And I press "Save changes"
|
||||
And I should see "Group (with ID) (updated)"
|
||||
And I select "Group (with ID) (updated)" from "groups"
|
||||
And I press "Edit group settings"
|
||||
And the "idnumber" "field" should be readonly
|
||||
And the "idnumber" field should match "An ID" value
|
||||
And I press "Save changes"
|
||||
And I follow "Groupings"
|
||||
And I click on "Edit" "link" in the "Grouping (with ID)" "table_row"
|
||||
And the "idnumber" "field" should be readonly
|
||||
And the "idnumber" field should match "An ID" value
|
||||
And I fill the moodle form with:
|
||||
| Grouping name | Grouping (with ID) (updated) |
|
||||
And I press "Save changes"
|
||||
And I should see "Grouping (with ID) (updated)"
|
||||
And I click on "Edit" "link" in the "Grouping (with ID) (updated)" "table_row"
|
||||
And the "idnumber" "field" should be readonly
|
||||
And the "idnumber" field should match "An ID" value
|
||||
|
@ -602,6 +602,40 @@ class behat_general extends behat_base {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the provided element and selector type are readonly on the current page.
|
||||
*
|
||||
* @Then /^the "(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should be readonly$/
|
||||
* @throws ExpectationException Thrown by behat_base::find
|
||||
* @param string $element Element we look in
|
||||
* @param string $selectortype The type of element where we are looking in.
|
||||
*/
|
||||
public function the_element_should_be_readonly($element, $selectortype) {
|
||||
// Transforming from steps definitions selector/locator format to Mink format and getting the NodeElement.
|
||||
$node = $this->get_selected_node($selectortype, $element);
|
||||
|
||||
if (!$node->hasAttribute('readonly')) {
|
||||
throw new ExpectationException('The element "' . $element . '" is not readonly', $this->getSession());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the provided element and selector type are not readonly on the current page.
|
||||
*
|
||||
* @Then /^the "(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should not be readonly$/
|
||||
* @throws ExpectationException Thrown by behat_base::find
|
||||
* @param string $element Element we look in
|
||||
* @param string $selectortype The type of element where we are looking in.
|
||||
*/
|
||||
public function the_element_should_not_be_readonly($element, $selectortype) {
|
||||
// Transforming from steps definitions selector/locator format to Mink format and getting the NodeElement.
|
||||
$node = $this->get_selected_node($selectortype, $element);
|
||||
|
||||
if ($node->hasAttribute('readonly')) {
|
||||
throw new ExpectationException('The element "' . $element . '" is readonly', $this->getSession());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the provided element and selector type exists in the current page.
|
||||
*
|
||||
@ -651,4 +685,52 @@ class behat_general extends behat_base {
|
||||
$this->getSession()->visit($this->locate_path('/admin/cron.php'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that an element and selector type exists in another element and selector type on the current page.
|
||||
*
|
||||
* This step is for advanced users, use it if you don't find anything else suitable for what you need.
|
||||
*
|
||||
* @Then /^"(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should exist in the "(?P<element2_string>(?:[^"]|\\")*)" "(?P<selector2_string>[^"]*)"$/
|
||||
* @throws ElementNotFoundException Thrown by behat_base::find
|
||||
* @param string $element The locator of the specified selector
|
||||
* @param string $selectortype The selector type
|
||||
* @param string $containerelement The container selector type
|
||||
* @param string $containerselectortype The container locator
|
||||
*/
|
||||
public function should_exist_in_the($element, $selectortype, $containerelement, $containerselectortype) {
|
||||
// Get the container node.
|
||||
$containernode = $this->get_selected_node($containerselectortype, $containerelement);
|
||||
|
||||
list($selector, $locator) = $this->transform_selector($selectortype, $element);
|
||||
|
||||
// Specific exception giving info about where can't we find the element.
|
||||
$locatorexceptionmsg = $element . '" in the "' . $containerelement. '" "' . $containerselectortype. '"';
|
||||
$exception = new ElementNotFoundException($this->getSession(), $selectortype, null, $locatorexceptionmsg);
|
||||
|
||||
// Looks for the requested node inside the container node.
|
||||
$this->find($selector, $locator, $exception, $containernode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that an element and selector type does not exist in another element and selector type on the current page.
|
||||
*
|
||||
* This step is for advanced users, use it if you don't find anything else suitable for what you need.
|
||||
*
|
||||
* @Then /^"(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should not exist in the "(?P<element2_string>(?:[^"]|\\")*)" "(?P<selector2_string>[^"]*)"$/
|
||||
* @throws ExpectationException
|
||||
* @param string $element The locator of the specified selector
|
||||
* @param string $selectortype The selector type
|
||||
* @param string $containerelement The container selector type
|
||||
* @param string $containerselectortype The container locator
|
||||
*/
|
||||
public function should_not_exist_in_the($element, $selectortype, $containerelement, $containerselectortype) {
|
||||
try {
|
||||
$this->should_exist_in_the($element, $selectortype, $containerelement, $containerselectortype);
|
||||
throw new ExpectationException('The "' . $element . '" "' . $selectortype . '" exists in the "' .
|
||||
$containerelement . '" "' . $containerselectortype . '"', $this->getSession());
|
||||
} catch (ElementNotFoundException $e) {
|
||||
// It passes.
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user