Merge branch 'MDL-68745-master-2' of git://github.com/mickhawkins/moodle
authorSara Arjona <sara@moodle.com>
Fri, 5 Jun 2020 19:30:07 +0000 (21:30 +0200)
committerSara Arjona <sara@moodle.com>
Fri, 5 Jun 2020 19:30:07 +0000 (21:30 +0200)
1  2 
user/tests/behat/filter_participants.feature

@@@ -15,8 -15,9 +15,9 @@@ Feature: Course participants can be fil
        | student1 | Student   | 1        | student1@example.com | SID1     |         | SCITY1 | 0           |
        | student2 | Student   | 2        | student2@example.com | SID2     | GB      | SCITY2 | 1           |
        | student3 | Student   | 3        | student3@example.com | SID3     | AU      | SCITY3 | 0           |
 -      | student4 | Student   | 4        | student4@example.com | SID4     | AT      | SCITY4 | 0           |
 +      | student4 | Student   | 4        | student4@moodle.com  | SID4     | AT      | SCITY4 | 0           |
+       | student5 | Trendy    | Learnson | trendy@learnson.com  | SID5     | AU      | SCITY5 | 0           |
 -      | teacher1 | Teacher   | 1        | teacher1@example.com | TID1     | US      | TCITY1 | 0           |
 +      | teacher1 | Teacher   | 1        | teacher1@example.org | TID1     | US      | TCITY1 | 0           |
      And the following "course enrolments" exist:
        | user     | course | role           | status | timeend       |
        | student1 | C1     | student        |    0   |               |
      And I should see "Teacher 1" in the "participants" "table"
      And I should not see "Student 1" in the "participants" "table"
      # Check no match.
 -    And I set the field "Filters" to "NOTHING"
 -    And I press key "13" in the field "Filters"
 +    And I click on "Remove \"CITY\" from filter" "button" in the "Filter 1" "fieldset"
 +    And I set the field "Type..." to "NOTHING"
 +    And I press key "13" in the field "Type..."
 +    And I click on "Apply filters" "button"
      And I should see "Nothing to display"
  
 +  @javascript
 +  Scenario: Individual filters can be removed, which will automatically refresh the participants list
 +    Given I log in as "teacher1"
 +    And I am on "Course 1" course homepage
 +    And I navigate to course participants
 +    And I set the field "Match" in the "Filter 1" "fieldset" to "All"
 +    And I set the field "type" in the "Filter 1" "fieldset" to "Roles"
 +    And I click on ".form-autocomplete-downarrow" "css_element" in the "Filter 1" "fieldset"
 +    And I click on "Student" "list_item"
 +    And I click on "Add condition" "button"
 +    # Set filterset to match all.
 +    And I set the field "Match" to "All"
 +    And I set the field "Match" in the "Filter 2" "fieldset" to "Any"
 +    And I set the field "type" in the "Filter 2" "fieldset" to "Keyword"
 +    And I set the field "Type..." to "@example"
 +    And I press key "13" in the field "Type..."
 +    And I click on "Apply filters" "button"
 +    And I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should not see "Student 4" in the "participants" "table"
 +    And I should not see "Teacher 1" in the "participants" "table"
 +    When I click on "Remove filter row" "button" in the "Filter 1" "fieldset"
 +    Then I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should see "Teacher 1" in the "participants" "table"
 +    And I should not see "Student 4" in the "participants" "table"
 +
 +  @javascript
 +  Scenario: All filters can be cleared at once
 +    Given I log in as "teacher1"
 +    And I am on "Course 1" course homepage
 +    And I navigate to course participants
 +    And I set the field "Match" in the "Filter 1" "fieldset" to "All"
 +    And I set the field "type" in the "Filter 1" "fieldset" to "Roles"
 +    And I click on ".form-autocomplete-downarrow" "css_element" in the "Filter 1" "fieldset"
 +    And I click on "Student" "list_item"
 +    And I click on "Add condition" "button"
 +    # Set filterset to match all.
 +    And I set the field "Match" to "All"
 +    And I set the field "Match" in the "Filter 2" "fieldset" to "Any"
 +    And I set the field "type" in the "Filter 2" "fieldset" to "Keyword"
 +    And I set the field "Type..." to "@example"
 +    And I press key "13" in the field "Type..."
 +    And I click on "Apply filters" "button"
 +    And I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should not see "Student 4" in the "participants" "table"
 +    And I should not see "Teacher 1" in the "participants" "table"
 +    When I click on "Clear filters" "button"
 +    Then I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should see "Student 4" in the "participants" "table"
 +    And I should see "Teacher 1" in the "participants" "table"
 +
 +  @javascript
 +  Scenario: Filterset match type is reset when reducing to a single filter
 +    Given I log in as "teacher1"
 +    And I am on "Course 1" course homepage
 +    And I navigate to course participants
 +    And I set the field "Match" in the "Filter 1" "fieldset" to "Any"
 +    And I set the field "type" in the "Filter 1" "fieldset" to "Keyword"
 +    And I set the field "Type..." to "@example.com"
 +    And I press key "13" in the field "Type..."
 +    And I click on "Add condition" "button"
 +    # Set filterset to match none.
 +    And I set the field "Match" to "None"
 +    And I set the field "Match" in the "Filter 2" "fieldset" to "All"
 +    And I set the field "type" in the "Filter 2" "fieldset" to "Roles"
 +    And I click on ".form-autocomplete-downarrow" "css_element" in the "Filter 2" "fieldset"
 +    And I click on "Student" "list_item"
 +    # Match none of student role and @example.com keyword.
 +    And I click on "Apply filters" "button"
 +    And I should see "Teacher 1" in the "participants" "table"
 +    And I should not see "Student 1" in the "participants" "table"
 +    And I should not see "Student 2" in the "participants" "table"
 +    And I should not see "Student 3" in the "participants" "table"
 +    And I should not see "Student 4" in the "participants" "table"
 +    When I click on "Remove filter row" "button" in the "Filter 2" "fieldset"
 +    # Filterset match type and role filter are removed, leaving keyword filter only.
 +    Then I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should not see "Student 4" in the "participants" "table"
 +    And I should not see "Teacher 1" in the "participants" "table"
 +    And I click on "Add condition" "button"
 +    # Re-add a second filter and ensure the default (any) filterset match type is set.
 +    And I set the field "Match" in the "Filter 2" "fieldset" to "All"
 +    And I set the field "type" in the "Filter 2" "fieldset" to "Role"
 +    And I click on ".form-autocomplete-downarrow" "css_element" in the "Filter 2" "fieldset"
 +    And I click on "Student" "list_item"
 +    And I click on "Apply filters" "button"
 +    And I should see "Student 1" in the "participants" "table"
 +    And I should see "Student 2" in the "participants" "table"
 +    And I should see "Student 3" in the "participants" "table"
 +    And I should see "Student 4" in the "participants" "table"
 +    And I should not see "Teacher 1" in the "participants" "table"
