678bc4fb9a599d02ba899827b9948530fdd29317
[moodle.git] / course / tests / behat / course_resort.feature
1 @core @core_course
2 Feature: Test we can resort course in the management interface.
3   As a moodle admin
4   I need to test we can resort courses within a category.
5   I need to test we can manually sort courses.
7   # Test resorting courses with
8   Scenario Outline: Resort courses.
9     Given the following "categories" exist:
10       | name | category 0| idnumber |
11       | Cat 1 | 0 | CAT1 |
12     And the following "courses" exist:
13       | category | fullname | shortname | idnumber | sortorder |
14       | CAT1 | Social studies | Senior school | Ext003 | 1 |
15       | CAT1 | Applied sciences  | Middle school | Sci001 | 2 |
16       | CAT1 | Extended social studies  | Junior school | Ext002 | 3 |
18     And I log in as "admin"
19     And I go to the courses management page
20     And I should see the "Course categories" management page
21     And I click on category "Cat 1" in the management interface
22     # Redirect.
23     And I should see the "Course categories and courses" management page
24     And I should see "Sort courses" in the ".course-listing-actions" "css_element"
25     And I should see "By fullname" in the ".course-listing-actions" "css_element"
26     And I should see "By shortname" in the ".course-listing-actions" "css_element"
27     And I should see "By idnumber" in the ".course-listing-actions" "css_element"
28     And I click on <sortby> "link" in the ".course-listing-actions" "css_element"
29     # Redirect.
30     And I should see the "Course categories and courses" management page
31     And I should see course listing <course1> before <course2>
32     And I should see course listing <course2> before <course3>
34   Examples:
35     | sortby | course1 | course2 | course3 |
36     | "By fullname"        | "Applied sciences"        | "Extended social studies" | "Social studies" |
37     | "By shortname"       | "Extended social studies" | "Applied sciences"        | "Social studies" |
38     | "By idnumber"        | "Extended social studies" | "Social studies"          | "Applied sciences" |
40   @javascript
41   Scenario Outline: Resort courses with JavaScript enabled.
42     Given the following "categories" exist:
43       | name | category 0| idnumber |
44       | Cat 1 | 0 | CAT1 |
45     And the following "courses" exist:
46       | category | fullname | shortname | idnumber | sortorder |
47       | CAT1 | Social studies | Senior school | Ext003 | 1 |
48       | CAT1 | Applied sciences  | Middle school | Sci001 | 2 |
49       | CAT1 | Extended social studies  | Junior school | Ext002 | 3 |
51     And I log in as "admin"
52     And I go to the courses management page
53     And I should see the "Course categories" management page
54     And I click on category "Cat 1" in the management interface
55     # Redirect.
56     And I should see the "Course categories and courses" management page
57     And I should see "Sort courses" in the ".course-listing-actions" "css_element"
58     And I should not see "By fullname" in the ".course-listing-actions" "css_element"
59     And I should not see "By shortname" in the ".course-listing-actions" "css_element"
60     And I should not see "By idnumber" in the ".course-listing-actions" "css_element"
61     And I click on "Sort courses" "link"
62     And I should see "By fullname" in the ".course-listing-actions" "css_element"
63     And I should see "By shortname" in the ".course-listing-actions" "css_element"
64     And I should see "By idnumber" in the ".course-listing-actions" "css_element"
65     And I click on <sortby> "link" in the ".course-listing-actions" "css_element"
66     # Redirect.
67     And I should see the "Course categories and courses" management page
68     And I should see course listing <course1> before <course2>
69     And I should see course listing <course2> before <course3>
71   Examples:
72     | sortby | course1 | course2 | course3 |
73     | "By fullname"        | "Applied sciences"        | "Extended social studies" | "Social studies" |
74     | "By shortname"       | "Extended social studies" | "Applied sciences"        | "Social studies" |
75     | "By idnumber"        | "Extended social studies" | "Social studies"          | "Applied sciences" |
77   Scenario: Test moving courses up and down by one.
78     Given the following "categories" exist:
79       | name | category | idnumber |
80       | Cat 1 | 0 | CAT1 |
81     And the following "courses" exist:
82       | category | fullname | shortname | idnumber |
83       | CAT1 | Course 1 | Course 1 | C1 |
84       | CAT1 | Course 2 | Course 2 | C2 |
85       | CAT1 | Course 3 | Course 3 | C3 |
87     And I log in as "admin"
88     And I go to the courses management page
89     And I should see the "Course categories" management page
90     And I click on category "Cat 1" in the management interface
91     # Redirect.
92     And I should see the "Course categories and courses" management page
93     And I should see "Course categories" in the "#category-listing h3" "css_element"
94     And I should see "Cat 1" in the "#category-listing" "css_element"
95     And I click on "Sort courses" "link"
96     And I click on "By idnumber" "link" in the ".course-listing-actions" "css_element"
97     # Redirect.
98     And I should see the "Course categories and courses" management page
99     And I should see course listing "Course 1" before "Course 2"
100     And I should see course listing "Course 2" before "Course 3"
101     And I click to move course "C1" down one
102     # Redirect.
103     And I should see the "Course categories and courses" management page with a course selected
104     And I should see course listing "Course 2" before "Course 1"
105     And I should see course listing "Course 1" before "Course 3"
106     And I click to move course "C3" up one
107     # Redirect.
108     And I should see the "Course categories and courses" management page with a course selected
109     And I should see course listing "Course 2" before "Course 3"
110     And I should see course listing "Course 3" before "Course 1"
112   # Like the above test but with JavaScript enabled.
113   @javascript
114   Scenario: Test using AJAX to move courses up and down by one.
115     Given the following "categories" exist:
116       | name | category | idnumber |
117       | Cat 1 | 0 | CAT1 |
118     And the following "courses" exist:
119       | category | fullname | shortname | idnumber |
120       | CAT1 | Course 1 | Course 1 | C1 |
121       | CAT1 | Course 2 | Course 2 | C2 |
122       | CAT1 | Course 3 | Course 3 | C3 |
124     And I log in as "admin"
125     And I go to the courses management page
126     And I should see the "Course categories" management page
127     And I click on category "Cat 1" in the management interface
128     # Redirect.
129     And I should see the "Course categories and courses" management page
130     And I should see "Course categories" in the "#category-listing h3" "css_element"
131     And I should see "Cat 1" in the "#category-listing" "css_element"
132     And I click on "Sort courses" "link"
133     And I click on "By idnumber" "link" in the ".course-listing-actions" "css_element"
134     # Redirect.
135     And I should see the "Course categories and courses" management page
136     And I should see course listing "Course 1" before "Course 2"
137     And I should see course listing "Course 2" before "Course 3"
138     And I click to move course "C1" down one
139     # AJAX, no redirect.
140     And I should see course listing "Course 2" before "Course 1"
141     And I should see course listing "Course 1" before "Course 3"
142     And I click to move course "C3" up one
143     # AJAX, no redirect.
144     And I should see course listing "Course 2" before "Course 3"
145     And I should see course listing "Course 3" before "Course 1"