MDL-49324 grades: Remove unnecessary @javascript tag from tests
[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 | alternatename |
13       | teacher1 | Teacher | 1 | teacher1@example.com | t1 | fred |
14       | student1 | Student | 1 | student1@example.com | s1 | james |
15       | student2 | Student | 2 | student1@example.com | s2 | holly |
16       | student3 | Student | 3 | student1@example.com | s3 | anna |
17       | student4 | Student | 4 | student1@example.com | s4 | zac |
18     And the following "scales" exist:
19       | name | scale |
20       | Test Scale | Disappointing, Good, Very good, Excellent |
21     And the following "grade items" exist:
22       | itemname | course | gradetype | scale |
23       | new grade item 1 | C1 | Scale | Test Scale |
24     And the following "scales" exist:
25       | name       | scale                                     |
26       | Test Scale | Disappointing, Good, Very good, Excellent |
27     And the following "course enrolments" exist:
28       | user | course | role |
29       | teacher1 | C1 | editingteacher |
30       | student1 | C1 | student |
31       | student2 | C1 | student |
32       | student3 | C1 | student |
33       | student4 | C1 | student |
34     And the following "grade categories" exist:
35       | fullname | course |
36       | Sub category 1 | C1|
37       | Sub category 2 | C1|
38     And the following "activities" exist:
39       | activity | course | idnumber | name | intro | grade |
40       | assign | C1 | a1 | Test assignment one | Submit something! | 300 |
41       | assign | C1 | a2 | Test assignment two | Submit something! | 100 |
42       | assign | C1 | a3 | Test assignment three | Submit something! | 150 |
43       | assign | C1 | a4 | Test assignment four | Submit nothing! | 150 |
44     And the following "grade items" exist:
45       | itemname | course | gradetype |
46       | Test grade item | C1 | Scale |
47     And I log in as "teacher1"
48     And I follow "Course 1"
49     And I navigate to "Grades" node in "Course administration"
51   @javascript
52   Scenario: I can update grades, add feedback and exclude grades.
53     Given I select "Single view" from the "Grade report" singleselect
54     And I select "Student 4" from the "Select user..." singleselect
55     And I set the field "Override for Test assignment one" to "1"
56     When I set the following fields to these values:
57         | Grade for Test assignment one | 10.00 |
58         | Feedback for Test assignment one | test data |
59     And I set the field "Exclude for Test assignment four" to "1"
60     And I press "Save"
61     Then I should see "Grades were set for 2 items"
62     And I press "Continue"
63     And the field "Exclude for Test assignment four" matches value "1"
64     And the field "Grade for Test assignment one" matches value "10.00"
65     And I set the following fields to these values:
66         | Test grade item | 45 |
67     And I press "Save"
68     Then I should see "Grades were set for 1 items"
69     And I press "Continue"
70     And the field "Grade for Test grade item" matches value "45.00"
71     And the field "Grade for Course total" matches value "55.00"
72     And I click on "Show grades for Test assignment three" "link"
73     And I click on "Override for james (Student) 1" "checkbox"
74     And I set the following fields to these values:
75         | Grade for james (Student) 1 | 12.05 |
76         | Feedback for james (Student) 1 | test data2 |
77     And I set the field "Exclude for holly (Student) 2" to "1"
78     And I press "Save"
79     Then I should see "Grades were set for 2 items"
80     And I press "Continue"
81     And the field "Grade for james (Student) 1" matches value "12.05"
82     And the field "Exclude for holly (Student) 2" matches value "1"
83     And I select "new grade item 1" from the "Select grade item..." singleselect
84     And I click on "Very good" "option"
85     And I press "Save"
86     Then I should see "Grades were set for 1 items"
87     And I press "Continue"
88     And the following should exist in the "generaltable" table:
89         | First name (Alternate name) Surname | Grade |
90         | james (Student) 1 | Very good |
92   Scenario: Single view links work on grade report.
93     Given I follow "Single view for Test assignment one"
94     Then I should see "Test assignment one"
95     Then I follow "Grader report"
96     And I follow "Single view for Student 1"
97     Then I should see "Student 1"
99   Scenario: I can bulk update grades.
100     Given I follow "Single view for Student 1"
101     Then I should see "Student 1"
102     When I set the field "For" to "All grades"
103     And I set the field "Insert value" to "1.0"
104     And I set the field "Perform bulk insert" to "1"
105     And I press "Save"
106     Then I should see "Grades were set for 8 items"
108   Scenario: Navigation works in the Single view.
109     Given I follow "Single view for Student 1"
110     Then I should see "Student 1"
111     And I follow "Student 2"
112     Then I should see "Student 2"
113     And I follow "Student 1"
114     Then I should see "Student 1"
115     And I click on "Show grades for Test assignment four" "link"
116     Then I should see "Test assignment four"
117     And I follow "Test assignment three"
118     Then I should see "Test assignment three"
119     And I follow "Test assignment four"
120     Then I should see "Test assignment four"
122   Scenario: Activities are clickable only when
123     it has a valid activity page.
124     Given I follow "Single view for Student 1"
125     And "new grade item 1" "link" should not exist in the "//tbody//tr[position()=1]//td[position()=2]" "xpath_element"
126     Then "Category total" "link" should not exist in the "//tbody//tr[position()=2]//td[position()=2]" "xpath_element"
127     And "Course total" "link" should not exist in the "//tbody//tr[position()=last()]//td[position()=2]" "xpath_element"