From cb2cf2fed37dd159e9740e9643525dc236d36a75 Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Wed, 12 Nov 2014 12:23:54 +1300 Subject: [PATCH] MDL-48189 grade: letters now covered by behat --- grade/edit/letter/index.php | 1 + .../tests/behat/grade_override_letter.feature | 207 ++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 grade/tests/behat/grade_override_letter.feature diff --git a/grade/edit/letter/index.php b/grade/edit/letter/index.php index 89a59121d1be6..025584bc825df 100644 --- a/grade/edit/letter/index.php +++ b/grade/edit/letter/index.php @@ -104,6 +104,7 @@ echo $editlink; $table = new html_table(); + $table->id = 'grade-letters-view'; $table->head = array(get_string('max', 'grades'), get_string('min', 'grades'), get_string('letter', 'grades')); $table->size = array('30%', '30%', '40%'); $table->align = array('left', 'left', 'left'); diff --git a/grade/tests/behat/grade_override_letter.feature b/grade/tests/behat/grade_override_letter.feature new file mode 100644 index 0000000000000..3e205623eb270 --- /dev/null +++ b/grade/tests/behat/grade_override_letter.feature @@ -0,0 +1,207 @@ +@core @core_grades +Feature: Grade letters can be overridden + In order to test the grade letters functionality + As a teacher I override site defaults + and alter the grade letters + + Background: + Given the following "courses" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "users" exist: + | username | firstname | lastname | email | idnumber | + | teacher1 | Teacher | 1 | teacher1@asd.com | t1 | + And the following "course enrolments" exist: + | user | course | role | + | teacher1 | C1 | editingteacher | + And I log in as "teacher1" + And I follow "Course 1" + And I follow "Grades" + And I follow "Letters" + And I follow "Edit grade letters" + + Scenario Outline: Grade letters can be completely overridden + When I set the following fields to these values: + | override | 1 | + | Grade letter 1 | | + | gradeboundary1 | | + | Grade letter 2 | | + | gradeboundary2 | | + | Grade letter 3 | | + | gradeboundary3 | | + | Grade letter 4 | | + | gradeboundary4 | | + | Grade letter 5 | | + | gradeboundary5 | | + | Grade letter 6 | | + | gradeboundary6 | | + | Grade letter 7 | | + | gradeboundary7 | | + | Grade letter 8 | | + | gradeboundary8 | | + | Grade letter 9 | | + | gradeboundary9 | | + | Grade letter 10 | | + | gradeboundary10 | | + | Grade letter 11 | | + | gradeboundary11 | | + | Grade letter 12 | | + | gradeboundary12 | | + | Grade letter 13 | | + | gradeboundary13 | | + | Grade letter 14 | | + | gradeboundary14 | | + And I press "Save changes" + Then I should see "The default grade letters are currently overridden." + And the following should exist in the "grade-letters-view" table: + | Highest | Lowest | Letter | + | | | | + | | | | + | | | | + | | | | + | | | | + | | | | + + Examples: + | 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 | + | 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 | + | 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 | + | 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- | + | | | | | | | 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- | + | | | 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- | + + Scenario: I delete a grade letter + Given I set the following fields to these values: + | override | 1 | + | Grade letter 1 | A | + | gradeboundary1 | 90 | + | Grade letter 2 | B | + | gradeboundary2 | 80 | + | Grade letter 3 | C | + | gradeboundary3 | 50 | + | Grade letter 4 | D | + | gradeboundary4 | 40 | + | Grade letter 5 | E | + | gradeboundary5 | 20 | + | Grade letter 6 | F | + | gradeboundary6 | 0 | + | Grade letter 7 | | + | gradeboundary7 | | + | Grade letter 8 | | + | gradeboundary8 | | + | Grade letter 9 | | + | gradeboundary9 | | + | Grade letter 10 | | + | gradeboundary10 | | + | Grade letter 11 | | + | gradeboundary11 | | + | Grade letter 12 | | + | gradeboundary12 | | + | Grade letter 13 | | + | gradeboundary13 | | + | Grade letter 14 | | + | gradeboundary14 | | + And I press "Save changes" + And I should see "The default grade letters are currently overridden." + And the following should exist in the "grade-letters-view" table: + | Highest | Lowest | Letter | + | 100.00 % | 90.00 % | A | + | 89.99 % | 80.00 % | B | + | 79.99 % | 50.00 % | C | + | 49.99 % | 40.00 % | D | + | 39.99 % | 20.00 % | E | + | 19.99 % | 0.00 % | F | + When I follow "Edit grade letters" + And I set the following fields to these values: + | override | 1 | + | Grade letter 1 | A | + | gradeboundary1 | 90 | + | Grade letter 2 | B | + | gradeboundary2 | 80 | + | Grade letter 3 | C | + | gradeboundary3 | 50 | + | Grade letter 4 | D | + | gradeboundary4 | 40 | + | Grade letter 5 | | + | gradeboundary5 | | + | Grade letter 6 | F | + | gradeboundary6 | 0 | + And I press "Save changes" + Then I should see "The default grade letters are currently overridden." + And the following should exist in the "grade-letters-view" table: + | Highest | Lowest | Letter | + | 100.00 % | 90.00 % | A | + | 89.99 % | 80.00 % | B | + | 79.99 % | 50.00 % | C | + | 49.99 % | 40.00 % | D | + | 39.99 % | 0.00 % | F | + + Scenario: I override grade letters for a second time + Given I set the following fields to these values: + | override | 1 | + | Grade letter 1 | A+ | + | gradeboundary1 | 90 | + | Grade letter 2 | A | + | gradeboundary2 | 80 | + | Grade letter 3 | B+ | + | gradeboundary3 | 70 | + | Grade letter 4 | B | + | gradeboundary4 | 60 | + | Grade letter 5 | C | + | gradeboundary5 | 50 | + | Grade letter 6 | D | + | gradeboundary6 | 40 | + | Grade letter 7 | F | + | gradeboundary7 | 0 | + | Grade letter 8 | | + | gradeboundary8 | | + | Grade letter 9 | | + | gradeboundary9 | | + | Grade letter 10 | | + | gradeboundary10 | | + | Grade letter 11 | | + | gradeboundary11 | | + | Grade letter 12 | | + | gradeboundary12 | | + | Grade letter 13 | | + | gradeboundary13 | | + | Grade letter 14 | | + | gradeboundary14 | | + And I press "Save changes" + And I should see "The default grade letters are currently overridden." + And the following should exist in the "grade-letters-view" table: + | Highest | Lowest | Letter | + | 100.00 % | 90.00 % | A+ | + | 89.99 % | 80.00 % | A | + | 79.99 % | 70.00 % | B+ | + | 69.99 % | 60.00 % | B | + | 59.99 % | 50.00 % | C | + | 49.99 % | 40.00 % | D | + | 39.99 % | 0.00 % | F | + When I follow "Edit grade letters" + And I set the following fields to these values: + | override | 1 | + | Grade letter 1 | α | + | gradeboundary1 | 95 | + | Grade letter 2 | β | + | gradeboundary2 | 85 | + | Grade letter 3 | γ | + | gradeboundary3 | 70 | + | Grade letter 4 | δ | + | gradeboundary4 | 55 | + | Grade letter 5 | | + | gradeboundary5 | | + | Grade letter 6 | Ω | + | gradeboundary6 | 0 | + | Grade letter 7 | π | + | gradeboundary7 | 90 | + And I press "Save changes" + Then I should see "The default grade letters are currently overridden." + And the following should exist in the "grade-letters-view" table: + | Highest | Lowest | Letter | + | 100.00 % | 95.00 % | α | + | 94.99 % | 90.00 % | π | + | 89.99 % | 85.00 % | β | + | 84.99 % | 70.00 % | γ | + | 69.99 % | 55.00 % | δ | + | 54.99 % | 0.00 % | Ω | \ No newline at end of file