Rev 1 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
@core @javascript @gradereport_grader
Feature: Within the grader report, test that we can open our generic filter dropdown component
In order to filter down the users on the page
As a teacher
I need to be able to see the filter and select a combination of parameters
Background:
Given the following "courses" exist:
| fullname | shortname | category | groupmode |
| Course 1 | C1 | 0 | 1 |
And the following "users" exist:
| username | firstname | lastname | email | idnumber |
| teacher1 | Teacher | 1 | teacher1@example.com | t1 |
| student1 | Student | 1 | student1@example.com | s1 |
| student2 | Dummy | User | student2@example.com | s2 |
| student3 | User | Example | student3@example.com | s3 |
| student4 | User | Test | student4@example.com | s4 |
| student5 | Turtle | Manatee | student5@example.com | s5 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
| student3 | C1 | student |
| student4 | C1 | student |
| student5 | C1 | student |
And the following "activities" exist:
| activity | course | idnumber | name |
| assign | C1 | a1 | Test assignment one |
And I am on the "Course 1" "grades > Grader report > View" page logged in as "teacher1"
Scenario: A teacher can open the filter component
Given I should see "Filter by name"
When I click on "Filter by name" "combobox"
Then I should see "27" node occurrences of type "input" in the "First name" "core_grades > initials bar"
And I should see "27" node occurrences of type "input" in the "Last name" "core_grades > initials bar"
And "input[data-action=cancel]" "css_element" should exist
And "input[data-action=save]" "css_element" should exist
Scenario: A teacher can filter the grader report to limit users reported
Given I click on "Filter by name" "combobox"
And I wait until "input[data-action=save]" "css_element" exists
When I select "D" in the "First name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
# We should only have one user that matches the "D" first name
Then the following should exist in the "user-grades" table:
| -1- |
| Dummy User |
And the following should not exist in the "user-grades" table:
| -1- |
| Teacher 1 |
| Student 1 |
| User Example |
| User Test |
| Turtle Manatee |
# Test filtering on last name
# Business logic: If all is selected, we will not show it i.e. First (D) and NOT First (D) Last (All)
And I click on "First (D)" "combobox"
And I select "All" in the "First name" "core_grades > initials bar"
And I select "M" in the "Last name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
# We should only have one user that matches the "T" first name
And the following should exist in the "user-grades" table:
| -1- |
| Turtle Manatee |
And the following should not exist in the "user-grades" table:
| -1- |
| Teacher 1 |
| Student 1 |
| User Example |
| User Test |
| Dummy User |
# Test filtering on first && last name
And I click on "Last (M)" "combobox"
And I select "U" in the "First name" "core_grades > initials bar"
And I select "T" in the "Last name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
# We should only have one user that matches the "T" first name
And the following should exist in the "user-grades" table:
| -1- |
| User Test |
And the following should not exist in the "user-grades" table:
| -1- |
| Teacher 1 |
| Student 1 |
| User Example |
| Dummy User |
| Turtle Manatee |
# Final cheeky check to ensure our button matches.
And I click on "First (U) Last (T)" "combobox"
Scenario: A teacher can quickly tell that a filter is applied to the current table
Given I click on "Filter by name" "combobox"
And I wait until "input[data-action=save]" "css_element" exists
When I select "T" in the "First name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
Then I should see "First (T)"
# Check if removing the filter, removes the highlight and user notice of applied filters
And I click on "First (T)" "combobox"
And I wait until "input[data-action=save]" "css_element" exists
And I select "All" in the "First name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
# Check if the name button indicates if a filter is active
And I should see "Filter by name"
And I should not see "First (T)"
Scenario: A teacher can close the filter either by clicking close or clicking off the dropdown
Given I click on "Filter by name" "combobox"
And "input[data-action=save]" "css_element" should be visible
When I click on "input[data-action=cancel]" "css_element"
Then "input[data-action=save]" "css_element" should not be visible
# Click off the drop down
And I click on "Filter by name" "combobox"
And "input[data-action=save]" "css_element" should be visible
And I change window size to "large"
And I click on user profile field menu "fullname"
And "input[data-action=save]" "css_element" should not be visible
Scenario: A teacher using a language besides english can reset the initials bar
Given the following "language customisations" exist:
| component | stringid | value |
| core | all | すべて |
And I click on "Filter by name" "combobox"
And "input[data-action=save]" "css_element" should be visible
And I select "T" in the "First name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
And I click on "First (T)" "combobox"
And I wait until "input[data-action=save]" "css_element" exists
When I select "すべて" in the "First name" "core_grades > initials bar"
And I press "Apply"
And I wait to be redirected
Then I should not see "First (すべて) Last (すべて)"
And the following should exist in the "user-grades" table:
| -1- |
| Dummy User |
| Student 1 |
| User Example |
| User Test |
| Turtle Manatee |
Scenario: A teacher can search and then filter by first or last name
Given I set the field "Search users" to "Student 1"
And I click on "Student 1" in the "user" search widget
And I click on "Filter by name" "combobox"
And I select "S" in the "First name" "core_grades > initials bar"
When I press "Apply"
And the field "Search users" matches value "Student 1"
Then the following should exist in the "user-grades" table:
| -1- | -2- | -3- |
| Student 1 | student1@example.com | - |
And the following should not exist in the "user-grades" table:
| -1- | -2- | -3- |
| Teacher 1 | teacher1@example.com | - |
| Dummy User | student2@example.com | - |
| User Example | student3@example.com | - |
| User Test | student4@example.com | - |
| Turtle Manatee | student5@example.com | - |
And I click on "First (S)" "combobox"
And I select "M" in the "First name" "core_grades > initials bar"
And I press "Apply"
And the following should not exist in the "user-grades" table:
| -1- | -2- | -3- |
| Student 1 | student1@example.com | - |
| Teacher 1 | teacher1@example.com | - |
| Dummy User | student2@example.com | - |
| User Example | student3@example.com | - |
| User Test | student4@example.com | - |
| Turtle Manatee | student5@example.com | - |
Scenario: A teacher can search for all users then filter with the initials bar
Given I set the field "Search users" to "User"
And I click on "View all results (3)" "option_role"
And the following should exist in the "user-grades" table:
| -1- | -2- | -3- |
| User Example | student3@example.com | - |
| User Test | student4@example.com | - |
| Dummy User | student2@example.com | - |
And the following should not exist in the "user-grades" table:
| -1- | -2- | -3- |
| Student 1 | student1@example.com | - |
| Teacher 1 | teacher1@example.com | - |
| Turtle Manatee | student5@example.com | - |
When I click on "Filter by name" "combobox"
And I select "E" in the "Last name" "core_grades > initials bar"
And I press "Apply"
Then the following should exist in the "user-grades" table:
| -1- | -2- | -3- |
| User Example | student3@example.com | - |
And the following should not exist in the "user-grades" table:
| -1- | -2- | -3- |
| Student 1 | student1@example.com | - |
| Teacher 1 | teacher1@example.com | - |
| Dummy User | student2@example.com | - |
| User Test | student4@example.com | - |
| Turtle Manatee | student5@example.com | - |
# This can be expanded for left/right/home & end keys but will have to be done in conjunction with the non mini render.
@accessibility
Scenario: A teacher can set focus and navigate the filter with the keyboard
Given the page should meet accessibility standards
And the page should meet "wcag131, wcag141, wcag412" accessibility standards
And the page should meet accessibility standards with "wcag131, wcag141, wcag412" extra tests
And I click on "Filter by name" "combobox"
And "input[data-action=save]" "css_element" should be visible
And the focused element is "All" "button" in the "First name" "core_grades > initials bar"
When I press the tab key
Then the focused element is "input[value=A]" "css_element" in the "First name" "core_grades > initials bar"
And I press the tab key
And the focused element is "input[value=B]" "css_element" in the "First name" "core_grades > initials bar"