6871aae36849f9db2013357e82238a89126382db
[moodle.git] / course / tests / behat / course_category_management_listing.feature
1 @core @core_course
2 Feature: Course category management interface performs as expected
3   In order to test JS enhanced display of categories and subcategories.
4   As a moodle admin
5   I need to expand and collapse categories.
7   @javascript
8   Scenario: Test general look of management interface
9     Given the following "categories" exist:
10       | name | category | idnumber |
11       | Cat 1 | 0 | CAT1 |
12     And I log in as "admin"
13     And I go to the courses management page
14     And I should see "Course and category management" in the "h2" "css_element"
15     And I should see "Course categories" in the ".view-mode-selector" "css_element"
16     And I should see "Course categories" in the "h3" "css_element"
17     And I should see the "Course categories and courses" management page
19   @javascript
20   Scenario: Test view mode functionality
21     Given the following "categories" exist:
22       | name | category | idnumber |
23       | Cat 1 | 0 | CAT1 |
24     And the following "courses" exist:
25       | fullname | shortname | category | format |
26       | Course 1 | C1 | CAT1 | topics |
28     And I log in as "admin"
29     And I go to the courses management page
30     And I should see the "Course categories and courses" management page
31     And I should see "Course categories" in the "#category-listing h3" "css_element"
32     And I should see "Cat 1" in the "#category-listing" "css_element"
33     And I should see "Course categories" in the ".view-mode-selector" "css_element"
34     And I should not see "Course categories and courses" in the ".view-mode-selector .menu" "css_element"
35     And I should not see "Course categories" in the ".view-mode-selector .menu" "css_element"
36     And I should not see "Courses" in the ".view-mode-selector .menu" "css_element"
37     When I click on "Course categories" "link" in the ".view-mode-selector" "css_element"
38     Then I should see "Course categories and courses" in the ".view-mode-selector .menu" "css_element"
39     And I should see "Course categories" in the ".view-mode-selector .menu" "css_element"
40     And I should see "Courses" in the ".view-mode-selector .menu" "css_element"
41     And I click on "Course categories and courses" "link" in the ".view-mode-selector .menu" "css_element"
42     # Redirect.
43     And I should see the "Course categories and courses" management page
44     And I should see "Course categories" in the "#category-listing h3" "css_element"
45     And I should see "Miscellaneous" in the "#course-listing h3" "css_element"
46     And I should see "Cat 1" in the "#category-listing" "css_element"
47     And I should see "No courses in this category" in the "#course-listing" "css_element"
48     And I click on category "Cat 1" in the management interface
49     # Redirect.
50     And I should see the "Course categories and courses" management page
51     And I should see "Course categories" in the "#category-listing h3" "css_element"
52     And I should see "Cat 1" in the "#course-listing h3" "css_element"
53     And I should see "Cat 1" in the "#category-listing" "css_element"
54     And I should see "Course 1" in the "#course-listing" "css_element"
55     When I click on "Course categories" "link" in the ".view-mode-selector" "css_element"
56     Then I should see "Courses" in the ".view-mode-selector .menu" "css_element"
57     And I click on "Courses" "link" in the ".view-mode-selector .menu" "css_element"
58     # Redirect.
59     And I should see the "Courses" management page
60     And I should see "Cat 1" in the "#course-listing h3" "css_element"
61     And I should see "Course 1" in the "#course-listing" "css_element"
62     And I click on course "Course 1" in the management interface
63     # Redirect.
64     And I should see the "Courses" management page with a course selected
65     And I should see "Cat 1" in the "#course-listing h3" "css_element"
66     And I should see "Course 1" in the "#course-listing" "css_element"
67     And I should see "Course 1" in the "#course-detail h3" "css_element"
68     And I should see "C1" in the "#course-detail .shortname" "css_element"
69     And I should see "Course 1" in the "#course-detail .fullname" "css_element"
70     And I should see "Topics" in the "#course-detail .format" "css_element"
71     And I should see "Cat 1" in the "#course-detail .category" "css_element"
73   Scenario: Test displaying of sub categories
74     Given the following "categories" exist:
75       | name | category | idnumber |
76       | Cat 1 | 0 | CAT1 |
77       | Cat 2 | 0 | CAT2 |
78       | Cat 1-1 | CAT1 | CAT3 |
79       | Cat 1-2 | CAT1 | CAT4 |
80       | Cat 1-1-1 | CAT3 | CAT5 |
81       | Cat 1-1-2 | CAT3 | CAT6 |
82       | Cat 2-1 | CAT2 | CAT7 |
83       | Cat 2-1-1 | CAT7 | CAT8 |
84     And the following "courses" exist:
85       | fullname | shortname | category |
86       | Course 1 | C1 | CAT1 |
87       | Course 2 | C2 | CAT1 |
88       | Course 3 | C3 | CAT3 |
89       | Course 4 | C4 | CAT3 |
90       | Course 5 | C5 | CAT5 |
91       | Course 6 | C6 | CAT5 |
92       | Course 7 | C7 | CAT8 |
93       | Course 8 | C8 | CAT8 |
95     And I log in as "admin"
96     And I go to the courses management page
97     And I should see the "Course categories and courses" management page
98     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
99     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
100     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
101     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
102     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
103     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
104     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
105     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
106     And I click on "Cat 1" "link"
107     # Redirect.
108     And I should see the "Course categories and courses" management page
109     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
110     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
111     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
112     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
113     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
114     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
115     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
116     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
117     And I click on "Cat 1-1" "link"
118     # Redirect.
119     And I should see the "Course categories and courses" management page
120     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
121     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
122     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
123     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
124     And I should see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
125     And I should see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
126     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
127     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
128     And I click on "Cat 2" "link"
129     # Redirect.
130     And I should see the "Course categories and courses" management page
131     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
132     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
133     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
134     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
135     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
136     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
137     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
138     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
140   # This is similar to the above scenario except here we are going to use AJAX
141   # to load the categories.
142   @javascript @_cross_browser
143   Scenario: Test AJAX loading of sub categories
144     Given the following "categories" exist:
145       | name | category | idnumber |
146       | Cat 1 | 0 | CAT1 |
147       | Cat 2 | 0 | CAT2 |
148       | Cat 1-1 | CAT1 | CAT3 |
149       | Cat 1-2 | CAT1 | CAT4 |
150       | Cat 1-1-1 | CAT3 | CAT5 |
151       | Cat 1-1-2 | CAT3 | CAT6 |
152       | Cat 2-1 | CAT2 | CAT7 |
153       | Cat 2-1-1 | CAT7 | CAT8 |
154     And the following "courses" exist:
155       | fullname | shortname | category |
156       | Course 1 | C1 | CAT1 |
157       | Course 2 | C2 | CAT1 |
158       | Course 3 | C3 | CAT3 |
159       | Course 4 | C4 | CAT3 |
160       | Course 5 | C5 | CAT5 |
161       | Course 6 | C6 | CAT5 |
162       | Course 7 | C7 | CAT8 |
163       | Course 8 | C8 | CAT8 |
165     And I log in as "admin"
166     And I go to the courses management page
167     And I should see the "Course categories and courses" management page
168     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
169     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
170     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
171     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
172     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
173     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
174     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
175     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
176     And I click to expand category "CAT1" in the management interface
177     # AJAX action - no redirect.
178     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
179     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
180     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
181     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
182     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
183     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
184     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
185     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
186     And I click to expand category "CAT3" in the management interface
187     # AJAX action - no redirect.
188     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
189     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
190     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
191     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
192     And I should see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
193     And I should see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
194     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
195     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
196     And I click to expand category "CAT2" in the management interface
197     # AJAX action - no redirect.
198     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
199     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
200     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
201     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
202     And I should see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
203     And I should see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
204     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
205     And I should not see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
206     And I click to expand category "CAT7" in the management interface
207     # AJAX action - no redirect.
208     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
209     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
210     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
211     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
212     And I should see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
213     And I should see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
214     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
215     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
216     And I click to expand category "CAT1" in the management interface
217     # AJAX action - no redirect.
218     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
219     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
220     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
221     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
222     And I should not see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
223     And I should not see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
224     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
225     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
226     And I click to expand category "CAT1" in the management interface
227     # AJAX action - no redirect.
228     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
229     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
230     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
231     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
232     And I should see "Cat 1-1-1" in the "#course-category-listings ul.ml" "css_element"
233     And I should see "Cat 1-1-2" in the "#course-category-listings ul.ml" "css_element"
234     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
235     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
237   @javascript
238   Scenario Outline: Top level categories are displayed correctly when resorted
239     Given the following "categories" exist:
240       | category | name | idnumber | sortorder |
241       | 0 | Social studies | Ext003 | 1 |
242       | 0 | Applied sciences | Sci001 | 2 |
243       | 0 | Extended social studies | Ext002 | 3 |
245     And I log in as "admin"
246     And I go to the courses management page
247     And I should see the "Course categories and courses" management page
248     And I set the field "menuselectsortby" to "All categories"
249     And I set the field "menuresortcategoriesby" to <sortby>
250     And I press "Sort"
251     # Redirect.
252     And I should see the "Course categories and courses" management page
253     And I should see category listing <cat1> before <cat2>
254     And I should see category listing <cat2> before <cat3>
256   Examples:
257     | sortby | cat1 | cat2 | cat3 |
258     | "Sort by Category name ascending"       | "Applied sciences"        | "Extended social studies" | "Social studies" |
259     | "Sort by Category name descending"      | "Social studies"          | "Extended social studies" | "Applied sciences" |
260     | "Sort by Category ID number ascending"  | "Extended social studies" | "Social studies"          | "Applied sciences" |
261     | "Sort by Category ID number descending" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
263   @javascript
264   Scenario Outline: Sub categories are displayed correctly when resorted
265     Given the following "categories" exist:
266       | category | name | idnumber | sortorder |
267       | 0 | Master cat  | CAT1 | 1 |
268       | CAT1 | Social studies | Ext003 | 1 |
269       | CAT1 | Applied sciences | Sci001 | 2 |
270       | CAT1 | Extended social studies | Ext002 | 3 |
272     And I log in as "admin"
273     And I go to the courses management page
274     And I should see the "Course categories and courses" management page
275     And I click on "Master cat" category in the management category listing
276     # Redirect.
277     And I should see the "Course categories and courses" management page
278     And I click on <sortby> action for "Master cat" in management category listing
279     # Redirect.
280     And I should see the "Course categories and courses" management page
281     And I should see category listing <cat1> before <cat2>
282     And I should see category listing <cat2> before <cat3>
284   Examples:
285     | sortby | cat1 | cat2 | cat3 |
286     | "resortbyname"         | "Applied sciences"        | "Extended social studies" | "Social studies" |
287     | "resortbynamedesc"     | "Social studies"          | "Extended social studies" | "Applied sciences" |
288     | "resortbyidnumber"     | "Extended social studies" | "Social studies"          | "Applied sciences" |
289     | "resortbyidnumberdesc" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
291   @javascript
292   Scenario Outline: Test courses are displayed correctly after being resorted.
293     Given the following "categories" exist:
294       | name | category 0| idnumber |
295       | Cat 1 | 0 | CAT1 |
296     And the following "courses" exist:
297       | category | fullname | shortname | idnumber | sortorder | timecreated |
298       | CAT1 | Social studies | Senior school | Ext003 | 1 | 1000000001 |
299       | CAT1 | Applied sciences  | Middle school | Sci001 | 2 | 1000000002 |
300       | CAT1 | Extended social studies  | Junior school | Ext002 | 3 | 1000000003 |
302     And I log in as "admin"
303     And I go to the courses management page
304     And I should see the "Course categories and courses" management page
305     And I click on "Cat 1" "link"
306   # Redirect.
307     And I should see the "Course categories and courses" management page
308     And I click on "Sort courses" "link"
309     And I should see "Sort by Course full name ascending" in the ".course-listing-actions" "css_element"
310     And I should see "Sort by Course full name descending" in the ".course-listing-actions" "css_element"
311     And I should see "Sort by Course short name ascending" in the ".course-listing-actions" "css_element"
312     And I should see "Sort by Course short name descending" in the ".course-listing-actions" "css_element"
313     And I should see "Sort by Course ID number ascending" in the ".course-listing-actions" "css_element"
314     And I should see "Sort by Course ID number descending" in the ".course-listing-actions" "css_element"
315     And I should see "Sort by Course time created ascending" in the ".course-listing-actions" "css_element"
316     And I should see "Sort by Course time created descending" in the ".course-listing-actions" "css_element"
317     And I click on <sortby> "link" in the ".course-listing-actions" "css_element"
318   # Redirect.
319     And I should see the "Course categories and courses" management page
320     And I should see course listing <course1> before <course2>
321     And I should see course listing <course2> before <course3>
323   Examples:
324     | sortby | course1 | course2 | course3 |
325     | "Sort by Course full name ascending"     | "Applied sciences"        | "Extended social studies" | "Social studies" |
326     | "Sort by Course full name descending"    | "Social studies"          | "Extended social studies" | "Applied sciences" |
327     | "Sort by Course short name ascending"    | "Extended social studies" | "Applied sciences"        | "Social studies" |
328     | "Sort by Course short name descending"   | "Social studies"          | "Applied sciences"        | "Extended social studies" |
329     | "Sort by Course ID number ascending"     | "Extended social studies" | "Social studies"          | "Applied sciences" |
330     | "Sort by Course ID number descending"    | "Applied sciences"        | "Social studies"          | "Extended social studies" |
331     | "Sort by Course time created ascending"  | "Social studies"          | "Applied sciences"        | "Extended social studies" |
332     | "Sort by Course time created descending" | "Extended social studies" | "Applied sciences"        | "Social studies" |
334   @javascript
335   Scenario: Test course pagination
336     Given the following "categories" exist:
337       | name | category | idnumber |
338       | Cat 1 | 0 | CAT1 |
339     And the following "courses" exist:
340       | category | fullname | shortname | idnumber |
341       | CAT1 | Course 1 | Course 1 | C1 |
342       | CAT1 | Course 2 | Course 2 | C2 |
343       | CAT1 | Course 3 | Course 3 | C3 |
344       | CAT1 | Course 4 | Course 4 | C4 |
345       | CAT1 | Course 5 | Course 5 | C5 |
346       | CAT1 | Course 6 | Course 6 | C6 |
347       | CAT1 | Course 7 | Course 7 | C7 |
348       | CAT1 | Course 8 | Course 8 | C8 |
349       | CAT1 | Course 9 | Course 9 | C9 |
350       | CAT1 | Course 10 | Course 10 | C10 |
351       | CAT1 | Course 11 | Course 11 | C11 |
352       | CAT1 | Course 12 | Course 12 | C12 |
354     And I log in as "admin"
355     And I go to the courses management page
356     And I should see the "Course categories and courses" management page
357     And I click on "Cat 1" "link"
358     # Redirect.
359     And I should see the "Course categories and courses" management page
360     And I click on "Sort courses" "link"
361     And I click on "Sort by Course ID number ascending" "link" in the ".course-listing-actions" "css_element"
362     # Redirect.
363     And I should see "Per page: 20" in the ".course-listing-actions" "css_element"
364     And I should see course listing "Course 1" before "Course 2"
365     And I should see course listing "Course 2" before "Course 3"
366     And I should see course listing "Course 3" before "Course 4"
367     And I should see course listing "Course 4" before "Course 5"
368     And I should see course listing "Course 5" before "Course 6"
369     And I should see course listing "Course 6" before "Course 7"
370     And I should see course listing "Course 7" before "Course 8"
371     And I should see course listing "Course 8" before "Course 9"
372     And I should see course listing "Course 9" before "Course 10"
373     And I should see course listing "Course 10" before "Course 11"
374     And I should see course listing "Course 11" before "Course 12"
375     And "#course-listing .listing-pagination" "css_element" should not exist
376     And I click on "Per page: 20" "link" in the ".course-listing-actions" "css_element"
377     And I should see "5" in the ".courses-per-page" "css_element"
378     And I should see "10" in the ".courses-per-page" "css_element"
379     And I should see "20" in the ".courses-per-page" "css_element"
380     And I should see "All" in the ".courses-per-page" "css_element"
381     And I click on "5" "link" in the ".courses-per-page" "css_element"
382     # Redirect.
383     And I should see the "Course categories and courses" management page
384     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
385     And I should see course listing "Course 1" before "Course 2"
386     And I should see course listing "Course 2" before "Course 3"
387     And I should see course listing "Course 3" before "Course 4"
388     And I should see course listing "Course 4" before "Course 5"
389     And I should not see "Course 6"
390     And I should not see "Course 7"
391     And I should not see "Course 8"
392     And I should not see "Course 9"
393     And I should not see "Course 10"
394     And I should not see "Course 11"
395     And I should not see "Course 12"
396     And "#course-listing .listing-pagination" "css_element" should exist
397     And I should see "Showing courses 1 to 5 of 12 courses"
398     And I should not see "First" in the "#course-listing .listing-pagination" "css_element"
399     And I should not see "Prev" in the "#course-listing .listing-pagination" "css_element"
400     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
401     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
402     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
403     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
404     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
405     And I click on "2" "link" in the "#course-listing .listing-pagination" "css_element"
406     # Redirect.
407     And I should see the "Course categories and courses" management page
408     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
409     And I should see "Course 10" in the "#course-listing" "css_element"
410     And I should not see "Course 2" in the "#course-listing" "css_element"
411     And I should not see "Course 3" in the "#course-listing" "css_element"
412     And I should not see "Course 4" in the "#course-listing" "css_element"
413     And I should not see "Course 5" in the "#course-listing" "css_element"
414     And I should see course listing "Course 6" before "Course 7"
415     And I should see course listing "Course 7" before "Course 8"
416     And I should see course listing "Course 8" before "Course 9"
417     And I should see course listing "Course 9" before "Course 10"
418     And I should not see "Course 11"
419     And I should not see "Course 12"
420     And "#course-listing .listing-pagination" "css_element" should exist
421     And I should see "Showing courses 6 to 10 of 12 courses"
422     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
423     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
424     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
425     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
426     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
427     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
428     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
429     And I click on "Next" "link" in the "#course-listing .listing-pagination" "css_element"
430     # Redirect. Test next link.
431     And I should see the "Course categories and courses" management page
432     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
433     And I should see "Course 11"
434     And I should not see "Course 2" in the "#course-listing" "css_element"
435     And I should not see "Course 3" in the "#course-listing" "css_element"
436     And I should not see "Course 4" in the "#course-listing" "css_element"
437     And I should not see "Course 5" in the "#course-listing" "css_element"
438     And I should not see "Course 6" in the "#course-listing" "css_element"
439     And I should not see "Course 7" in the "#course-listing" "css_element"
440     And I should not see "Course 8" in the "#course-listing" "css_element"
441     And I should not see "Course 9" in the "#course-listing" "css_element"
442     And I should not see "Course 10" in the "#course-listing" "css_element"
443     And I should see course listing "Course 11" before "Course 12"
444     And "#course-listing .listing-pagination" "css_element" should exist
445     And I should see "Showing courses 11 to 12 of 12 courses"
446     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
447     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
448     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
449     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
450     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
451     And I should not see "Next" in the "#course-listing .listing-pagination" "css_element"
452     And I should not see "Last" in the "#course-listing .listing-pagination" "css_element"
453     And I click on "First" "link" in the "#course-listing .listing-pagination" "css_element"
454     # Redirect. Test first link.
455     And I should see the "Course categories and courses" management page
456     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
457     And I should see course listing "Course 1" before "Course 2"
458     And I should see course listing "Course 2" before "Course 3"
459     And I should see course listing "Course 3" before "Course 4"
460     And I should see course listing "Course 4" before "Course 5"
461     And I should not see "Course 6" in the "#course-listing" "css_element"
462     And I should not see "Course 7" in the "#course-listing" "css_element"
463     And I should not see "Course 8" in the "#course-listing" "css_element"
464     And I should not see "Course 9" in the "#course-listing" "css_element"
465     And I should not see "Course 10" in the "#course-listing" "css_element"
466     And I should not see "Course 11" in the "#course-listing" "css_element"
467     And I should not see "Course 12" in the "#course-listing" "css_element"
468     And "#course-listing .listing-pagination" "css_element" should exist
469     And I should see "Showing courses 1 to 5 of 12 courses"
470     And I should not see "First" in the "#course-listing .listing-pagination" "css_element"
471     And I should not see "Prev" in the "#course-listing .listing-pagination" "css_element"
472     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
473     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
474     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
475     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
476     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
477     And I click on "Last" "link" in the "#course-listing .listing-pagination" "css_element"
478     # Redirect. Test last link.
479     And I should see the "Course categories and courses" management page
480     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
481     And I should see "Course 11" in the "#course-listing" "css_element"
482     And I should not see "Course 2" in the "#course-listing" "css_element"
483     And I should not see "Course 3" in the "#course-listing" "css_element"
484     And I should not see "Course 4" in the "#course-listing" "css_element"
485     And I should not see "Course 5" in the "#course-listing" "css_element"
486     And I should not see "Course 6" in the "#course-listing" "css_element"
487     And I should not see "Course 7" in the "#course-listing" "css_element"
488     And I should not see "Course 8" in the "#course-listing" "css_element"
489     And I should not see "Course 9" in the "#course-listing" "css_element"
490     And I should not see "Course 10" in the "#course-listing" "css_element"
491     And I should see course listing "Course 11" before "Course 12"
492     And "#course-listing .listing-pagination" "css_element" should exist
493     And I should see "Showing courses 11 to 12 of 12 courses"
494     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
495     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
496     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
497     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
498     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
499     And I should not see "Next" in the "#course-listing .listing-pagination" "css_element"
500     And I should not see "Last" in the "#course-listing .listing-pagination" "css_element"
501     And I click on "Prev" "link" in the "#course-listing .listing-pagination" "css_element"
502     # Redirect. Test prev link.
503     And I should see the "Course categories and courses" management page
504     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
505     And I should see "Course 10" in the "#course-listing" "css_element"
506     And I should not see "Course 2" in the "#course-listing" "css_element"
507     And I should not see "Course 3" in the "#course-listing" "css_element"
508     And I should not see "Course 4" in the "#course-listing" "css_element"
509     And I should not see "Course 5" in the "#course-listing" "css_element"
510     And I should see course listing "Course 6" before "Course 7"
511     And I should see course listing "Course 7" before "Course 8"
512     And I should see course listing "Course 8" before "Course 9"
513     And I should see course listing "Course 9" before "Course 10"
514     And I should not see "Course 11"
515     And I should not see "Course 12"
516     And "#course-listing .listing-pagination" "css_element" should exist
517     And I should see "Showing courses 6 to 10 of 12 courses"
518     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
519     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
520     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
521     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
522     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
523     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
524     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
526   Scenario: Test pagination is only shown when required
527     Given the following "categories" exist:
528       | name | category | idnumber |
529       | Cat 1 | 0 | CAT1 |
530     And the following "courses" exist:
531       | category | fullname | shortname | idnumber |
532       | CAT1 | Course 1 | Course 1 | C1 |
533       | CAT1 | Course 2 | Course 2 | C2 |
534       | CAT1 | Course 3 | Course 3 | C3 |
535       | CAT1 | Course 4 | Course 4 | C4 |
536       | CAT1 | Course 5 | Course 5 | C5 |
537     And I log in as "admin"
538     And I go to the courses management page
539     And I should see the "Course categories and courses" management page
540     And I click on "Cat 1" "link"
541     # Redirect.
542     And I should see the "Course categories and courses" management page
543     And I click on "Sort courses" "link"
544     And I click on "Sort by Course ID number ascending" "link" in the ".course-listing-actions" "css_element"
545     # Redirect.
546     And I should see "Per page: 20" in the ".course-listing-actions" "css_element"
547     And I should see course listing "Course 1" before "Course 2"
548     And I should see course listing "Course 2" before "Course 3"
549     And I should see course listing "Course 3" before "Course 4"
550     And I should see course listing "Course 4" before "Course 5"
551     And "#course-listing .listing-pagination" "css_element" should not exist
552     And I click on "5" "link" in the ".course-listing-actions" "css_element"
553     # Redirect
554     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
555     And I should see course listing "Course 1" before "Course 2"
556     And I should see course listing "Course 2" before "Course 3"
557     And I should see course listing "Course 3" before "Course 4"
558     And I should see course listing "Course 4" before "Course 5"
559     And "#course-listing .listing-pagination" "css_element" should not exist
561   # We need at least 30 courses for this next test.
562   @javascript
563   Scenario: Test many course pagination
564     Given the following "categories" exist:
565       | name | category 0| idnumber |
566       | Cat 1 | 0 | CAT1 |
567     And the following "courses" exist:
568       | category | fullname | shortname | idnumber |
569       | CAT1 | Course 1 | Course 1 | C1 |
570       | CAT1 | Course 2 | Course 2 | C2 |
571       | CAT1 | Course 3 | Course 3 | C3 |
572       | CAT1 | Course 4 | Course 4 | C4 |
573       | CAT1 | Course 5 | Course 5 | C5 |
574       | CAT1 | Course 6 | Course 6 | C6 |
575       | CAT1 | Course 7 | Course 7 | C7 |
576       | CAT1 | Course 8 | Course 8 | C8 |
577       | CAT1 | Course 9 | Course 9 | C9 |
578       | CAT1 | Course 10 | Course 10 | C10 |
579       | CAT1 | Course 11 | Course 11 | C11 |
580       | CAT1 | Course 12 | Course 12 | C12 |
581       | CAT1 | Course 13 | Course 13 | C13 |
582       | CAT1 | Course 14 | Course 14 | C14 |
583       | CAT1 | Course 15 | Course 15 | C15 |
584       | CAT1 | Course 16 | Course 16 | C16 |
585       | CAT1 | Course 17 | Course 17 | C17 |
586       | CAT1 | Course 18 | Course 18 | C18 |
587       | CAT1 | Course 19 | Course 19 | C19 |
588       | CAT1 | Course 20 | Course 20 | C20 |
589       | CAT1 | Course 21 | Course 21 | C21 |
590       | CAT1 | Course 22 | Course 22 | C22 |
591       | CAT1 | Course 23 | Course 23 | C23 |
592       | CAT1 | Course 24 | Course 24 | C24 |
593       | CAT1 | Course 25 | Course 25 | C25 |
594       | CAT1 | Course 26 | Course 26 | C26 |
595       | CAT1 | Course 27 | Course 27 | C27 |
596       | CAT1 | Course 28 | Course 28 | C28 |
597       | CAT1 | Course 29 | Course 29 | C29 |
598       | CAT1 | Course 30 | Course 30 | C30 |
599       | CAT1 | Course 31 | Course 31 | C31 |
600       | CAT1 | Course 32 | Course 32 | C32 |
602     And I log in as "admin"
603     And I go to the courses management page
604     And I should see the "Course categories and courses" management page
605     And I click on "Cat 1" "link"
606     # Redirect.
607     And I should see the "Course categories and courses" management page
608     And I click on "Sort courses" "link"
609     And I click on "Sort by Course ID number ascending" "link" in the ".course-listing-actions" "css_element"
610     # Redirect.
611     And I should see the "Course categories and courses" management page
612     And I should see "Per page: 20" in the ".course-listing-actions" "css_element"
613     And I should see course listing "Course 1" before "Course 2"
614     And I should see course listing "Course 19" before "Course 20"
615     And I should not see "Course 21"
616     And I should see "Showing courses 1 to 20 of 32 courses"
617     And I click on "Per page: 20" "link" in the ".course-listing-actions" "css_element"
618     And I click on "100" "link" in the ".courses-per-page" "css_element"
619     # Redirect.
620     And I should see the "Course categories and courses" management page
621     And I should see "Per page: 100" in the ".course-listing-actions" "css_element"
622     And I should see course listing "Course 1" before "Course 2"
623     And I should see course listing "Course 19" before "Course 20"
624     And I should see course listing "Course 21" before "Course 22"
625     And I should see course listing "Course 31" before "Course 32"
626     And "#course-listing .listing-pagination" "css_element" should not exist
627     And I click on "Per page: 100" "link" in the ".course-listing-actions" "css_element"
628     And I click on "5" "link" in the ".courses-per-page" "css_element"
629     # Redirect.
630     And I should see the "Course categories and courses" management page
631     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
632     And I should see course listing "Course 1" before "Course 2"
633     And I should see course listing "Course 4" before "Course 5"
634     And I should not see "Course 6"
635     And I should see "Showing courses 1 to 5 of 32 courses"
636     And I should not see "First" in the "#course-listing .listing-pagination" "css_element"
637     And I should not see "Prev" in the "#course-listing .listing-pagination" "css_element"
638     And I should see "1" in the "#course-listing .listing-pagination" "css_element"
639     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
640     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
641     And I should see "4" in the "#course-listing .listing-pagination" "css_element"
642     And I should see "5" in the "#course-listing .listing-pagination" "css_element"
643     And I should not see "6" in the "#course-listing .listing-pagination" "css_element"
644     And I should not see "7" in the "#course-listing .listing-pagination" "css_element"
645     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
646     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
647     And I click on "Last" "link" in the "#course-listing .listing-pagination" "css_element"
648     # Redirect.
649     And I should see the "Course categories and courses" management page
650     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
651     And I should not see "Course 30"
652     And I should see course listing "Course 31" before "Course 32"
653     And I should see "Showing courses 31 to 32 of 32 courses"
654     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
655     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
656     And I should not see "1" in the "#course-listing .listing-pagination" "css_element"
657     And I should not see "2" in the "#course-listing .listing-pagination" "css_element"
658     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
659     And I should see "4" in the "#course-listing .listing-pagination" "css_element"
660     And I should see "5" in the "#course-listing .listing-pagination" "css_element"
661     And I should see "6" in the "#course-listing .listing-pagination" "css_element"
662     And I should see "7" in the "#course-listing .listing-pagination" "css_element"
663     And I should not see "Next" in the "#course-listing .listing-pagination" "css_element"
664     And I should not see "Last" in the "#course-listing .listing-pagination" "css_element"
665     And I click on "4" "link" in the "#course-listing .listing-pagination" "css_element"
666     # Redirect.
667     And I should see the "Course categories and courses" management page
668     And I should see "Per page: 5" in the ".course-listing-actions" "css_element"
669     And I should not see "Course 15"
670     And I should see course listing "Course 16" before "Course 17"
671     And I should see course listing "Course 17" before "Course 18"
672     And I should see course listing "Course 18" before "Course 19"
673     And I should see course listing "Course 19" before "Course 20"
674     And I should not see "Course 21"
675     And I should see "Showing courses 16 to 20 of 32 courses"
676     And I should see "First" in the "#course-listing .listing-pagination" "css_element"
677     And I should see "Prev" in the "#course-listing .listing-pagination" "css_element"
678     And I should not see "1" in the "#course-listing .listing-pagination" "css_element"
679     And I should see "2" in the "#course-listing .listing-pagination" "css_element"
680     And I should see "3" in the "#course-listing .listing-pagination" "css_element"
681     And I should see "4" in the "#course-listing .listing-pagination" "css_element"
682     And I should see "5" in the "#course-listing .listing-pagination" "css_element"
683     And I should see "6" in the "#course-listing .listing-pagination" "css_element"
684     And I should not see "7" in the "#course-listing .listing-pagination" "css_element"
685     And I should see "Next" in the "#course-listing .listing-pagination" "css_element"
686     And I should see "Last" in the "#course-listing .listing-pagination" "css_element"
688   Scenario: Test clicking to edit a course.
689     Given the following "categories" exist:
690       | name | category | idnumber |
691       | Cat 1 | 0 | CAT1 |
692     And the following "courses" exist:
693       | category | fullname | shortname | idnumber |
694       | CAT1 | Course 1 | Course 1 | C1 |
696     And I log in as "admin"
697     And I go to the courses management page
698     And I should see the "Course categories and courses" management page
699     And I click on category "Cat 1" in the management interface
700     And I click on "edit" action for "Course 1" in management course listing
701     # Redirect
702     And I should see "Edit course settings"
703     And I should see "Course 1"
705   @javascript
706   Scenario: Test AJAX expanded categories stay open.
707     Given the following "categories" exist:
708       | name | category | idnumber |
709       | Cat 1 | 0 | CAT1 |
710       | Cat 2 | 0 | CAT2 |
711       | Cat 1-1 | CAT1 | CAT3 |
712       | Cat 1-2 | CAT1 | CAT4 |
713       | Cat 1-1-1 | CAT3 | CAT5 |
714       | Cat 1-1-2 | CAT3 | CAT6 |
715       | Cat 2-1 | CAT2 | CAT7 |
716       | Cat 2-1-1 | CAT7 | CAT8 |
717       | Cat 2-1-1-1 | CAT8 | CAT10 |
718       | Cat 2-1-2 | CAT7 | CAT9 |
719       | Cat 2-1-2-1 | CAT9 | CAT11 |
721     And I log in as "admin"
722     And I go to the courses management page
723     And I should see the "Course categories and courses" management page
724     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
725     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
726     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
727     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
728     And I should not see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
729     And I click to expand category "CAT2" in the management interface
730     # AJAX action - no redirect.
731     And I click to expand category "CAT7" in the management interface
732     # AJAX action - no redirect.
733     And I click to expand category "CAT9" in the management interface
734     # AJAX action - no redirect.
735     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
736     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
737     And I should not see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
738     And I should not see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
739     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
740     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
741     And I should see "Cat 2-1-2" in the "#course-category-listings ul.ml" "css_element"
742     And I should not see "Cat 2-1-1-1" in the "#course-category-listings ul.ml" "css_element"
743     And I should see "Cat 2-1-2-1" in the "#course-category-listings ul.ml" "css_element"
744     And I click on "Cat 1" category in the management category listing
745     # Redirect.
746     And I should see the "Course categories and courses" management page
747     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
748     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
749     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
750     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
751     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
752     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
753     And I should see "Cat 2-1-2" in the "#course-category-listings ul.ml" "css_element"
754     And I should not see "Cat 2-1-1-1" in the "#course-category-listings ul.ml" "css_element"
755     And I should see "Cat 2-1-2-1" in the "#course-category-listings ul.ml" "css_element"
756     And I click on "resortbyidnumber" action for "Cat 1" in management category listing
757     # Redirect.
758     And I should see the "Course categories and courses" management page
759     And I should see "Cat 1" in the "#course-category-listings ul.ml" "css_element"
760     And I should see "Cat 2" in the "#course-category-listings ul.ml" "css_element"
761     And I should see "Cat 1-1" in the "#course-category-listings ul.ml" "css_element"
762     And I should see "Cat 1-2" in the "#course-category-listings ul.ml" "css_element"
763     And I should see "Cat 2-1" in the "#course-category-listings ul.ml" "css_element"
764     And I should see "Cat 2-1-1" in the "#course-category-listings ul.ml" "css_element"
765     And I should see "Cat 2-1-2" in the "#course-category-listings ul.ml" "css_element"
766     And I should not see "Cat 2-1-1-1" in the "#course-category-listings ul.ml" "css_element"
767     And I should see "Cat 2-1-2-1" in the "#course-category-listings ul.ml" "css_element"
769   @javascript
770   Scenario: Test category expansion after deletion
771     Given the following "categories" exist:
772       | name | category | idnumber |
773       | Cat A (1) | 0 | CAT1 |
774       | Cat B (2) | 0 | CAT2 |
775       | Cat C (1-1) | CAT1 | CAT3 |
776       | Cat D (2-1) | CAT2 | CAT4 |
777       | Cat E (2-1-1) | CAT4 | CAT5 |
779     And I log in as "admin"
780     And I go to the courses management page
781     And I should see the "Course categories and courses" management page
782     And I should see "Cat A (1)" in the "#course-category-listings ul.ml" "css_element"
783     And I should see "Cat B (2)" in the "#course-category-listings ul.ml" "css_element"
784     And I should not see "Cat C (1-1)" in the "#course-category-listings ul.ml" "css_element"
785     And I should not see "Cat D (2-1)" in the "#course-category-listings ul.ml" "css_element"
786     And I should not see "Cat E (2-1-1)" in the "#course-category-listings ul.ml" "css_element"
787     And I click to expand category "CAT1" in the management interface
788     And I should see "Cat C (1-1)" in the "#course-category-listings ul.ml" "css_element"
789     # AJAX action - no redirect.
790     And I click to expand category "CAT2" in the management interface
791     And I should see "Cat D (2-1)" in the "#course-category-listings ul.ml" "css_element"
792     # AJAX action - no redirect.
793     And I click to expand category "CAT4" in the management interface
794     And I should see "Cat E (2-1-1)" in the "#course-category-listings ul.ml" "css_element"
795     # AJAX action - no redirect.
796     And I click on "delete" action for "Cat B (2)" in management category listing
797     # Redirect.
798     And I should see "Delete category: Cat B (2)"
799     And I should see "Contents of Cat B (2)"
800     And I press "Delete"
801     # Redirect
802     And I should see "Delete category: Cat B (2)"
803     And I should see "Deleted course category Cat B (2)"
804     And I press "Continue"
805     # Redirect.
806     And I should see the "Course categories and courses" management page
807     And I should see "Cat A (1)" in the "#course-category-listings ul.ml" "css_element"
808     And I should not see "Cat B (2)" in the "#course-category-listings ul.ml" "css_element"