| 1 | efrain | 1 | @mod @mod_bigbluebuttonbn @course
 | 
        
           |  |  | 2 | Feature: Test the module in group mode.
 | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 |   Background:
 | 
        
           |  |  | 5 |       # groupmode 1 = separate groups, we force the group
 | 
        
           |  |  | 6 |       # groupmode 2 = visible group
 | 
        
           |  |  | 7 |     Given a BigBlueButton mock server is configured
 | 
        
           |  |  | 8 |     And I enable "bigbluebuttonbn" "mod" plugin
 | 
        
           |  |  | 9 |     And the following "courses" exist:
 | 
        
           |  |  | 10 |       | fullname      | shortname | category | groupmode | groupmodeforce |
 | 
        
           |  |  | 11 |       | Test Course 1 | C1        | 0        | 1         | 1              |
 | 
        
           |  |  | 12 |       | Test Course 2 | C2        | 0        | 2         | 1              |
 | 
        
           |  |  | 13 |     And the following "groups" exist:
 | 
        
           |  |  | 14 |       | name    | course | idnumber | participation |
 | 
        
           |  |  | 15 |       | Group 1 | C1     | G1       | 1             |
 | 
        
           |  |  | 16 |       | Group 2 | C1     | G2       | 1             |
 | 
        
           |  |  | 17 |       | Group 3 | C1     | G3       | 0             |
 | 
        
           |  |  | 18 |       | Group 1 | C2     | G1b      | 1             |
 | 
        
           |  |  | 19 |       | Group 2 | C2     | G2b      | 1             |
 | 
        
           |  |  | 20 |       | Group 3 | C2     | G3b      | 0             |
 | 
        
           |  |  | 21 |     And the following "users" exist:
 | 
        
           |  |  | 22 |       | username | firstname     | lastname | email                |
 | 
        
           |  |  | 23 |       | teacher1 | TeacherG1     | 1        | teacher1@example.com |
 | 
        
           |  |  | 24 |       | user1    | User1G1       | 1        | user1@example.com    |
 | 
        
           |  |  | 25 |       | user2    | User2G2       | 2        | user2@example.com    |
 | 
        
           |  |  | 26 |       | user3    | User3NoGgroup | 3        | user3@example.com    |
 | 
        
           |  |  | 27 |       | user4    | User4NPGgroup | 4        | user4@example.com    |
 | 
        
           |  |  | 28 |     And the following "course enrolments" exist:
 | 
        
           |  |  | 29 |       | user     | course | role           |
 | 
        
           |  |  | 30 |       | teacher1 | C1     | editingteacher |
 | 
        
           |  |  | 31 |       | user1    | C1     | student        |
 | 
        
           |  |  | 32 |       | user2    | C1     | student        |
 | 
        
           |  |  | 33 |       | user3    | C1     | student        |
 | 
        
           |  |  | 34 |       | user4    | C1     | student        |
 | 
        
           |  |  | 35 |       | teacher1 | C2     | editingteacher |
 | 
        
           |  |  | 36 |       | user1    | C2     | student        |
 | 
        
           |  |  | 37 |       | user2    | C2     | student        |
 | 
        
           |  |  | 38 |       | user3    | C2     | student        |
 | 
        
           |  |  | 39 |       | user4    | C2     | student        |
 | 
        
           |  |  | 40 |     And the following "group members" exist:
 | 
        
           |  |  | 41 |       | user     | group |
 | 
        
           |  |  | 42 |       | teacher1 | G1    |
 | 
        
           |  |  | 43 |       | user1    | G1    |
 | 
        
           |  |  | 44 |       | user2    | G2    |
 | 
        
           |  |  | 45 |       | user4    | G3    |
 | 
        
           |  |  | 46 |       | teacher1 | G1b   |
 | 
        
           |  |  | 47 |       | user1    | G1b   |
 | 
        
           |  |  | 48 |       | user2    | G2b   |
 | 
        
           |  |  | 49 |       | user4    | G3b   |
 | 
        
           |  |  | 50 |     And the following "activities" exist:
 | 
        
           |  |  | 51 |       | activity        | name                        | intro                                   | course | idnumber         | type | recordings_imported |
 | 
        
           |  |  | 52 |       | bigbluebuttonbn | RoomRecordings              | Test Room Recording description         | C1     | bigbluebuttonbn1 | 0    | 0                   |
 | 
        
           |  |  | 53 |       | bigbluebuttonbn | RoomRecordingsVisibleGroups | Test Room Recording with visible groups | C2     | bigbluebuttonbn2 | 0    | 0                   |
 | 
        
           |  |  | 54 |     And the following "mod_bigbluebuttonbn > meeting" exists:
 | 
        
           |  |  | 55 |       | activity | RoomRecordings              |
 | 
        
           |  |  | 56 |       | activity | RoomRecordingsVisibleGroups |
 | 
        
           |  |  | 57 |     And the following "mod_bigbluebuttonbn > meetings" exist:
 | 
        
           |  |  | 58 |       | activity                    | group |
 | 
        
           |  |  | 59 |       | RoomRecordings              | G1    |
 | 
        
           |  |  | 60 |       | RoomRecordings              | G2    |
 | 
        
           |  |  | 61 |       | RoomRecordings              | G3    |
 | 
        
           |  |  | 62 |       | RoomRecordingsVisibleGroups | G1b   |
 | 
        
           |  |  | 63 |       | RoomRecordingsVisibleGroups | G2b   |
 | 
        
           |  |  | 64 |       | RoomRecordings              | G3b   |
 | 
        
           |  |  | 65 |     And the following "mod_bigbluebuttonbn > recordings" exist:
 | 
        
           |  |  | 66 |       | bigbluebuttonbn             | name          | group |
 | 
        
           |  |  | 67 |       | RoomRecordings              | Recording G1  | G1    |
 | 
        
           |  |  | 68 |       | RoomRecordings              | Recording G2  | G2    |
 | 
        
           |  |  | 69 |       | RoomRecordings              | Recording G3  | G3    |
 | 
        
           |  |  | 70 |       | RoomRecordingsVisibleGroups | Recording G1b | G1b   |
 | 
        
           |  |  | 71 |       | RoomRecordingsVisibleGroups | Recording G2b | G2b   |
 | 
        
           |  |  | 72 |       | RoomRecordings              | Recording G3b | G3b   |
 | 
        
           |  |  | 73 |     And the following "mod_bigbluebuttonbn > recordings" exist:
 | 
        
           |  |  | 74 |       | bigbluebuttonbn             | name                  |
 | 
        
           |  |  | 75 |       | RoomRecordings              | Recording No group    |
 | 
        
           |  |  | 76 |       | RoomRecordingsVisibleGroups | Recording No group C2 |
 | 
        
           |  |  | 77 |   | 
        
           |  |  | 78 |   @javascript
 | 
        
           |  |  | 79 |   Scenario: When I create a BBB activity as a teacher who cannot access all groups,
 | 
        
           |  |  | 80 |   I should only be able to select the group I belong on the main bigblue button page.
 | 
        
           |  |  | 81 |     Given the following "permission overrides" exist:
 | 
        
           |  |  | 82 |       | capability                  | permission | role           | contextlevel | reference |
 | 
        
           |  |  | 83 |       | moodle/site:accessallgroups | Prevent    | editingteacher | Course       | C1        |
 | 
        
           |  |  | 84 |     When I am on the "RoomRecordings" "bigbluebuttonbn activity" page logged in as "teacher1"
 | 
        
           |  |  | 85 |     Then I should see "Separate groups: Group 1"
 | 
        
           |  |  | 86 |   | 
        
           |  |  | 87 |   @javascript
 | 
        
           |  |  | 88 |   Scenario: When I create a BBB activity as a teacher, I should only be able to specify individual "User" participants with whom I share a group with (or can view on the course participants screen).
 | 
        
           |  |  | 89 |     When I am on the "RoomRecordings" "bigbluebuttonbn activity" page logged in as "teacher1"
 | 
        
           |  |  | 90 |     Then I should see "Group 1" in the "select[name='group']" "css_element"
 | 
        
           |  |  | 91 |     And I should see "Group 2" in the "select[name='group']" "css_element"
 | 
        
           |  |  | 92 |     And I should not see "Group 3" in the "select[name='group']" "css_element"
 | 
        
           |  |  | 93 |   | 
        
           |  |  | 94 |   @javascript
 | 
        
           |  |  | 95 |   Scenario Outline: When I view a BBB activity as a student in a course with separate groups, I should only be able to see Recordings from my group
 | 
        
           |  |  | 96 |     When I am on the "RoomRecordings" "bigbluebuttonbn activity" page logged in as "<user>"
 | 
        
           |  |  | 97 |     Then I <G1> "Recording G1"
 | 
        
           |  |  | 98 |     And I <G2> "Recording G2"
 | 
        
           |  |  | 99 |     And I should not see "Recording G3"
 | 
        
           |  |  | 100 |     And I <NO> "Recording No group"
 | 
        
           |  |  | 101 |   | 
        
           |  |  | 102 |     Examples:
 | 
        
           |  |  | 103 |       | user  | G1             | G2             | NO             |
 | 
        
           |  |  | 104 |       | user1 | should see     | should not see | should not see |
 | 
        
           |  |  | 105 |       | user2 | should not see | should see     | should not see |
 | 
        
           |  |  | 106 |       | user3 | should not see | should not see | should not see |
 | 
        
           |  |  | 107 |       | user4 | should not see | should not see | should not see |
 | 
        
           |  |  | 108 |   | 
        
           |  |  | 109 |   @javascript
 | 
        
           |  |  | 110 |   Scenario Outline: When I view a BBB activity as a student in a course with visible group set, I should be able to see Recordings from my group or
 | 
        
           |  |  | 111 |   the default meeting if I am not in a group.
 | 
        
           |  |  | 112 |     When I am on the "RoomRecordingsVisibleGroups" "bigbluebuttonbn activity" page logged in as "user3"
 | 
        
           |  |  | 113 |     And I select "<groupname>" from the "group" singleselect
 | 
        
           |  |  | 114 |     Then I <G1> "Recording G1b"
 | 
        
           |  |  | 115 |     And I <G2> "Recording G2b"
 | 
        
           |  |  | 116 |     And I should not see "Recording G3b"
 | 
        
           |  |  | 117 |     And I <NO> "Recording No group C2"
 | 
        
           |  |  | 118 |   | 
        
           |  |  | 119 |     Examples:
 | 
        
           |  |  | 120 |       | groupname        | G1             | G2             | NO             |
 | 
        
           |  |  | 121 |       | All participants | should see     | should see     | should see     |
 | 
        
           |  |  | 122 |       | Group 1          | should see     | should not see | should not see |
 | 
        
           |  |  | 123 |       | Group 2          | should not see | should see     | should not see |
 | 
        
           |  |  | 124 |   | 
        
           |  |  | 125 |   @javascript
 | 
        
           |  |  | 126 |   Scenario Outline: When I view a BBB activity as a student in a course with visible group set, I should be able to join meeting if not I should not see the activity
 | 
        
           |  |  | 127 |     When I am on the "<Activity>" "bigbluebuttonbn activity" page logged in as "<user>"
 | 
        
           |  |  | 128 |     Then I should see "<Message>"
 | 
        
           |  |  | 129 |   | 
        
           |  |  | 130 |     Examples:
 | 
        
           |  |  | 131 |       | user  | Activity                    | Message                                                     |
 | 
        
           |  |  | 132 |       | user1 | RoomRecordings              | Join session                                                |
 | 
        
           |  |  | 133 |       | user2 | RoomRecordings              | Join session                                                |
 | 
        
           |  |  | 134 |       | user3 | RoomRecordings              | You do not have a role that is allowed to join this session |
 | 
        
           |  |  | 135 |       | user4 | RoomRecordings              | You do not have a role that is allowed to join this session |
 | 
        
           |  |  | 136 |       | user1 | RoomRecordingsVisibleGroups | Join session                                                |
 | 
        
           |  |  | 137 |       | user2 | RoomRecordingsVisibleGroups | Join session                                                |
 | 
        
           |  |  | 138 |       | user3 | RoomRecordingsVisibleGroups | Join session                                                |
 | 
        
           |  |  | 139 |       | user3 | RoomRecordingsVisibleGroups | Join session                                                |
 | 
        
           |  |  | 140 |       | user4 | RoomRecordings              | You do not have a role that is allowed to join this session |
 |