MDL-42492 course: Show option to move category to top level
[moodle.git] / course / tests / behat / category_management.feature
1 @core @core_course
2 Feature: Test category management actions
3   As a moodle admin
4   Test we can create a category
5   Test we can create a sub category
6   Test we can edit a category
7   Test we can delete a category
8   Test we can move a category
9   Test we can assign roles within a category
10   Test we can set permissions on a category
11   Test we can manage cohorts within a category
12   Test we can manage filters for a category
14   Scenario: Test editing a category through the management interface.
15     Given the following "categories" exists:
16       | name | category | idnumber |
17       | Cat 1 | 0 | CAT1 |
18     And the following "courses" exists:
19       | category | fullname | shortname | idnumber |
20       | CAT1 | Course 1 | Course 1 | C1 |
22     And I log in as "admin"
23     And I go to the courses management page
24     And I should see the "Course categories" management page
25     And I click on "edit" action for "Cat 1" in management category listing
26     # Redirect
27     And I should see "Edit category settings"
28     And I should see "Cat 1"
29     And I press "Cancel"
30     # Redirect
31     And I should see the "Course categories and courses" management page
32     And I click on "edit" action for "Cat 1" in management category listing
33     # Redirect
34     And I should see "Edit category settings"
35     And I should see "Cat 1"
36     And I fill the moodle form with:
37       | Category name | Category 1 (edited) |
38       | Category ID number | CAT1e |
39     And I press "Save changes"
40     # Redirect
41     And I should see the "Course categories and courses" management page
42     And I should see "Category 1 (edited)" in the "#category-listing" "css_element"
43     And I should see "Category 1 (edited)" in the "#course-listing h3" "css_element"
45   Scenario: Test deleting a categories through the management interface.
46     Given the following "categories" exists:
47       | name | category | idnumber |
48       | Cat 1 | 0 | CAT1 |
49       | Cat 2 | 0 | CAT2 |
50       | Cat 3 | 0 | CAT3 |
52     And the following "courses" exists:
53       | category | fullname | shortname | idnumber |
54       | CAT3 | Course 1 | Course 1 | C1 |
56     And I log in as "admin"
57     And I go to the courses management page
58     And I should see the "Course categories" management page
59     And I should see "Cat 1" in the "#category-listing ul.ml" "css_element"
60     And I should see "Cat 2" in the "#category-listing ul.ml" "css_element"
61     And I should see "Cat 3" in the "#category-listing ul.ml" "css_element"
62     And I click on "delete" action for "Cat 2" in management category listing
63     # Redirect
64     And I should see "Delete category: Cat 2"
65     And I should see "Contents of Cat 2"
66     And I should see "This category is empty"
67     And I press "Cancel"
68     # Redirect
69     And I should see the "Course categories and courses" management page
70     And I should see "Cat 1" in the "#category-listing ul.ml" "css_element"
71     And I should see "Cat 2" in the "#category-listing ul.ml" "css_element"
72     And I should see "Cat 3" in the "#category-listing ul.ml" "css_element"
73     And I click on "delete" action for "Cat 2" in management category listing
74     # Redirect
75     And I should see "Delete category: Cat 2"
76     And I should see "Contents of Cat 2"
77     And I should see "This category is empty"
78     And I press "Delete"
79     # Redirect
80     And I should see "Delete category: Cat 2"
81     And I should see "Deleted course category Cat 2"
82     And I press "Continue"
83     # Redirect
84     And I should see the "Course categories" management page
85     And I should see "Cat 1" in the "#category-listing ul.ml" "css_element"
86     And I should not see "Cat 2" in the "#category-listing ul.ml" "css_element"
87     And I should see "Cat 3" in the "#category-listing ul.ml" "css_element"
88     And I click on "delete" action for "Cat 3" in management category listing
89     # Redirect
90     And I should see "Delete category: Cat 3"
91     And I fill the moodle form with:
92       | What to do | Move contents to another category |
93       | Move into  | Cat 1                             |
94     And I press "Delete"
95     # Redirect
96     And I should see "Delete category: Cat 3"
97     And I should see "Deleted course category Cat 3"
98     And I press "Continue"
99     # Redirect
100     And I should see the "Course categories and courses" management page
101     And I should see "Cat 1" in the "#category-listing ul.ml" "css_element"
102     And I should not see "Cat 2" in the "#category-listing ul.ml" "css_element"
103     And I should not see "Cat 3" in the "#category-listing ul.ml" "css_element"
104     And I should see "Course 1" in the "#course-listing ul.ml" "css_element"
106   Scenario: Test I can assign roles for a category through the management interface.
107     Given the following "categories" exists:
108       | name | category | idnumber |
109       | Cat 1 | 0 | CAT1 |
110     And the following "courses" exists:
111       | category | fullname | shortname | idnumber |
112       | CAT1 | Course 1 | Course 1 | C1 |
114     And I log in as "admin"
115     And I go to the courses management page
116     And I should see the "Course categories" management page
117     And I click on "assignroles" action for "Cat 1" in management category listing
118     # Redirect
119     And I should see "Assign roles in Category: Cat 1"
120     And I should see "Please choose a role to assign"
121     And I click on "Back to Category: Cat 1" "link"
122     # Redirect
123     And I should see the "Course categories and courses" management page
124     And I should see "Cat 1" in the "#course-listing h3" "css_element"
126   Scenario: Test I can set access permissions for a category through the management interface.
127     Given the following "categories" exists:
128       | name | category | idnumber |
129       | Cat 1 | 0 | CAT1 |
130     And the following "courses" exists:
131       | category | fullname | shortname | idnumber |
132       | CAT1 | Course 1 | Course 1 | C1 |
134     And I log in as "admin"
135     And I go to the courses management page
136     And I should see the "Course categories" management page
137     And I click on "permissions" action for "Cat 1" in management category listing
138     # Redirect
139     And I should see "Permissions in Category: Cat 1"
140     And I click on "Back to Category: Cat 1" "link"
141     # Redirect
142     And I should see the "Course categories and courses" management page
143     And I should see "Cat 1" in the "#course-listing h3" "css_element"
145   Scenario: Test clicking to manage cohorts for a category through the management interface.
146     Given the following "categories" exists:
147       | name | category | idnumber |
148       | Cat 1 | 0 | CAT1 |
149     And the following "courses" exists:
150       | category | fullname | shortname | idnumber |
151       | CAT1 | Course 1 | Course 1 | C1 |
153     And I log in as "admin"
154     And I go to the courses management page
155     And I should see the "Course categories" management page
156     And I click on "cohorts" action for "Cat 1" in management category listing
157     # Redirect
158     And I should see "Category: Cat 1: available cohorts"
160   Scenario: Test configuring filters for a category
161     Given the following "categories" exists:
162       | name | category | idnumber |
163       | Cat 1 | 0 | CAT1 |
164     And the following "courses" exists:
165       | category | fullname | shortname | idnumber |
166       | CAT1 | Course 1 | Course 1 | C1 |
168     And I log in as "admin"
169     And I go to the courses management page
170     And I should see the "Course categories" management page
171     And I click on "filters" action for "Cat 1" in management category listing
172     # Redirect
173     And I should see "Filter settings in Category: Cat 1"
174     And I click on "Back to Category: Cat 1" "link"
175     # Redirect
176     And I should see the "Course categories and courses" management page
177     And I should see "Cat 1" in the "#course-listing h3" "css_element"
179   @javascript
180   Scenario: Test that I can create a category and view it in the management interface
181     Given the following "categories" exists:
182       | name | category | idnumber |
183       | Cat 1 | 0 | CAT1 |
184     And I log in as "admin"
185     And I go to the courses management page
186     And I should see the "Course categories" management page
187     And I click on "Create new" "link" in the ".category-listing-actions" "css_element"
188     And I click on "Top level category" "link" in the ".category-listing-actions" "css_element"
189     # Redirect.
190     And I should see "Add new category"
191     And I fill the moodle form with:
192       | Category name | Test category 2 |
193       | Category ID number | TC2 |
194     And I press "Create category"
195     # Redirect
196     And I should see the "Course categories and courses" management page
197     And I should see "Test category 2" in the "#course-listing h3" "css_element"
198     And I should see category listing "Cat 1" before "Test category 2"
199     And I should see "No courses in this category"
200     And I click on "Create new" "link" in the ".category-listing-actions" "css_element"
201     And I click on "Sub category" "link" in the ".category-listing-actions" "css_element"
202     # Redirect
203     And I should see "Add new category"
204     And I fill the moodle form with:
205       | Category name | Test category 3 |
206       | Category ID number | TC3 |
207     And I press "Create category"
208     # Redirect
209     And I should see the "Course categories and courses" management page
210     And I should see "Test category 3" in the "#course-listing h3" "css_element"
211     And I should see category listing "Cat 1" before "Test category 2"
212     And I should see "No courses in this category"
214   @javascript
215   Scenario: Test moving a categories through the management interface.
216     Given the following "categories" exists:
217       | name | category | idnumber |
218       | Cat 1 | 0 | CAT1 |
219       | Cat 2 | 0 | CAT2 |
220       | Cat 3 | 0 | CAT3 |
222     And I log in as "admin"
223     And I go to the courses management page
224     And I should see the "Course categories" management page
225     And I should see "Cat 1" in the "#category-listing ul.ml" "css_element"
226     And I should see "Cat 2" in the "#category-listing ul.ml" "css_element"
227     And I should see "Cat 3" in the "#category-listing ul.ml" "css_element"
228     And I select category "Cat 2" in the management interface
229     And I select category "Cat 3" in the management interface
230     And I select "Cat 1" from "menumovecategoriesto"
231     When I press "bulkmovecategories"
232     # Redirect
233     And I click on category "Cat 1" in the management interface
234     # Redirect
235     Then I should see category "CAT3" as subcategory of "CAT1" in the management interface
236     And I move category "CAT3" to top level in the management interface
237     # Redirect
238     And I should not see category "CAT3" as subcategory of "CAT1" in the management interface
239     Then I should see category "CAT2" as subcategory of "CAT1" in the management interface