MDL-51709 gradebook: Name display in single view.
[moodle.git] / grade / report / singleview / tests / behat / singleview.feature
1 @core @core_grades @gradereport_singleview
2 Feature: We can use Single view
3   As a teacher
4   In order to view and edit grades
5   For users and activities for a course.
7   Background:
8     Given the following "courses" exist:
9       | fullname | shortname | category |
10       | Course 1 | C1 | 0 |
11     And the following "users" exist:
12       | username | firstname | lastname    | email                | idnumber | middlename | alternatename | firstnamephonetic | lastnamephonetic |
13       | teacher1 | Teacher   | 1           | teacher1@example.com | t1       |            | fred          |                   |                  |
14       | teacher2 | No edit   | 1           | teacher2@example.com | t2       |            | nick          |                   |                  |
15       | student1 | Grainne   | Beauchamp   | student1@example.com | s1       | Ann        | Jill          | Gronya            | Beecham          |
16       | student2 | Niamh     | Cholmondely | student2@example.com | s2       | Jane       | Nina          | Nee               | Chumlee          |
17       | student3 | Siobhan   | Desforges   | student3@example.com | s3       | Sarah      | Sev           | Shevon            | De-forjay        |
18       | student4 | Student   | 4           | student4@example.com | s4       |            | zac           |                   |                  |
19     And the following "scales" exist:
20       | name | scale |
21       | Test Scale | Disappointing, Good, Very good, Excellent |
22     And the following "grade items" exist:
23       | itemname | course | gradetype | scale |
24       | new grade item 1 | C1 | Scale | Test Scale |
25     And the following "scales" exist:
26       | name       | scale                                     |
27       | Test Scale | Disappointing, Good, Very good, Excellent |
28     And the following "course enrolments" exist:
29       | user | course | role |
30       | teacher1 | C1 | editingteacher |
31       | teacher2 | C1 | teacher |
32       | student1 | C1 | student |
33       | student2 | C1 | student |
34       | student3 | C1 | student |
35       | student4 | C1 | student |
36     And the following "grade categories" exist:
37       | fullname | course |
38       | Sub category 1 | C1|
39       | Sub category 2 | C1|
40     And the following "activities" exist:
41       | activity | course | idnumber | name | intro | grade |
42       | assign | C1 | a1 | Test assignment one | Submit something! | 300 |
43       | assign | C1 | a2 | Test assignment two | Submit something! | 100 |
44       | assign | C1 | a3 | Test assignment three | Submit something! | 150 |
45       | assign | C1 | a4 | Test assignment four | Submit nothing! | 150 |
46     And the following "grade items" exist:
47       | itemname | course | gradetype |
48       | Test grade item | C1 | Scale |
49     And the following "permission overrides" exist:
50       | capability                  | permission | role     | contextlevel  | reference |
51       | moodle/grade:edit           | Allow      | teacher  | Course        | C1        |
52       | gradereport/singleview:view | Allow      | teacher  | Course        | C1        |
53     And the following config values are set as admin:
54       | fullnamedisplay | firstnamephonetic,lastnamephonetic |
55       | alternativefullnameformat | middlename, alternatename, firstname, lastname |
56     And I log in as "teacher1"
57     And I am on "Course 1" course homepage
58     Given I navigate to "View > Grader report" in the course gradebook
60   @javascript
61   Scenario: I can update grades, add feedback and exclude grades.
62     Given I navigate to "View > Single view" in the course gradebook
63     And I select "Student" from the "Select user..." singleselect
64     And I set the field "Override for Test assignment one" to "1"
65     When I set the following fields to these values:
66         | Grade for Test assignment one | 10.00 |
67         | Feedback for Test assignment one | test data |
68     And I set the field "Exclude for Test assignment four" to "1"
69     And I press "Save"
70     Then I should see "Grades were set for 2 items"
71     And I press "Continue"
72     And the field "Exclude for Test assignment four" matches value "1"
73     And the field "Grade for Test assignment one" matches value "10.00"
74     And I set the following fields to these values:
75         | Test grade item | 45 |
76     And I press "Save"
77     Then I should see "Grades were set for 1 items"
78     And I press "Continue"
79     And the field "Grade for Test grade item" matches value "45.00"
80     And the field "Grade for Course total" matches value "55.00"
81     And I click on "Show grades for Test assignment three" "link"
82     And I click on "Override for Ann, Jill, Grainne, Beauchamp" "checkbox"
83     And I set the following fields to these values:
84         | Grade for Ann, Jill, Grainne, Beauchamp | 12.05 |
85         | Feedback for Ann, Jill, Grainne, Beauchamp | test data2 |
86     And I set the field "Exclude for Jane, Nina, Niamh, Cholmondely" to "1"
87     And I press "Save"
88     Then I should see "Grades were set for 2 items"
89     And I press "Continue"
90     And the field "Grade for Ann, Jill, Grainne, Beauchamp" matches value "12.05"
91     And the field "Exclude for Jane, Nina, Niamh, Cholmondely" matches value "1"
92     And I select "new grade item 1" from the "Select grade item..." singleselect
93     And I set the field "Grade for Ann, Jill, Grainne, Beauchamp" to "Very good"
94     And I press "Save"
95     Then I should see "Grades were set for 1 items"
96     And I press "Continue"
97     And the following should exist in the "generaltable" table:
98         | First name (Alternate name) Surname | Grade |
99         | Ann, Jill, Grainne, Beauchamp | Very good |
100     And I log out
101     And I log in as "teacher2"
102     And I am on "Course 1" course homepage
103     Given I navigate to "View > Single view" in the course gradebook
104     And I select "Student" from the "Select user..." singleselect
105     And the "Exclude for Test assignment one" "checkbox" should be disabled
106     And the "Override for Test assignment one" "checkbox" should be enabled
108   Scenario: Single view links work on grade report.
109     Given I follow "Single view for Test assignment one"
110     Then I should see "Test assignment one"
111     Then I navigate to "View > Grader report" in the course gradebook
112     And I follow "Single view for Ann, Jill, Grainne, Beauchamp"
113     Then I should see "Gronya,Beecham"
115   Scenario: I can bulk update grades.
116     Given I follow "Single view for Ann, Jill, Grainne, Beauchamp"
117     Then I should see "Gronya,Beecham"
118     When I set the field "For" to "All grades"
119     And I set the field "Insert value" to "1.0"
120     And I set the field "Perform bulk insert" to "1"
121     And I press "Save"
122     Then I should see "Grades were set for 6 items"
124   Scenario: Navigation works in the Single view.
125     Given I follow "Single view for Ann, Jill, Grainne, Beauchamp"
126     Then I should see "Gronya,Beecham"
127     And I follow "Nee,Chumlee"
128     Then I should see "Nee,Chumlee"
129     And I follow "Gronya,Beecham"
130     Then I should see "Gronya,Beecham"
131     And I click on "Show grades for Test assignment four" "link"
132     Then I should see "Test assignment four"
133     And I follow "Test assignment three"
134     Then I should see "Test assignment three"
135     And I follow "Test assignment four"
136     Then I should see "Test assignment four"
138   Scenario: Activities are clickable only when
139     it has a valid activity page.
140     Given I follow "Single view for Ann, Jill, Grainne, Beauchamp"
141     And "new grade item 1" "link" should not exist in the "//tbody//tr[position()=1]//td[position()=2]" "xpath_element"
142     Then "Category total" "link" should not exist in the "//tbody//tr[position()=2]//td[position()=2]" "xpath_element"
143     And "Course total" "link" should not exist in the "//tbody//tr[position()=last()]//td[position()=2]" "xpath_element"