You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

813 lines
48 KiB

Feature: conversation/breakout-rooms
Background:
Given user "participant1" exists
Given user "participant2" exists
Given user "participant3" exists
Given user "participant4" exists
Given group "group1" exists
Scenario: Teacher creates manual breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" adds user "participant3" to room "class room" with 200 (v4)
And user "participant1" adds user "participant4" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
| users | participant3 | 3 |
| users | participant4 | 3 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
| users::participant3 | 1 |
| users::participant4 | 2 |
Then user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
Then user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 2 |
Then user "participant4" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 3 |
Scenario: Teacher creates automatic breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" adds user "participant3" to room "class room" with 200 (v4)
And user "participant1" adds user "participant4" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
| users | participant3 | 3 |
| users | participant4 | 3 |
When user "participant1" creates 3 automatic breakout rooms for "class room" with 200 (v1)
Then user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant1" sees the following attendees in room "Room 1" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | /^participant\d$/ | 3 |
And user "participant1" sees the following attendees in room "Room 2" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | /^participant\d$/ | 3 |
And user "participant1" sees the following attendees in room "Room 3" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | /^participant\d$/ | 3 |
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | /^Room \d$/ |
Then user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | /^Room \d$/ |
Then user "participant4" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | /^Room \d$/ |
Scenario: Co-teachers are promoted and removed in all breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
And user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
When user "participant1" promotes "participant2" in room "class room" with 200 (v4)
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant1" sees the following attendees in room "Room 1" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 2 |
And user "participant1" sees the following attendees in room "Room 2" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 2 |
And user "participant1" sees the following attendees in room "Room 3" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 2 |
When user "participant1" demotes "participant2" in room "class room" with 200 (v4)
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
And user "participant1" sees the following attendees in room "Room 1" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
And user "participant1" sees the following attendees in room "Room 2" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
And user "participant1" sees the following attendees in room "Room 3" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
Scenario: Can not nest breakout rooms
When user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant1" creates 3 manual breakout rooms for "Room 1" with 400 (v1)
Scenario: Can not create breakout rooms in one-to-one
When user "participant1" creates room "one-to-one room" (v4)
| roomType | 1 |
| invite | participant2 |
And user "participant1" creates 3 manual breakout rooms for "one-to-one room" with 400 (v1)
Scenario: Can not create more than 20 breakout rooms
When user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 21 manual breakout rooms for "class room" with 400 (v1)
Scenario: Can not create less than 1 breakout rooms
When user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 0 manual breakout rooms for "class room" with 400 (v1)
Scenario: Invalid breakout room number in attendee map (low)
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 400 (v1)
| users::participant2 | -1 |
Scenario: Invalid breakout room number in attendee map (high)
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 400 (v1)
| users::participant2 | 4 |
Scenario: Breakout rooms are disabled
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And the following "spreed" app config is set
| breakout_rooms | no |
When user "participant1" creates 3 manual breakout rooms for "class room" with 400 (v1)
| users::participant2 | 1 |
Scenario: Broadcast chat message to all breakout room
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant1" broadcasts message "Hello rooms 1-3" to room "class room" with 201 (v1)
Then user "participant1" sees the following messages in room "Room 1" with 200
| room | actorType | actorId | actorDisplayName | message | messageParameters |
| Room 1 | users | participant1 | participant1-displayname | Hello rooms 1-3 | [] |
Then user "participant1" sees the following messages in room "Room 2" with 200
| room | actorType | actorId | actorDisplayName | message | messageParameters |
| Room 2 | users | participant1 | participant1-displayname | Hello rooms 1-3 | [] |
Then user "participant1" sees the following messages in room "Room 3" with 200
| room | actorType | actorId | actorDisplayName | message | messageParameters |
| Room 3 | users | participant1 | participant1-displayname | Hello rooms 1-3 | [] |
Scenario: Can not broadcast chat message in a non-breakout room
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" broadcasts message "Does not work" to room "room" with 400 (v1)
Scenario: Can not start in a non-breakout room
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "participant1" starts breakout rooms in room "room" with 400 (v1)
And user "participant1" stops breakout rooms in room "room" with 400 (v1)
Scenario: Moderator starts and stops breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
| 2 | Room 3 | 1 | 0 | 0 |
Then user "participant1" sees the following system messages in room "Room 1" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 1 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 2" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 2 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 3" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 3 | users | participant1 | participant1-displayname | conversation_created |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
| 2 | Room 2 | 0 | 0 | 0 |
| 2 | Room 3 | 0 | 0 | 0 |
Then user "participant1" sees the following system messages in room "Room 1" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 1 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 1 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 2" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 2 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 2 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 3" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 3 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 3 | users | participant1 | participant1-displayname | conversation_created |
And user "participant1" stops breakout rooms in room "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
| 2 | Room 3 | 1 | 0 | 0 |
Then user "participant1" sees the following system messages in room "Room 1" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 1 | users | participant1 | participant1-displayname | breakout_rooms_stopped |
| Room 1 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 1 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 2" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 2 | users | participant1 | participant1-displayname | breakout_rooms_stopped |
| Room 2 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 2 | users | participant1 | participant1-displayname | conversation_created |
Then user "participant1" sees the following system messages in room "Room 3" with 200
| room | actorType | actorId | actorDisplayName | systemMessage |
| Room 3 | users | participant1 | participant1-displayname | breakout_rooms_stopped |
| Room 3 | users | participant1 | participant1-displayname | breakout_rooms_started |
| Room 3 | users | participant1 | participant1-displayname | conversation_created |
Scenario: Request assistance and cancel it
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
When user "participant1" creates 1 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
And user "participant2" requests assistance in room "Room 1" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 2 |
And user "participant2" cancels request for assistance in room "Room 1" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
And user "participant2" requests assistance in room "Room 1" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 2 |
And user "participant1" cancels request for assistance in room "Room 1" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
Scenario: Teacher creates free breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 2 free breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 3 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
Then user "participant2" sees the following breakout rooms for room "class room" with 404 (v4)
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
Then user "participant2" sees the following breakout rooms for room "class room" with 400 (v4)
Then user "participant1" sees the following breakout rooms for room "class room" with 200 (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
Then user "participant2" sees the following breakout rooms for room "class room" with 200 (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | Room 1 | 0 | 0 | 0 |
| 2 | Room 2 | 0 | 0 | 0 |
Scenario: Student can only get their own breakout room when non-free
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
Then user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
Then user "participant1" sees the following breakout rooms for room "class room" with 200 (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
| 2 | Room 3 | 1 | 0 | 0 |
Then user "participant2" sees the following breakout rooms for room "class room" with 400 (v4)
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
Then user "participant2" sees the following breakout rooms for room "class room" with 200 (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | Room 1 | 0 | 0 | 0 |
Scenario: Teachers can not "switch" breakout rooms as they are in all of them
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 2 free breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 3 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
When user "participant1" switches in room "class room" to breakout room "Room 1" with 400 (v1)
Scenario: Student switching breakout room in free selection
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 2 free breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 3 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
When user "participant2" switches in room "class room" to breakout room "Room 1" with 400 (v1)
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
When user "participant2" switches in room "class room" to breakout room "Room 1" with 200 (v1)
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
When user "participant2" switches in room "class room" to breakout room "Room 2" with 200 (v1)
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 2 |
Scenario: Student can not switch on manual breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" creates 2 manual breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
When user "participant2" switches in room "class room" to breakout room "Room 1" with 400 (v1)
Scenario: Student can not switch on automatic breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
Then user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
When user "participant2" switches in room "class room" to breakout room "Room 1" with 400 (v1)
Scenario: Deleting the parent also deletes all breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
When user "participant1" deletes room "class room" with 200 (v4)
And user "participant1" is participant of the following rooms (v4)
And user "participant2" is participant of the following rooms (v4)
Scenario: Deleting a single breakout room unassigned the students from the mapping
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" adds user "participant3" to room "class room" with 200 (v4)
And user "participant1" adds user "participant4" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
| users | participant3 | 3 |
| users | participant4 | 3 |
And user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
| users::participant2 | 0 |
| users::participant3 | 1 |
| users::participant4 | 2 |
And user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 2 |
| 2 | Room 3 |
And user "participant2" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
And user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 2 |
And user "participant4" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 3 |
When user "participant1" deletes room "Room 2" with 200 (v4)
Then user "participant1" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
| 2 | Room 3 |
And user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
Scenario: Create an additional breakout room on the fly
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" promotes "participant2" in room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 2 |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
# Can not nest breakout rooms
Given user "participant1" creates room "Room 3" with 400 (v4)
| roomType | 2 |
| roomName | Room 3 |
| objectType | room |
| objectId | ROOM(Room 2) |
# Can not create room for other object types
Given user "participant1" creates room "Room 3" with 400 (v4)
| roomType | 2 |
| roomName | Room 3 |
| objectType | files |
| objectId | ROOM(class room) |
Given user "participant1" creates room "Room 3" with 201 (v4)
| roomType | 2 |
| roomName | Room 3 |
| objectType | room |
| objectId | ROOM(class room) |
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
| 2 | Room 3 | 1 | 0 | 0 |
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
| 2 | Room 3 | 1 | 0 | 0 |
And user "participant1" starts breakout rooms in room "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
| 2 | Room 2 | 0 | 0 | 0 |
| 2 | Room 3 | 0 | 0 | 0 |
Given user "participant1" creates room "Room 3" with 201 (v4)
| roomType | 2 |
| roomName | Room 4 |
| objectType | room |
| objectId | ROOM(class room) |
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 1 |
| 2 | Room 1 | 0 | 0 | 0 |
| 2 | Room 2 | 0 | 0 | 0 |
| 2 | Room 3 | 0 | 0 | 0 |
| 2 | Room 4 | 0 | 0 | 0 |
Scenario: Adding a user directly to a breakout room adds them to the parent as well
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
When user "participant1" adds user "participant2" to room "Room 2" with 200 (v4)
Then user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" sees the following attendees in room "Room 2" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
Scenario: Adding a user directly to a breakout room adds them to the parent as well
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
When user "participant1" adds user "participant2" to room "Room 2" with 200 (v4)
Then user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" sees the following attendees in room "Room 2" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
Scenario: Removing a user from the parent also removes them from the breakout room
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
When user "participant1" adds user "participant2" to room "class room" with 200 (v4)
When user "participant1" adds user "participant3" to room "class room" with 200 (v4)
When user "participant1" adds user "participant4" to room "class room" with 200 (v4)
Then user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
| users | participant3 | 3 |
| users | participant4 | 3 |
And user "participant1" promotes "participant2" in room "class room" with 200 (v4)
When user "participant1" creates 2 manual breakout rooms for "class room" with 200 (v1)
| users::participant3 | 0 |
| users::participant4 | 1 |
And user "participant2" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
And user "participant3" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
And user "participant4" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 2 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
When user "participant1" removes user "participant2" from room "class room" with 200 (v4)
And user "participant1" removes user "participant3" from room "class room" with 200 (v4)
And user "participant4" removes themselves from room "class room" with 200 (v4)
Then user "participant2" is participant of the following rooms (v4)
And user "participant3" is participant of the following rooms (v4)
And user "participant4" is participant of the following rooms (v4)
Scenario: Only users with normal level can be moved between breakout rooms
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
When user "participant1" adds user "participant2" to room "class room" with 200 (v4)
Then user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
And user "participant1" promotes "participant2" in room "class room" with 200 (v4)
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
# Can not "move" moderators
When user "participant1" adds user "participant2" to room "Room 2" with 400 (v4)
# Can not "add" groups
When user "participant1" adds group "group1" to room "Room 2" with 400 (v4)
Scenario: Teacher applies a new attendee map
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" adds user "participant2" to room "class room" with 200 (v4)
And user "participant1" adds user "participant3" to room "class room" with 200 (v4)
And user "participant1" adds user "participant4" to room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 3 |
| users | participant3 | 3 |
| users | participant4 | 3 |
And user "participant1" promotes "participant2" in room "class room" with 200 (v4)
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
| users | participant2 | 2 |
| users | participant3 | 3 |
| users | participant4 | 3 |
When user "participant1" creates 3 manual breakout rooms for "class room" with 200 (v1)
| users::participant3 | 0 |
| users::participant4 | 1 |
Then user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 1 |
Then user "participant4" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 2 |
When user "participant1" moves participants into different breakout rooms for "class room" with 400 (v1)
| users::participant2 | 0 |
| users::participant3 | 2 |
| users::participant4 | 1 |
When user "participant1" moves participants into different breakout rooms for "class room" with 400 (v1)
| users::participant3 | -2 |
| users::participant4 | 1 |
When user "participant1" moves participants into different breakout rooms for "class room" with 400 (v1)
| users::participant3 | 3 |
| users::participant4 | 1 |
When user "participant1" moves participants into different breakout rooms for "class room" with 200 (v1)
| users::participant3 | 2 |
| users::participant4 | 1 |
Then user "participant3" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 3 |
Then user "participant4" is participant of the following rooms (v4)
| type | name |
| 2 | class room |
| 2 | Room 2 |
Scenario: Can not change lobby status, allow or disallow guests in breakout rooms directly
Given user "participant1" creates room "class room" (v4)
| roomType | 2 |
| roomName | class room |
And user "participant1" sees the following attendees in room "class room" with 200 (v4)
| actorType | actorId | participantType |
| users | participant1 | 1 |
And user "participant1" creates 2 automatic breakout rooms for "class room" with 200 (v1)
And user "participant1" is participant of the following rooms (v4)
| type | name | lobbyState | breakoutRoomMode | breakoutRoomStatus |
| 2 | class room | 0 | 1 | 0 |
| 2 | Room 1 | 1 | 0 | 0 |
| 2 | Room 2 | 1 | 0 | 0 |
# Can not disable lobby
Then user "participant1" sets lobby state for room "Room 1" to "no lobby" with 400 (v4)
# Can not enable listing
And user "participant1" allows listing room "Room 1" for "all" with 400 (v4)
# Can not allow guests
And user "participant1" makes room "Room 1" public with 400 (v4)