MDL-47463 core_grades: Behat checks the contribution of single item scales
authorFrederic Massart <fred@moodle.com>
Mon, 13 Oct 2014 07:52:13 +0000 (15:52 +0800)
committerFrederic Massart <fred@moodle.com>
Mon, 13 Oct 2014 10:23:03 +0000 (18:23 +0800)
grade/tests/behat/grade_single_item_scales.feature [new file with mode: 0644]

diff --git a/grade/tests/behat/grade_single_item_scales.feature b/grade/tests/behat/grade_single_item_scales.feature
new file mode 100644 (file)
index 0000000..6692c49
--- /dev/null
@@ -0,0 +1,134 @@
+@core @core_grades
+Feature: View gradebook when single item scales are used
+  In order to use single item scales to grade activities
+  As an teacher
+  I need to be able to view gradebook with single item scales
+
+  Background:
+    Given I log in as "admin"
+    And I set the following administration settings values:
+      | grade_report_showranges    | 1 |
+      | grade_aggregations_visible | Mean of grades,Weighted mean of grades,Simple weighted mean of grades,Mean of grades (with extra credits),Median of grades,Lowest grade,Highest grade,Mode of grades,Natural |
+    And I navigate to "Scales" node in "Site administration > Grades"
+    And I press "Add a new scale"
+    And I set the following fields to these values:
+      | Name  | Singleitem |
+      | Scale | Ace!       |
+    And I press "Save changes"
+    And I log out
+    And 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       |
+      | student1 | Student   | 1        | student1@asd.com | s1       |
+      | student2 | Student   | 2        | student2@asd.com | s2       |
+    And the following "course enrolments" exist:
+      | user     | course | role           |
+      | teacher1 | C1     | editingteacher |
+      | student1 | C1     | student        |
+      | student2 | C1     | student        |
+    And the following "grade categories" exist:
+      | fullname       | course |
+      | Sub category 1 | C1     |
+    And the following "activities" exist:
+      | activity | course | idnumber | name                | intro             | gradecategory  |
+      | assign   | C1     | a1       | Test assignment one | Submit something! | Sub category 1 |
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I follow "Test assignment one"
+    And I follow "Edit settings"
+    And I expand all fieldsets
+    And I set the field "grade[modgrade_type]" to "Scale"
+    And I set the field "grade[modgrade_scale]" to "Singleitem"
+    And I press "Save and display"
+    And I follow "View/grade all submissions"
+    And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
+    And I set the field "Grade" to "A"
+    And I press "Save changes"
+    And I follow "Course 1"
+    And I follow "Grades"
+    And I navigate to "Course grade settings" node in "Grade administration > Setup"
+    And I set the field "Show weightings" to "Show"
+    And I set the field "Show contribution to course total" to "Show"
+    And I press "Save changes"
+    And I follow "Grader report"
+    And I turn editing mode on
+
+  @javascript
+  Scenario: Test displaying single item scales in gradebook in aggregation method Natural
+    When I turn editing mode off
+    Then the following should exist in the "user-grades" table:
+      | -1-                | -4-       | -5-            | -6-          |
+      | Student 1          | Ace!      | 1.00           | 1.00         |
+    And the following should exist in the "user-grades" table:
+      | -1-                | -2-       | -3-            | -4-          |
+      | Range              | Ace!–Ace! | 0.00–1.00      | 0.00–1.00    |
+      | Overall average    | Ace!      | 1.00           | 1.00         |
+    And I follow "User report"
+    And I set the field "Select all or one user" to "Student 1"
+    And the following should exist in the "user-grade" table:
+      | Grade item          | Grade | Range     | Contribution to course total |
+      | Test assignment one | Ace!  | Ace!–Ace! | 1.00                         |
+      | Category total      | 1.00  | 0–1       | -                            |
+      | Course total        | 1.00  | 0–1       | -                            |
+    And I set the field "Select all or one user" to "Student 2"
+    And the following should exist in the "user-grade" table:
+      | Grade item          | Grade | Range     | Contribution to course total |
+      | Test assignment one | -     | Ace!–Ace! | 0.00                         |
+      | Category total      | -     | 0–1       | -                            |
+      | Course total        | -     | 0–1       | -                            |
+    And I set the field "jump" to "Categories and items"
+    And the following should exist in the "grade_edit_tree_table" table:
+      | Name                | Max grade |
+      | Test assignment one | 1.00      |
+      | Category total      | 1.00      |
+      | Course total        | 1.00      |
+
+  @javascript
+  Scenario Outline: Test displaying single item scales in gradebook in all other aggregation methods
+    When I follow "Edit   Course 1"
+    And I set the field "Aggregation" to "<aggregation>"
+    And I press "Save changes"
+    And I follow "Edit   Sub category 1"
+    And I expand all fieldsets
+    And I set the field "Aggregation" to "<aggregation>"
+    And I set the field "Category name" to "Sub category (<aggregation>)"
+    # And I set the field "Maximum grade" to "5"
+    # And I set the field "Minimum grade" to "1"
+    And I press "Save changes"
+    And I turn editing mode off
+    Then the following should exist in the "user-grades" table:
+      | -1-                | -4-       | -5-            | -6-            |
+      | Student 1          | Ace!      | <cattotal1>    | <coursetotal1> |
+      | Student 2          | -         | -              | -              |
+    And the following should exist in the "user-grades" table:
+      | -1-                | -2-       | -3-            | -4-            |
+      | Range              | Ace!–Ace! | 0.00–100.0     | 0.00–100.00    |
+      | Overall average    | Ace!      | <catavg>       | <overallavg>   |
+    And I follow "User report"
+    And I set the field "Select all or one user" to "Student 1"
+    And I click on "Select all or one user" "select"
+    And the following should exist in the "user-grade" table:
+      | Grade item                        | Grade          | Range       | Contribution to course total |
+      | Test assignment one               | Ace!           | Ace!–Ace!   | <contrib1>                   |
+      | Category total<aggregation>.      | <cattotal1>    | 0–100       | -                            |
+      | Course total<aggregation>.        | <coursetotal1> | 0–100       | -                            |
+    And I set the field "jump" to "Categories and items"
+    And the following should exist in the "grade_edit_tree_table" table:
+      | Name                         | Max grade |
+      | Test assignment one          | Ace! (1)  |
+      | Category total<aggregation>. | 100.00    |
+      | Course total<aggregation>.   | 100.00    |
+
+    Examples:
+      | aggregation                         | contrib1 | cattotal1 | coursetotal1 | catavg | overallavg |
+      | Mean of grades                      | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |
+      | Weighted mean of grades             | 0.00     | 100.00    | -            | 100.00 | -          |
+      | Simple weighted mean of grades      | 0.00     | -         | -            | -      | -          |
+      | Mean of grades (with extra credits) | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |
+      | Median of grades                    | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |
+      | Lowest grade                        | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |
+      | Highest grade                       | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |
+      | Mode of grades                      | 100.00   | 100.00    | 100.00       | 100.00 | 100.00     |