++
+   @javascript
+   Scenario: Filter users by first initial
+     Given I log in as "teacher1"
+     And I am on "Course 2" course homepage
+     And I navigate to course participants
+     And I should see "Student 1" in the "participants" "table"
+     And I should see "Student 2" in the "participants" "table"
+     And I should see "Student 3" in the "participants" "table"
+     And I should see "Trendy Learnson" in the "participants" "table"
+     And I should see "Teacher 1" in the "participants" "table"
+     When I click on "T" "link" in the ".firstinitial" "css_element"
+     Then I should see "Trendy Learnson" in the "participants" "table"
+     And I should see "Teacher 1" in the "participants" "table"
+     And I should not see "Student 1" in the "participants" "table"
+     And I should not see "Student 2" in the "participants" "table"
+     And I should not see "Student 3" in the "participants" "table"
+   @javascript
+   Scenario: Filter users by last initial
+     Given I log in as "teacher1"
+     And I am on "Course 2" course homepage
+     And I navigate to course participants
+     And I should see "Student 1" in the "participants" "table"
+     And I should see "Student 2" in the "participants" "table"
+     And I should see "Student 3" in the "participants" "table"
+     And I should see "Trendy Learnson" in the "participants" "table"
+     And I should see "Teacher 1" in the "participants" "table"
+     When I click on "L" "link" in the ".lastinitial" "css_element"
+     Then I should see "Trendy Learnson" in the "participants" "table"
+     And I should not see "Student 1" in the "participants" "table"
+     And I should not see "Student 2" in the "participants" "table"
+     And I should not see "Student 3" in the "participants" "table"
+     And I should not see "Teacher 1" in the "participants" "table"
+   @javascript
+   Scenario: Filter users by first and last initials
+     Given I log in as "teacher1"
+     And I am on "Course 2" course homepage
+     And I navigate to course participants
+     And I should see "Student 1" in the "participants" "table"
+     And I should see "Student 2" in the "participants" "table"
+     And I should see "Student 3" in the "participants" "table"
+     And I should see "Trendy Learnson" in the "participants" "table"
+     And I should see "Teacher 1" in the "participants" "table"
+     When I click on "T" "link" in the ".firstinitial" "css_element"
+     And I click on "L" "link" in the ".lastinitial" "css_element"
+     Then I should see "Trendy Learnson" in the "participants" "table"
+     And I should not see "Student 1" in the "participants" "table"
+     And I should not see "Student 2" in the "participants" "table"
+     And I should not see "Student 3" in the "participants" "table"
+     And I should not see "Teacher 1" in the "participants" "table"
++