781186ad72d76f0e61070b02a8a9901c8744ebcb
[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 should see the "Course categories and courses" management page
101     And I click on "Master cat" category in the management category listing
102   # Redirect.
103     And I should see the "Course categories and courses" management page
104     And I click on <sortby> action for "Master cat" in management category listing
105   # Redirect.
106     And I should see the "Course categories and courses" management page
107     And I should see category listing <cat1> before <cat2>
108     And I should see category listing <cat2> before <cat3>
110   Examples:
111     | sortby | cat1 | cat2 | cat3 |
112     | "resortbyname"         | "Applied sciences"        | "Extended social studies" | "Social studies" |
113     | "resortbynamedesc"     | "Social studies"          | "Extended social studies" | "Applied sciences" |
114     | "resortbyidnumber"     | "Extended social studies" | "Social studies"          | "Applied sciences" |
115     | "resortbyidnumberdesc" | "Applied sciences"        | "Social studies"          | "Extended social studies" |
117   # The scenario below this is the same but with JS enabled.
118   Scenario: Test moving categories up and down by one.
119     Given the following "categories" exist:
120       | category | idnumber | name |
121       | 0 | CAT1 | Cat 1 |
122       | 0 | CAT2 | Cat 2 |
123       | CAT1 | CATA | Cat 1a |
124       | CAT1 | CATB | Cat 1b |
125       | CAT1 | CATC | Cat 1c |
127     And I log in as "admin"
128     And I go to the courses management page
129     And I should see the "Course categories and courses" management page
130     And I click on category "Cat 1" in the management interface
131     # Redirect. We should a 1, 1a, 1b, 1c, 2.
132     And I should see the "Course categories and courses" management page
133     And I should see category listing "Cat 1" before "Cat 1a"
134     And I should see category listing "Cat 1a" before "Cat 1b"
135     And I should see category listing "Cat 1b" before "Cat 1c"
136     And I should see category listing "Cat 1c" before "Cat 2"
137     And I click to move category "CATA" down one
138     # Redirect.We should a 1, 1b, 1a, 1c, 2.
139     And I should see the "Course categories and courses" management page
140     And I should see category listing "Cat 1" before "Cat 1b"
141     And I should see category listing "Cat 1b" before "Cat 1a"
142     And I should see category listing "Cat 1a" before "Cat 1c"
143     And I should see category listing "Cat 1c" before "Cat 2"
144     And I click to move category "CATC" up one
145     # Redirect. We should a 1, 1b, 1c, 1a, 2.
146     And I should see the "Course categories and courses" management page
147     And I should see category listing "Cat 1" before "Cat 1b"
148     And I should see category listing "Cat 1b" before "Cat 1c"
149     And I should see category listing "Cat 1c" before "Cat 1a"
150     And I should see category listing "Cat 1a" before "Cat 2"
151     And I click to move category "CATA" down one
152     # Redirect. We should a 1, 1b, 1c, 1a, 2.
153     And I should see the "Course categories and courses" management page
154     And I should see category listing "Cat 1" before "Cat 1b"
155     And I should see category listing "Cat 1b" before "Cat 1c"
156     And I should see category listing "Cat 1c" before "Cat 1a"
157     And I should see category listing "Cat 1a" before "Cat 2"
158     And I click to move category "CATB" up one
159     # Redirect. We should a 1, 1b, 1c, 1a, 2.
160     And I should see the "Course categories and courses" management page
161     And I should see category listing "Cat 1" before "Cat 1b"
162     And I should see category listing "Cat 1b" before "Cat 1c"
163     And I should see category listing "Cat 1c" before "Cat 1a"
164     And I should see category listing "Cat 1a" before "Cat 2"
165     And I click to move category "CAT2" up one
166     # Redirect. We should a 2, 1.
167     And I should see the "Course categories and courses" management page
168     And I should see category listing "Cat 2" before "Cat 1"
169     And I click on category "Cat 1" in the management interface
170     # Redirect. We should a 2, 1, 1b, 1c, 1a.
171     And I should see the "Course categories and courses" management page
172     And I should see category listing "Cat 2" before "Cat 1"
173     And I should see category listing "Cat 1" before "Cat 1b"
174     And I should see category listing "Cat 1b" before "Cat 1c"
175     And I should see category listing "Cat 1c" before "Cat 1a"
177   @javascript @_cross_browser
178   Scenario: Test using AJAX to move categories up and down by one.
179     Given the following "categories" exist:
180       | category | idnumber | name |
181       | 0 | CAT1 | Cat 1 |
182       | 0 | CAT2 | Cat 2 |
183       | CAT1 | CATA | Cat 1a |
184       | CAT1 | CATB | Cat 1b |
185       | CAT1 | CATC | Cat 1c |
187     And I log in as "admin"
188     And I go to the courses management page
189     And I should see the "Course categories and courses" management page
190     And I click on category "Cat 1" in the management interface
191     # Redirect.
192     And I should see the "Course categories and courses" management page
193     And I should see category listing "Cat 1" before "Cat 1a"
194     And I should see category listing "Cat 1a" before "Cat 1b"
195     And I should see category listing "Cat 1b" before "Cat 1c"
196     And I should see category listing "Cat 1c" before "Cat 2"
197     And I click to move category "CATA" down one
198     # AJAX request. No redirect.We should a 1, 1b, 1a, 1c, 2.
199     And I should see category listing "Cat 1" before "Cat 1b"
200     And I should see category listing "Cat 1b" before "Cat 1a"
201     And I should see category listing "Cat 1a" before "Cat 1c"
202     And I should see category listing "Cat 1c" before "Cat 2"
203     And I click to move category "CATC" up one
204     # AJAX request. No redirect. We should a 1, 1b, 1c, 1a, 2.
205     And I should see category listing "Cat 1" before "Cat 1b"
206     And I should see category listing "Cat 1b" before "Cat 1c"
207     And I should see category listing "Cat 1c" before "Cat 1a"
208     And I should see category listing "Cat 1a" before "Cat 2"