4642d4d5f36edef4c3e5e83fe281c0d6103eaf51
[moodle.git] / group / tests / behat / create_groups.feature
1 @core @core_group
2 Feature: Organize students into groups
3   In order to organize course activities in groups
4   As a teacher
5   I need to group students
7   @javascript
8   Scenario: Assign students to groups
9     Given the following "courses" exist:
10       | fullname | shortname | category | groupmode |
11       | Course 1 | C1 | 0 | 1 |
12     And the following "users" exist:
13       | username | firstname | lastname | email |
14       | teacher1 | Teacher | 1 | teacher1@example.com |
15       | student0 | Student | 0 | student0@example.com |
16       | student1 | Student | 1 | student1@example.com |
17       | student2 | Student | 2 | student2@example.com |
18       | student3 | Student | 3 | student3@example.com |
19     And the following "course enrolments" exist:
20       | user | course | role |
21       | teacher1 | C1 | editingteacher |
22       | student0 | C1 | student |
23       | student1 | C1 | student |
24       | student2 | C1 | student |
25       | student3 | C1 | student |
26     And I log in as "teacher1"
27     And I am on "Course 1" course homepage
28     And I navigate to "Users > Groups" in current page administration
29     And I press "Create group"
30     And I set the following fields to these values:
31       | Group name | Group 1 |
32     And I press "Save changes"
33     And I press "Create group"
34     And I set the following fields to these values:
35       | Group name | Group 2 |
36     And I press "Save changes"
37     When I add "Student 0 (student0@example.com)" user to "Group 1" group members
38     And I add "Student 1 (student1@example.com)" user to "Group 1" group members
39     And I add "Student 2 (student2@example.com)" user to "Group 2" group members
40     And I add "Student 3 (student3@example.com)" user to "Group 2" group members
41     Then I set the field "groups" to "Group 1 (2)"
42     And the "members" select box should contain "Student 0"
43     And the "members" select box should contain "Student 1"
44     And the "members" select box should not contain "Student 2"
45     And I set the field "groups" to "Group 2 (2)"
46     And the "members" select box should contain "Student 2"
47     And the "members" select box should contain "Student 3"
48     And the "members" select box should not contain "Student 0"
49     And I navigate to course participants
50     And I set the field "Separate groups" to "Group 1"
51     And I should see "Student 0"
52     And I should see "Student 1"
53     And I should not see "Student 2"
54     And I set the field "Separate groups" to "Group 2"
55     And I should see "Student 2"
56     And I should see "Student 3"
57     And I should not see "Student 0"
59   Scenario: Create groups and groupings without the 'moodle/course:changeidnumber' capability
60     Given the following "courses" exist:
61       | fullname | shortname | category | groupmode |
62       | Course 1 | C1 | 0 | 1 |
63     And the following "users" exist:
64       | username | firstname | lastname | email |
65       | teacher1 | Teacher | 1 | teacher1@example.com |
66     And the following "course enrolments" exist:
67       | user | course | role |
68       | teacher1 | C1 | editingteacher |
69     And I log in as "admin"
70     And I set the following system permissions of "Teacher" role:
71       | moodle/course:changeidnumber | Prevent |
72     And I log out
73     And I log in as "teacher1"
74     And I am on "Course 1" course homepage
75     And I navigate to "Users > Groups" in current page administration
76     When I press "Create group"
77     Then the "idnumber" "field" should be readonly
78     And I set the following fields to these values:
79       | Group name | The greatest group that never existed |
80     And I press "Save changes"
81     And I should see "The greatest group that never existed"
82     And I follow "Groupings"
83     And I press "Create grouping"
84     And the "idnumber" "field" should be readonly
85     And I set the following fields to these values:
86       | Grouping name | Not the greatest grouping, but it's ok! |
87     And I press "Save changes"
88     And I should see "Not the greatest grouping, but it's ok!"
90   Scenario: Create groups with enrolment key
91     Given the following "courses" exist:
92       | fullname | shortname | category | groupmode |
93       | Course 1 | C1 | 0 | 1 |
94       | Course 2 | C2 | 0 | 1 |
95     And I log in as "admin"
96     And I am on "Course 1" course homepage
97     And I navigate to "Users > Groups" in current page administration
98     When I press "Create group"
99     And I set the following fields to these values:
100       | Group name | Group A |
101       | Enrolment key | badpasswd |
102     And I press "Save changes"
103     And I should see "Passwords must have at least 1 digit(s)"
104     And I set the following fields to these values:
105       | Group name | Group A |
106       | Enrolment key | Abcdef-1 |
107     And I press "Save changes"
108     And I press "Create group"
109     And I set the following fields to these values:
110       | Group name | Group B |
111       | Enrolment key | Abcdef-1 |
112     And I press "Save changes"
113     Then I should see "This enrolment key is already used for another group."
114     And I set the following fields to these values:
115       | Enrolment key | Abcdef-2 |
116     And I press "Save changes"
117     And the "groups" select box should contain "Group B (0)"
118     And I am on "Course 2" course homepage
119     And I navigate to "Users > Groups" in current page administration
120     And I press "Create group"
121     And I set the following fields to these values:
122       | Group name | Group A |
123       | Enrolment key | Abcdef-1 |
124     And I should not see "This enrolment key is already used for another group."