1@core @core_grades
2Feature: Grade letters can be overridden
3  In order to test the grade letters functionality
4  As a teacher I override site defaults
5  and alter the grade letters
6
7  Background:
8    Given the following "courses" exist:
9      | fullname | shortname |
10      | Course 1 | C1        |
11    And the following "users" exist:
12      | username | firstname | lastname | email            | idnumber |
13      | teacher1 | Teacher   | 1        | teacher1@example.com | t1       |
14    And the following "course enrolments" exist:
15      | user     | course | role           |
16      | teacher1 | C1     | editingteacher |
17    And I log in as "teacher1"
18    And I am on "Course 1" course homepage
19    And I navigate to "Letters > Edit" in the course gradebook
20
21  Scenario Outline: Grade letters can be completely overridden
22    When I set the following fields to these values:
23      | override               | 1    |
24      | Grade letter 1         | <l1> |
25      | gradeboundary1         | <b1> |
26      | Grade letter 2         | <l2> |
27      | gradeboundary2         | <b2> |
28      | Grade letter 3         | <l3> |
29      | gradeboundary3         | <b3> |
30      | Grade letter 4         | <l4> |
31      | gradeboundary4         | <b4> |
32      | Grade letter 5         | <l5> |
33      | gradeboundary5         | <b5> |
34      | Grade letter 6         | <l6> |
35      | gradeboundary6         | <b6> |
36      | Grade letter 7         | <l7> |
37      | gradeboundary7         | <b7> |
38      | Grade letter 8         | <l8> |
39      | gradeboundary8         | <b8> |
40      | Grade letter 9         | <l9> |
41      | gradeboundary9         | <b9> |
42      | Grade letter 10        |      |
43      | gradeboundary10        |      |
44      | Grade letter 11        |      |
45      | gradeboundary11        |      |
46      | Grade letter 12        |      |
47      | gradeboundary12        |      |
48      | Grade letter 13        |      |
49      | gradeboundary13        |      |
50      | Grade letter 14        |      |
51      | gradeboundary14        |      |
52    And I press "Save changes"
53    Then I should see "The default grade letters are currently overridden."
54    And the following should exist in the "grade-letters-view" table:
55      | Highest | Lowest | Letter    |
56      | <high1> | <low1> | <letter1> |
57      | <high2> | <low2> | <letter2> |
58      | <high3> | <low3> | <letter3> |
59      | <high4> | <low4> | <letter4> |
60      | <high5> | <low5> | <letter5> |
61      | <high6> | <low6> | <letter6> |
62
63    Examples:
64      | l1 | b1    | l2 | b2    | l3 | b3    | l4 | b4    | l5 | b5    | l6 | b6    | l7 | b7 | l8 | b8   | l9 | b9 | high1    | low1     | letter1 | high2   | low2    | letter2 | high3    | low3    | letter3 | high4    | low4    | letter4 | high5    | low5    | letter5 | high6    | low6    | letter6 |
65      | Z  | 95    | Y  | 85    | X  | 75    | W  | 65    | V  | 55    | U  | 45    |    |    |    |      |    |    | 100.00 % | 95.00 %  | Z       | 94.99 % | 85.00 % | Y       | 84.99 %  | 75.00 % | X       | 74.99 %  | 65.00 % | W       | 64.99 %  | 55.00 % | V       | 54.99 %  | 45.00 % | U       |
66      | 5  | 100   | 4  | 80    | 3  | 60    | 2  | 40    | 1  | 20    | 0  | 0     |    |    |    |      |    |    | 100.00 % | 100.00 % | 5       | 99.99 % | 80.00 % | 4       | 79.99 %  | 60.00 % | 3       | 59.99 %  | 40.00 % | 2       | 39.99 %  | 20.00 % | 1       | 19.99 %  | 0.00 %  | 0       |
67      | A  | 95.25 | B  | 76.75 | C  | 50.01 | D  | 40    | F  | 0.01  | F- | 0     |    |    |    |      |    |    | 100.00 % | 95.25 %  | A       | 95.24 % | 76.75 % | B       | 76.74 %  | 50.01 % | C       | 50.00 %  | 40.00 % | D       | 39.99 %  | 0.01 %  | F       | 0.00 %   | 0.00 %  | F-      |
68      |    |       |    |       |    |       | A  | 95.25 | B  | 76.75 | C  | 50.01 | D  | 40 | F  | 0.01 | F- | 0  | 100.00 % | 95.25 %  | A       | 95.24 % | 76.75 % | B       | 76.74 %  | 50.01 % | C       | 50.00 %  | 40.00 % | D       | 39.99 %  | 0.01 %  | F       | 0.00 %   | 0.00 %  | F-      |
69      |    |       | A  | 95.25 | B  | 76.75 | C  | 50.01 |    |       |    |       | D  | 40 | F  | 0.01 | F- | 0  | 100.00 % | 95.25 %  | A       | 95.24 % | 76.75 % | B       | 76.74 %  | 50.01 % | C       | 50.00 %  | 40.00 % | D       | 39.99 %  | 0.01 %  | F       | 0.00 %   | 0.00 %  | F-      |
70
71  Scenario: I delete a grade letter
72    Given I set the following fields to these values:
73      | override               | 1  |
74      | Grade letter 1         | A  |
75      | gradeboundary1         | 90 |
76      | Grade letter 2         | B  |
77      | gradeboundary2         | 80 |
78      | Grade letter 3         | C  |
79      | gradeboundary3         | 50 |
80      | Grade letter 4         | D  |
81      | gradeboundary4         | 40 |
82      | Grade letter 5         | E  |
83      | gradeboundary5         | 20 |
84      | Grade letter 6         | F  |
85      | gradeboundary6         | 0  |
86      | Grade letter 7         |    |
87      | gradeboundary7         |    |
88      | Grade letter 8         |    |
89      | gradeboundary8         |    |
90      | Grade letter 9         |    |
91      | gradeboundary9         |    |
92      | Grade letter 10        |    |
93      | gradeboundary10        |    |
94      | Grade letter 11        |    |
95      | gradeboundary11        |    |
96      | Grade letter 12        |    |
97      | gradeboundary12        |    |
98      | Grade letter 13        |    |
99      | gradeboundary13        |    |
100      | Grade letter 14        |    |
101      | gradeboundary14        |    |
102    And I press "Save changes"
103    And I should see "The default grade letters are currently overridden."
104    And the following should exist in the "grade-letters-view" table:
105      | Highest  | Lowest   | Letter |
106      | 100.00 % | 90.00 %  | A      |
107      | 89.99 %  | 80.00 %  | B      |
108      | 79.99 %  | 50.00 %  | C      |
109      | 49.99 %  | 40.00 %  | D      |
110      | 39.99 %  | 20.00 %  | E      |
111      | 19.99 %  | 0.00 %   | F      |
112    When I follow "Edit grade letters"
113    And I set the following fields to these values:
114      | override               | 1  |
115      | Grade letter 1         | A  |
116      | gradeboundary1         | 90 |
117      | Grade letter 2         | B  |
118      | gradeboundary2         | 80 |
119      | Grade letter 3         | C  |
120      | gradeboundary3         | 50 |
121      | Grade letter 4         | D  |
122      | gradeboundary4         | 40 |
123      | Grade letter 5         |    |
124      | gradeboundary5         |    |
125      | Grade letter 6         | F  |
126      | gradeboundary6         | 0  |
127    And I press "Save changes"
128    Then I should see "The default grade letters are currently overridden."
129    And the following should exist in the "grade-letters-view" table:
130      | Highest  | Lowest   | Letter |
131      | 100.00 % | 90.00 %  | A      |
132      | 89.99 %  | 80.00 %  | B      |
133      | 79.99 %  | 50.00 %  | C      |
134      | 49.99 %  | 40.00 %  | D      |
135      | 39.99 %  | 0.00 %   | F      |
136
137  Scenario: I override grade letters for a second time
138    Given I set the following fields to these values:
139      | override               | 1  |
140      | Grade letter 1         | A+ |
141      | gradeboundary1         | 90 |
142      | Grade letter 2         | A  |
143      | gradeboundary2         | 80 |
144      | Grade letter 3         | B+ |
145      | gradeboundary3         | 70 |
146      | Grade letter 4         | B  |
147      | gradeboundary4         | 60 |
148      | Grade letter 5         | C  |
149      | gradeboundary5         | 50 |
150      | Grade letter 6         | D  |
151      | gradeboundary6         | 40 |
152      | Grade letter 7         | F  |
153      | gradeboundary7         | 0  |
154      | Grade letter 8         |    |
155      | gradeboundary8         |    |
156      | Grade letter 9         |    |
157      | gradeboundary9         |    |
158      | Grade letter 10        |    |
159      | gradeboundary10        |    |
160      | Grade letter 11        |    |
161      | gradeboundary11        |    |
162      | Grade letter 12        |    |
163      | gradeboundary12        |    |
164      | Grade letter 13        |    |
165      | gradeboundary13        |    |
166      | Grade letter 14        |    |
167      | gradeboundary14        |    |
168    And I press "Save changes"
169    And I should see "The default grade letters are currently overridden."
170    And the following should exist in the "grade-letters-view" table:
171      | Highest  | Lowest   | Letter |
172      | 100.00 % | 90.00 %  | A+     |
173      | 89.99 %  | 80.00 %  | A      |
174      | 79.99 %  | 70.00 %  | B+     |
175      | 69.99 %  | 60.00 %  | B      |
176      | 59.99 %  | 50.00 %  | C      |
177      | 49.99 %  | 40.00 %  | D      |
178      | 39.99 %  | 0.00 %   | F      |
179    When I follow "Edit grade letters"
180    And I set the following fields to these values:
181      | override               | 1  |
182      | Grade letter 1         | α  |
183      | gradeboundary1         | 95 |
184      | Grade letter 2         | β  |
185      | gradeboundary2         | 85 |
186      | Grade letter 3         | γ  |
187      | gradeboundary3         | 70 |
188      | Grade letter 4         | δ  |
189      | gradeboundary4         | 55 |
190      | Grade letter 5         |    |
191      | gradeboundary5         |    |
192      | Grade letter 6         | Ω  |
193      | gradeboundary6         | 0  |
194      | Grade letter 7         | π  |
195      | gradeboundary7         | 90 |
196    And I press "Save changes"
197    Then I should see "The default grade letters are currently overridden."
198    And the following should exist in the "grade-letters-view" table:
199      | Highest  | Lowest   | Letter |
200      | 100.00 % | 95.00 %  | α      |
201      | 94.99 %  | 90.00 %  | π      |
202      | 89.99 %  | 85.00 %  | β      |
203      | 84.99 %  | 70.00 %  | γ      |
204      | 69.99 %  | 55.00 %  | δ      |
205      | 54.99 %  | 0.00 %   | Ω      |
206