Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

@core @javascript @gradereport @gradereport_grader
Feature: Within the grader report, test that we can collapse columns
  In order to reduce usage of visual real estate
  As a teacher
  I need to be able to change how the report is displayed

  Background:
    Given the following "courses" exist:
      | fullname | shortname | category | groupmode |
      | Course 1 | C1        | 0        | 1         |
    And the following "grade categories" exist:
      | fullname                 | course |
      | Some cool grade category | C1     |
    And the following "custom profile fields" exist:
      | datatype | shortname | name                  |
      | text     | enduro    | Favourite enduro race |
    And the following "users" exist:
      | username | firstname | lastname | email                | idnumber | phone1     | phone2     | department | institution | city    | country  |
      | teacher1 | Teacher   | 1        | teacher1@example.com | t1       | 1234567892 | 1234567893 | ABC1       | ABCD        | Perth   | AU       |
      | student1 | Student   | 1        | student1@example.com | s1       | 3213078612 | 8974325612 | ABC1       | ABCD        | Hanoi   | VN       |
      | student2 | Dummy     | User     | student2@example.com | s2       | 4365899871 | 7654789012 | ABC2       | ABCD        | Tokyo   | JP       |
      | student3 | User      | Example  | student3@example.com | s3       | 3243249087 | 0875421745 | ABC2       | ABCD        | Olney   | GB       |
      | student4 | User      | Test     | student4@example.com | s4       | 0987532523 | 2149871323 | ABC3       | ABCD        | Tokyo   | JP       |
      | student5 | Turtle    | Manatee  | student5@example.com | s5       | 1239087780 | 9873623589 | ABC3       | ABCD        | Perth   | AU       |
    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                  | gradecategory            |
      | assign   | C1     | a1       | Test assignment one   | Some cool grade category |
      | assign   | C1     | a3       | Test assignment three | Some cool grade category |
    And the following "activities" exist:
      | activity | course | idnumber | name                  |
      | assign   | C1     | a2       | Test assignment two   |
      | assign   | C1     | a4       | Test assignment four  |
    And the following config values are set as admin:
      | showuseridentity | idnumber,email,city,country,phone1,phone2,department,institution,profile_field_enduro |
    And I change window size to "large"
    And I am on the "Course 1" "grades > Grader report > View" page logged in as "teacher1"

  Scenario: An admin collapses a user info column and then reloads the page to find the column still collapsed
    Given "Email" "text" in the "First name / Last name" "table_row" should be visible
    And I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    And I click on user profile field menu "profile_field_enduro"
    And I choose "Collapse" in the open action menu
    And "Favourite enduro race" "text" in the "First name / Last name" "table_row" should not be visible
    When I reload the page
    Then "Email" "text" in the "First name / Last name" "table_row" should not be visible
    # Check that the collapsed column is only for the user that set it.
    And I am on the "Course 1" "Course" page logged in as "admin"
    And I change window size to "large"
    And I navigate to "View > Grader report" in the course gradebook
    And "Email" "text" in the "First name / Last name" "table_row" should be visible

  Scenario: A teacher collapses a grade item column and then reloads the page to find the column still collapsed
    Given "Test assignment one" "link" in the "First name / Last name" "table_row" should be visible
    And I click on grade item menu "Test assignment one" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And "Test assignment one" "link" in the "First name / Last name" "table_row" should not be visible
    When I reload the page
    And "Test assignment one" "link" in the "First name / Last name" "table_row" should not be visible

  Scenario: When a user collapses a column, inform them within the report and tertiary nav area
    Given I click on grade item menu "Test assignment one" of type "gradeitem" on "grader" page
    When I choose "Collapse" in the open action menu
    And "Test assignment one" "link" in the "First name / Last name" "table_row" should not be visible
    Then I should see "Expand column Test assignment one"
    And I should see "Collapsed columns 1"

  Scenario: Collapsed columns can have their name searched and triggered to expand but the contents are not searched
    Given "ID number" "text" in the "First name / Last name" "table_row" should be visible
    And I click on user profile field menu "idnumber"
    And I choose "Collapse" in the open action menu
    # Opens the tertiary trigger button.
    And I click on "Collapsed columns" "combobox"
    # This is checking that the column name search dropdown exists.
    And I wait until "Search collapsed columns" "field" exists
    # Default state contains the collapsed column names.
    And I should see "ID number"
    # Search for a column that was not hidden.
    When I set the field "Search collapsed columns" to "Email"
    And I should see "No results for \"Email\""
    # Search for a ID number value inside the column that was hidden.
    Then I set the field "Search collapsed columns" to "s5"
    And I should see "No results for \"s5\""
    # Search for a column that was hidden.
    And I set the field "Search collapsed columns" to "ID"
    And I should see "ID number"

  Scenario: Expand multiple columns at once
    Given I click on grade item menu "Test assignment one" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on grade item menu "Test assignment two" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on grade item menu "Test assignment three" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on grade item menu "Test assignment four" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone1"
    And I choose "Collapse" in the open action menu
    And I click on "Collapsed columns" "combobox"
    # This is checking that the column name search dropdown exists.
    When I wait until "Search collapsed columns" "field" exists
    And I click on "Test assignment one" "checkbox" in the "form" "gradereport_grader > collapse search"
    And I click on "Test assignment three" "checkbox" in the "form" "gradereport_grader > collapse search"
    And I click on "Phone" "checkbox" in the "form" "gradereport_grader > collapse search"
    And I click on "Expand" "button" in the "form" "gradereport_grader > collapse search"
    And "Test assignment one" "link" in the "First name / Last name" "table_row" should be visible
    And "Test assignment three" "link" in the "First name / Last name" "table_row" should be visible
    And "Phone" "text" in the "First name / Last name" "table_row" should be visible
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    And "Test assignment two" "link" in the "First name / Last name" "table_row" should not be visible
    And "Test assignment four" "link" in the "First name / Last name" "table_row" should not be visible

  Scenario: If there is only one collapsed column it expands
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    When I press "Expand column Email"
    And I wait until the page is ready
    Then "Email" "text" in the "First name / Last name" "table_row" should be visible

  Scenario: When a grade item is collapsed, the grade category is shown alongside the column name.
    Given I click on grade item menu "Test assignment one" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on grade item menu "Test assignment two" of type "gradeitem" on "grader" page
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And "Test assignment one" "link" in the "First name / Last name" "table_row" should not be visible
    And "Test assignment two" "link" in the "First name / Last name" "table_row" should not be visible
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    # Opens the tertiary trigger button.
    When I click on "Collapsed columns" "combobox"
    # This is checking that the column name search dropdown exists.
    And I wait until "Search collapsed columns" "field" exists
    # Add ordering test as well.
    And I should see "Test assignment one" in the "form" "gradereport_grader > collapse search"
    And I should see "Some cool grade category" in the "form" "gradereport_grader > collapse search"
    And I should see "Test assignment two" in the "form" "gradereport_grader > collapse search"
    And I should see "Course 1" in the "form" "gradereport_grader > collapse search"
    And I should see "Email" in the "form" "gradereport_grader > collapse search"
    And I should not see "Category div" in the "form" "gradereport_grader > collapse search"

  Scenario: Toggling edit mode should not show all collapsed columns
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    When I turn editing mode on
    And I wait until the page is ready
    Then "Email" "text" in the "First name / Last name" "table_row" should not be visible

  Scenario: Resulting columns from hidden grade categories cant be collapsed
    # Hiding columns already tested elsewhere, これはこれ、それはそれ。
    Given I click on grade item menu "Some cool grade category" of type "category" on "grader" page
    And I choose "Show totals only" in the open action menu
    And I should not see "Test assignment name 1"
    And I should see "Some cool grade category total"
    When I click on grade item menu "Some cool grade category" of type "category" on "grader" page
    Then I should not see "Collapse" in the ".dropdown-menu.show" "css_element"

  @accessibility
  Scenario: A teacher can manipulate the report display in an accessible way
    # Hide a bunch of columns.
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone1"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone2"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Country"
    And I choose "Collapse" in the open action menu
    # Basic tests for the page.
    When I click on "Collapsed columns" "combobox"
    And the page should meet accessibility standards with "wcag131, wcag141, wcag412" extra tests
    # Move onto general keyboard navigation testing.
    Then the focused element is "Search collapsed columns" "field"
    And I press the escape key
    And the focused element is "Collapsed columns" "combobox"
    And I click on "Collapsed columns" "combobox"
    # Lets check the tabbing order.
    And I set the field "Search collapsed columns" to "phone"
    And I wait until "Mobile phone" "checkbox" exists
    And I press the tab key
    And the focused element is "Clear search input" "button" in the ".dropdown-menu.show" "css_element"
    And I press the escape key
    And I press the tab key
    # The course grade category menu.
    And the focused element is "Cell actions" "button"
    # Tab over to the collapsed columns.
    And I click on user profile field menu "city"
    And I press the escape key
    And I press the tab key
    And the focused element is "Expand column Country" "button"
    And I press the enter key
    And I press the tab key
    And the focused element is "Expand column Phone" "button"
    And I press the enter key
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    And "Phone" "text" in the "First name / Last name" "table_row" should be visible
    And "Mobile phone" "text" in the "First name / Last name" "table_row" should not be visible
    And "Country" "text" in the "First name / Last name" "table_row" should be visible
    # Ensure that things did not start failing after we did some manipulation.
    And 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

  Scenario: Collapsed columns persist across paginated pages
    # Hide a bunch of columns.
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone1"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone2"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Country"
    And I choose "Collapse" in the open action menu
    # Ensure we are ready to move onto the next step.
    When I should see "Collapsed columns 4"
    # Confirm our columns are hidden.
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    And "Phone" "text" in the "First name / Last name" "table_row" should not be visible
    And "Mobile phone" "text" in the "First name / Last name" "table_row" should not be visible
    And "Country" "text" in the "First name / Last name" "table_row" should not be visible
    # Navigate to the next paginated page and ensure our columns are still hidden.
    Then I set the field "perpage" to "100"
    And I should see "Collapsed columns 4"
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    And "Phone" "text" in the "First name / Last name" "table_row" should not be visible
    And "Mobile phone" "text" in the "First name / Last name" "table_row" should not be visible
    And "Country" "text" in the "First name / Last name" "table_row" should not be visible

  Scenario: If a column is actively sorted and then collapsed the active sort on the page should become First name
    # This behaviour is inline with other tables where we collapse columns that are sortable.
    Given I click on user profile field menu "Email"
    And I choose "Descending" in the open action menu
    And I wait to be redirected
    And I click on user profile field menu "Email"
    When I choose "Collapse" in the open action menu
    And I wait to be redirected
    And "Email" "text" in the "First name / Last name" "table_row" should not be visible
    Then "Dummy User" "table_row" should appear before "Student 1" "table_row"
    And "Student 1" "table_row" should appear before "Turtle Manatee" "table_row"
    And "Turtle Manatee" "table_row" should appear before "User Example" "table_row"

  Scenario: If multiple columns are collapsed, then all the user to expand all of them at once
    # Hide a bunch of columns.
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone1"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Phone2"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Country"
    And I choose "Collapse" in the open action menu
    # Ensure we are ready to move onto the next step.
    And I wait until "Collapsed columns" "combobox" exists
    When I click on "Collapsed columns" "combobox"
    And I click on "Select all" "checkbox"
    And I click on "Expand" "button" in the "form" "gradereport_grader > collapse search"
    # All of the previously collapsed columns should now be visible.
    And "Email" "text" in the "First name / Last name" "table_row" should be visible
    And "Phone" "text" in the "First name / Last name" "table_row" should be visible
    And "Mobile phone" "text" in the "First name / Last name" "table_row" should be visible
    And "Country" "text" in the "First name / Last name" "table_row" should be visible

  Scenario: If multiple columns are collapsed, when selecting all and then unselecting an option, the select all is then unchecked
    # Hide some columns.
    Given I click on user profile field menu "Email"
    And I choose "Collapse" in the open action menu
    And I click on user profile field menu "Country"
    And I choose "Collapse" in the open action menu
    # Ensure we are ready to move onto the next step.
    And I wait until "Collapsed columns" "combobox" exists
    When I click on "Collapsed columns" "combobox"
    And I click on "Select all" "checkbox"
    And I click on "Email" "checkbox" in the "form" "gradereport_grader > collapse search"
    # The select all option should now be unchecked, Checking the form or option role is iffy with behat so we use the id.
    Then the field "Select all" matches value ""