MDL-48425 course: management behat tests improved
[moodle.git] / course / tests / behat / category_resort.feature
1 @core @core_course
2 Feature: Test we can resort categories in the management interface.
3   As a moodle admin
4   I need to test we can resort top level categories.
5   I need to test we can resort sub categories.
6   I need to test we can manually sort categories.
8   Scenario Outline: Test bulk sorting all categories.
9     Given the following "categories" exist:
10       | category | name | idnumber | sortorder |
11       | 0 | Social studies | Ext003 | 1 |
12       | 0 | Applied sciences | Sci001 | 2 |
13       | 0 | Extended social studies | Ext002 | 3 |
15     And I log in as "admin"
16     And I go to the courses management page
17     And I should see the "Course categories and courses" management page
18     And I set the field "menuselectsortby" to "All categories"
19     And I set the field "menuresortcategoriesby" to <sortby>
20     And I press "Sort"
21     # Redirect.
22     And I should see the "Course categories and courses" management page
23     And I should see category listing <cat1> before <cat2>
24     And I should see category listing <cat2> before <cat3>
26   Examples:
27     | sortby | cat1 | cat2 | cat3 |
28     | "Sort by Category name ascending"       | "Applied sciences"        | "Extended social studies" | "Social studies" |
29     | "Sort by Category name descending"      | "Social studies"          | "Extended social studies" | "Applied sciences" |
30     | "Sort by Category ID number ascending"  | "Extended social studies" | "Social studies"          | "Applied sciences" |
31     | "Sort by Category ID number descending" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
33   Scenario Outline: Test bulk sorting current category.
34     Given the following "categories" exist:
35       | category | name | idnumber | sortorder |
36       | 0 | Test category | Tes001 | 1 |
37       | Tes001 | Social studies | Ext003 | 2 |
38       | Tes001 | Applied sciences | Sci001 | 3 |
39       | Tes001 | Extended social studies | Ext002 | 4 |
41     And I log in as "admin"
42     And I go to the courses management page
43     And I should see the "Course categories and courses" management page
44     And I click on "Test category" "link"
45     # Redirect.
46     And I should see the "Course categories and courses" management page
47     And I set the field "menuselectsortby" to "This category"
48     And I set the field "menuresortcategoriesby" to <sortby>
49     And I press "Sort"
50     # Redirect.
51     And I should see the "Course categories and courses" management page
52     And I should see category listing <cat1> before <cat2>
53     And I should see category listing <cat2> before <cat3>
55   Examples:
56     | sortby | cat1 | cat2 | cat3 |
57     | "Sort by Category name ascending"       | "Applied sciences"        | "Extended social studies" | "Social studies" |
58     | "Sort by Category name descending"      | "Social studies"          | "Extended social studies" | "Applied sciences" |
59     | "Sort by Category ID number ascending"  | "Extended social studies" | "Social studies"          | "Applied sciences" |
60     | "Sort by Category ID number descending" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
62   Scenario Outline: Test resorting subcategories.
63     Given the following "categories" exist:
64       | category | name | idnumber | sortorder |
65       | 0 | Master cat  | CAT1 | 1 |
66       | CAT1 | Social studies | Ext003 | 1 |
67       | CAT1 | Applied sciences | Sci001 | 2 |
68       | CAT1 | Extended social studies | Ext002 | 3 |
70     And I log in as "admin"
71     And I go to the courses management page
72     And I should see the "Course categories and courses" management page
73     And I click on "Master cat" "link"
74     # Redirect.
75     And I should see the "Course categories and courses" management page
76     And I click on <sortby> action for "Master cat" in management category listing
77     # Redirect.
78     And I should see the "Course categories and courses" management page
79     And I should see category listing <cat1> before <cat2>
80     And I should see category listing <cat2> before <cat3>
82   Examples:
83     | sortby | cat1 | cat2 | cat3 |
84     | "resortbyname"         | "Applied sciences"        | "Extended social studies" | "Social studies" |
85     | "resortbynamedesc"     | "Social studies"          | "Extended social studies" | "Applied sciences" |
86     | "resortbyidnumber"     | "Extended social studies" | "Social studies"          | "Applied sciences" |
87     | "resortbyidnumberdesc" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
89   @javascript
90   Scenario Outline: Test resorting subcategories with JS enabled.
91     Given the following "categories" exist:
92       | category | name | idnumber | sortorder |
93       | 0 | Master cat  | CAT1 | 1 |
94       | CAT1 | Social studies | Ext003 | 1 |
95       | CAT1 | Applied sciences | Sci001 | 2 |
96       | CAT1 | Extended social studies | Ext002 | 3 |
98     And I log in as "admin"
99     And I go to the courses management page
100     And I start watching to see if a new page loads
101     And I should see the "Course categories and courses" management page
102     And I click on "Master cat" category in the management category listing
103     And a new page should have loaded since I started watching
104     And I start watching to see if a new page loads
105     And I should see the "Course categories and courses" management page
106     And I click on <sortby> action for "Master cat" in management category listing
107     And a new page should have loaded since I started watching
108     And I start watching to see if a new page loads
109     And I should see the "Course categories and courses" management page
110     And I should see category listing <cat1> before <cat2>
111     And I should see category listing <cat2> before <cat3>
113   Examples:
114     | sortby | cat1 | cat2 | cat3 |
115     | "resortbyname"         | "Applied sciences"        | "Extended social studies" | "Social studies" |
116     | "resortbynamedesc"     | "Social studies"          | "Extended social studies" | "Applied sciences" |
117     | "resortbyidnumber"     | "Extended social studies" | "Social studies"          | "Applied sciences" |
118     | "resortbyidnumberdesc" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
120   # The scenario below this is the same but with JS enabled.
121   Scenario: Test moving categories up and down by one.
122     Given the following "categories" exist:
123       | category | idnumber | name |
124       | 0 | CAT1 | Cat 1 |
125       | 0 | CAT2 | Cat 2 |
126       | CAT1 | CATA | Cat 1a |
127       | CAT1 | CATB | Cat 1b |
128       | CAT1 | CATC | Cat 1c |
130     And I log in as "admin"
131     And I go to the courses management page
132     And I should see the "Course categories and courses" management page
133     And I click on category "Cat 1" in the management interface
134     # Redirect. We should a 1, 1a, 1b, 1c, 2.
135     And I should see the "Course categories and courses" management page
136     And I should see category listing "Cat 1" before "Cat 1a"
137     And I should see category listing "Cat 1a" before "Cat 1b"
138     And I should see category listing "Cat 1b" before "Cat 1c"
139     And I should see category listing "Cat 1c" before "Cat 2"
140     And I click to move category "CATA" down one
141     # Redirect.We should a 1, 1b, 1a, 1c, 2.
142     And I should see the "Course categories and courses" management page
143     And I should see category listing "Cat 1" before "Cat 1b"
144     And I should see category listing "Cat 1b" before "Cat 1a"
145     And I should see category listing "Cat 1a" before "Cat 1c"
146     And I should see category listing "Cat 1c" before "Cat 2"
147     And I click to move category "CATC" up one
148     # Redirect. We should a 1, 1b, 1c, 1a, 2.
149     And I should see the "Course categories and courses" management page
150     And I should see category listing "Cat 1" before "Cat 1b"
151     And I should see category listing "Cat 1b" before "Cat 1c"
152     And I should see category listing "Cat 1c" before "Cat 1a"
153     And I should see category listing "Cat 1a" before "Cat 2"
154     And I click to move category "CATA" down one
155     # Redirect. We should a 1, 1b, 1c, 1a, 2.
156     And I should see the "Course categories and courses" management page
157     And I should see category listing "Cat 1" before "Cat 1b"
158     And I should see category listing "Cat 1b" before "Cat 1c"
159     And I should see category listing "Cat 1c" before "Cat 1a"
160     And I should see category listing "Cat 1a" before "Cat 2"
161     And I click to move category "CATB" up one
162     # Redirect. We should a 1, 1b, 1c, 1a, 2.
163     And I should see the "Course categories and courses" management page
164     And I should see category listing "Cat 1" before "Cat 1b"
165     And I should see category listing "Cat 1b" before "Cat 1c"
166     And I should see category listing "Cat 1c" before "Cat 1a"
167     And I should see category listing "Cat 1a" before "Cat 2"
168     And I click to move category "CAT2" up one
169     # Redirect. We should a 2, 1.
170     And I should see the "Course categories and courses" management page
171     And I should see category listing "Cat 2" before "Cat 1"
172     And I click on category "Cat 1" in the management interface
173     # Redirect. We should a 2, 1, 1b, 1c, 1a.
174     And I should see the "Course categories and courses" management page
175     And I should see category listing "Cat 2" before "Cat 1"
176     And I should see category listing "Cat 1" before "Cat 1b"
177     And I should see category listing "Cat 1b" before "Cat 1c"
178     And I should see category listing "Cat 1c" before "Cat 1a"
180   @javascript @_cross_browser
181   Scenario: Test using AJAX to move categories up and down by one.
182     Given the following "categories" exist:
183       | category | idnumber | name |
184       | 0 | CAT1 | Cat 1 |
185       | 0 | CAT2 | Cat 2 |
186       | CAT1 | CATA | Cat 1a |
187       | CAT1 | CATB | Cat 1b |
188       | CAT1 | CATC | Cat 1c |
190     And I log in as "admin"
191     And I go to the courses management page
192     And I start watching to see if a new page loads
193     And I should see the "Course categories and courses" management page
194     And I click on category "Cat 1" in the management interface
195     And a new page should have loaded since I started watching
196     And I start watching to see if a new page loads
197     And I should see the "Course categories and courses" management page
198     And I should see category listing "Cat 1" before "Cat 1a"
199     And I should see category listing "Cat 1a" before "Cat 1b"
200     And I should see category listing "Cat 1b" before "Cat 1c"
201     And I should see category listing "Cat 1c" before "Cat 2"
202     And I click to move category "CATA" down one
203     And a new page should not have loaded since I started watching
204     And I should see category listing "Cat 1" before "Cat 1b"
205     And I should see category listing "Cat 1b" before "Cat 1a"
206     And I should see category listing "Cat 1a" before "Cat 1c"
207     And I should see category listing "Cat 1c" before "Cat 2"
208     And I click to move category "CATC" up one
209     And a new page should not have loaded since I started watching
210     And I should see category listing "Cat 1" before "Cat 1b"
211     And I should see category listing "Cat 1b" before "Cat 1c"
212     And I should see category listing "Cat 1c" before "Cat 1a"
213     And I should see category listing "Cat 1a" before "Cat 2"