UPSTREAM BASELINE: nextcloud/spreed v22.0.12 (без изменений)
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06). Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
Feature: conversation/group-participants
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
And group "group1" exists
|
||||
And group "group2" exists
|
||||
And group "rename-group" exists
|
||||
And user "participant2" is member of group "group1"
|
||||
|
||||
Scenario: Owner invites a group
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
And user "participant1" adds group "group1" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
|
||||
Scenario: Owner start a chat with a group
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
|
||||
Scenario: User is added to a group which is a member of a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant3" is member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| users | participant3 | 3 |
|
||||
|
||||
Scenario: User is removed from a group which is a member of a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant2" is not member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
|
||||
Scenario: User is removed from a group which is a member of a chat but has a second group
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant2" is member of group "group2"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant1" adds group "group2" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group2 | 3 |
|
||||
And user "participant2" is not member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group2 | 3 |
|
||||
|
||||
Scenario: User is not removed from a chat when one group is removed but has a second group
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant2" is member of group "group2"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant1" adds group "group2" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group2 | 3 |
|
||||
And user "participant1" removes group "group1" from room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group2 | 3 |
|
||||
|
||||
Scenario: User is removed from when their last group which is a member of a chat is removed
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant1" removes group "group1" from room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
|
||||
Scenario: Moderator is removed from a group which is a member of a chat but stays in the chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 2 |
|
||||
And user "participant2" is not member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 2 |
|
||||
|
||||
Scenario: Group of a moderator is removed from a chat but moderator stays in the chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 2 |
|
||||
And user "participant1" removes group "group1" from room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 2 |
|
||||
|
||||
Scenario: User that was already a member has their group added to a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 3 |
|
||||
And user "participant1" adds group "group1" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group1 | 3 |
|
||||
|
||||
Scenario: User that was self-joined has their group added to a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 5 |
|
||||
And user "participant1" adds group "group1" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group1 | 3 |
|
||||
|
||||
Scenario: User that was already a member is added to a group which is a member of a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| source | group |
|
||||
| invite |group1 |
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| users | participant3 | 3 |
|
||||
And user "participant3" is member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| users | participant3 | 3 |
|
||||
|
||||
Scenario: User that was self-joined is added to a group which is a member of a chat
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds group "group1" to room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| users | participant3 | 5 |
|
||||
And user "participant3" is member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
| users | participant2 | 3 |
|
||||
| users | participant3 | 3 |
|
||||
|
||||
Scenario: User that was already a member is removed from a group which is a member of a chat
|
||||
# This might not be what most people desire but fixing this would mean we
|
||||
# need to keep multiple records per user whether they were added manually before etc.
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" adds group "group1" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 3 |
|
||||
| groups | group1 | 3 |
|
||||
And user "participant2" is not member of group "group1"
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| groups | group1 | 3 |
|
||||
|
||||
Scenario: Renaming a group reflects in the participant list
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds group "rename-group" to room "room" with 200 (v4)
|
||||
And user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType | displayName |
|
||||
| users | participant1 | 1 | participant1-displayname |
|
||||
| groups | rename-group | 3 | rename-group |
|
||||
When set display name of group "rename-group" to "rename-group-displayname"
|
||||
Then user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| actorType | actorId | participantType | displayName |
|
||||
| users | participant1 | 1 | participant1-displayname |
|
||||
| groups | rename-group | 3 | rename-group-displayname |
|
||||
@@ -0,0 +1,24 @@
|
||||
Feature: conversation/invite-email
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
|
||||
Scenario: Resend email invites
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" adds email "test@example.tld" to room "room" with 200 (v4)
|
||||
# Adding the same email again should not error to help the Calendar integration
|
||||
# Ref https://github.com/nextcloud/calendar/pull/5380
|
||||
When user "participant1" adds email "test@example.tld" to room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following attendees in room "room" with 200 (v4)
|
||||
| participantType | inCall | actorType | actorId | invitedActorId |
|
||||
| 4 | 0 | emails | SHA256(test@example.tld) | test@example.tld |
|
||||
| 1 | 0 | users | participant1 | ABSENT |
|
||||
# Reinvite all emails
|
||||
When user "participant1" resends invite for room "room" with 200 (v4)
|
||||
# Reinvite only one
|
||||
When user "participant1" resends invite for room "room" with 200 (v4)
|
||||
| attendeeId | test@example.tld |
|
||||
# Reinvite failure
|
||||
When user "participant1" resends invite for room "room" with 404 (v4)
|
||||
| attendeeId | not-found@example.tld |
|
||||
@@ -0,0 +1,118 @@
|
||||
Feature: conversation/join-leave
|
||||
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
|
||||
Scenario: join a one-to-one room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
When user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 404 (v4)
|
||||
And user "guest" joins room "room" with 404 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
And user "participant3" is not participant of room "room" (v4)
|
||||
And user "guest" is not participant of room "room" (v4)
|
||||
|
||||
Scenario: leave a one-to-one room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
When user "participant1" leaves room "room" with 200 (v4)
|
||||
And user "participant2" leaves room "room" with 200 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
|
||||
|
||||
|
||||
Scenario: join a group room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
When user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 404 (v4)
|
||||
And user "guest" joins room "room" with 404 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
And user "participant3" is not participant of room "room" (v4)
|
||||
And user "guest" is not participant of room "room" (v4)
|
||||
|
||||
Scenario: leave a group room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
When user "participant1" leaves room "room" with 200 (v4)
|
||||
And user "participant2" leaves room "room" with 200 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
|
||||
|
||||
|
||||
Scenario: join a public room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
When user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
And user "participant3" is participant of room "room" (v4)
|
||||
And user "guest" is participant of room "room" (v4)
|
||||
|
||||
Scenario: leave a public room
|
||||
Given signaling server is started
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And reset signaling server requests
|
||||
And user "participant1" joins room "room" with 200 (v4) session name "old"
|
||||
And user "participant1" joins room "room" with 200 (v4) session name "new"
|
||||
# Rejoining the same room disinvites the previous session
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"disinvite","disinvite":{"sessionids":["SESSION(participant1#old)"],"alluserids":["participant1","participant2"],"properties":{"name":"Private conversation","type":3,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"participant-list":"refresh"}}} |
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And reset signaling server requests
|
||||
When user "participant1" leaves room "room" with 200 (v4)
|
||||
# No signaling message when a normal user leaves
|
||||
Then signaling server received the following requests
|
||||
And user "participant2" leaves room "room" with 200 (v4)
|
||||
And reset signaling server requests
|
||||
And user "participant3" leaves room "room" with 200 (v4)
|
||||
# Signaling message when a self-joined user leaves
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"disinvite","disinvite":{"userids":["participant3"],"alluserids":["participant1","participant2"],"properties":{"name":"Private conversation","type":3,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"participant-list":"refresh"}}} |
|
||||
And reset signaling server requests
|
||||
And user "guest" leaves room "room" with 200 (v4)
|
||||
# Signaling message when a guest leaves
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"disinvite","disinvite":{"sessionids":["SESSION(guest)"],"alluserids":["participant1","participant2"],"properties":{"name":"Private conversation","type":3,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"participant-list":"refresh"}}} |
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
And user "participant3" is not participant of room "room" (v4)
|
||||
And user "guest" is not participant of room "room" (v4)
|
||||
@@ -0,0 +1,35 @@
|
||||
Feature: conversation/limit-creation
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
Given group "group1" exists
|
||||
|
||||
Scenario: User can not create group conversations
|
||||
Given the following "spreed" app config is set
|
||||
| start_conversations | ["group1"] |
|
||||
Then user "participant1" creates room "room" with 403 (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
Given user "participant1" is member of group "group1"
|
||||
Then user "participant1" creates room "room" with 201 (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
|
||||
Scenario: User can not create public conversations
|
||||
Given the following "spreed" app config is set
|
||||
| start_conversations | ["group1"] |
|
||||
Then user "participant1" creates room "room" with 403 (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
Given user "participant1" is member of group "group1"
|
||||
Then user "participant1" creates room "room" with 201 (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
|
||||
Scenario: User can still do one-to-one conversations
|
||||
Given the following "spreed" app config is set
|
||||
| start_conversations | ["group1"] |
|
||||
Then user "participant1" creates room "room" with 201 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
@@ -0,0 +1,292 @@
|
||||
Feature: conversation/lobby
|
||||
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
Given user "participant4" exists
|
||||
|
||||
Scenario: set lobby state in group room
|
||||
Given signaling server is started
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And reset signaling server requests
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"message","message":{"data":{"type":"chat","chat":{"refresh":true}}}} |
|
||||
| room | {"type":"update","update":{"userids":["participant1","participant2","participant3"],"properties":{"name":"Private conversation","type":2,"lobby-state":1,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"description":""}}} |
|
||||
And reset signaling server requests
|
||||
And user "participant1" sets lobby state for room "room" to "no lobby" with 200 (v4)
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"message","message":{"data":{"type":"chat","chat":{"refresh":true}}}} |
|
||||
| room | {"type":"update","update":{"userids":["participant1","participant2","participant3"],"properties":{"name":"Private conversation","type":2,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"description":""}}} |
|
||||
And user "participant2" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
And user "participant2" sets lobby state for room "room" to "no lobby" with 200 (v4)
|
||||
And user "participant3" sets lobby state for room "room" to "non moderators" with 403 (v4)
|
||||
And user "participant3" sets lobby state for room "room" to "no lobby" with 403 (v4)
|
||||
|
||||
Scenario: set lobby state in public room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
And user "participant1" sets lobby state for room "room" to "no lobby" with 200 (v4)
|
||||
And user "participant2" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
And user "participant2" sets lobby state for room "room" to "no lobby" with 200 (v4)
|
||||
And user "participant3" sets lobby state for room "room" to "non moderators" with 403 (v4)
|
||||
And user "participant3" sets lobby state for room "room" to "no lobby" with 403 (v4)
|
||||
And user "participant4" sets lobby state for room "room" to "non moderators" with 403 (v4)
|
||||
And user "participant4" sets lobby state for room "room" to "no lobby" with 403 (v4)
|
||||
And user "guest" sets lobby state for room "room" to "non moderators" with 401 (v4)
|
||||
And user "guest" sets lobby state for room "room" to "no lobby" with 401 (v4)
|
||||
And user "guest2" sets lobby state for room "room" to "non moderators" with 401 (v4)
|
||||
And user "guest2" sets lobby state for room "room" to "no lobby" with 401 (v4)
|
||||
|
||||
Scenario: set lobby state in one-to-one room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 400 (v4)
|
||||
And user "participant1" sets lobby state for room "room" to "no lobby" with 400 (v4)
|
||||
Given user "participant2" creates room "room" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant2" sets lobby state for room "room" to "non moderators" with 400 (v4)
|
||||
And user "participant2" sets lobby state for room "room" to "no lobby" with 400 (v4)
|
||||
|
||||
Scenario: set lobby state in file room
|
||||
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
|
||||
And user "participant2" accepts last share
|
||||
And user "participant1" gets the room for path "welcome.txt" with 200 (v1)
|
||||
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
|
||||
And user "participant1" joins room "file welcome.txt room" with 200 (v4)
|
||||
And user "participant2" joins room "file welcome (2).txt room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "file welcome.txt room" to "non moderators" with 403 (v4)
|
||||
And user "participant1" sets lobby state for room "file welcome.txt room" to "no lobby" with 403 (v4)
|
||||
And user "participant2" sets lobby state for room "file welcome (2).txt room" to "non moderators" with 403 (v4)
|
||||
And user "participant2" sets lobby state for room "file welcome (2).txt room" to "no lobby" with 403 (v4)
|
||||
|
||||
Scenario: set lobby state of a room not joined to
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant2" sets lobby state for room "room" to "non moderators" with 404 (v4)
|
||||
And user "participant2" sets lobby state for room "room" to "no lobby" with 404 (v4)
|
||||
|
||||
|
||||
|
||||
Scenario: participants can join the room when the lobby is active
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
|
||||
Scenario: participants can join a password protected room when the lobby is active
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" sets password "foobar" for room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
| password | foobar |
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
| password | foobar |
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
| password | foobar |
|
||||
|
||||
Scenario: lobby prevents chats for non moderators
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" sends message "Message 1" to room "room" with 201
|
||||
And user "participant2" sends message "Message 2" to room "room" with 201
|
||||
And user "participant3" sends message "Message 3" to room "room" with 412
|
||||
And user "participant4" sends message "Message 4" to room "room" with 412
|
||||
And user "guest" sends message "Message 5" to room "room" with 201
|
||||
And user "guest2" sends message "Message 6" to room "room" with 412
|
||||
And user "participant1" sees the following messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| room | guests | guest | | Message 5 | [] |
|
||||
| room | users | participant2 | participant2-displayname | Message 2 | [] |
|
||||
| room | users | participant1 | participant1-displayname | Message 1 | [] |
|
||||
And user "participant2" sees the following messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| room | guests | guest | | Message 5 | [] |
|
||||
| room | users | participant2 | participant2-displayname | Message 2 | [] |
|
||||
| room | users | participant1 | participant1-displayname | Message 1 | [] |
|
||||
And user "participant3" sees the following messages in room "room" with 412
|
||||
And user "participant4" sees the following messages in room "room" with 412
|
||||
And user "guest" sees the following messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| room | guests | guest | | Message 5 | [] |
|
||||
| room | users | participant2 | participant2-displayname | Message 2 | [] |
|
||||
| room | users | participant1 | participant1-displayname | Message 1 | [] |
|
||||
And user "guest2" sees the following messages in room "room" with 412
|
||||
|
||||
Scenario: lobby prevents calls for non moderators
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" joins call "room" with 200 (v4)
|
||||
And user "participant2" joins call "room" with 200 (v4)
|
||||
And user "participant3" joins call "room" with 412 (v4)
|
||||
And user "participant4" joins call "room" with 412 (v4)
|
||||
And user "guest" joins call "room" with 200 (v4)
|
||||
And user "guest2" joins call "room" with 412 (v4)
|
||||
And user "participant1" sees 3 peers in call "room" with 200 (v4)
|
||||
And user "participant2" sees 3 peers in call "room" with 200 (v4)
|
||||
And user "participant3" sees 0 peers in call "room" with 412 (v4)
|
||||
And user "participant4" sees 0 peers in call "room" with 412 (v4)
|
||||
And user "guest" sees 3 peers in call "room" with 200 (v4)
|
||||
And user "guest2" sees 0 peers in call "room" with 412 (v4)
|
||||
And user "participant1" leaves call "room" with 200 (v4)
|
||||
And user "participant2" leaves call "room" with 200 (v4)
|
||||
And user "guest" leaves call "room" with 200 (v4)
|
||||
|
||||
Scenario: lobby prevents some room actions for non moderators
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" leaves room "room" with 200 (v4)
|
||||
And user "participant2" leaves room "room" with 200 (v4)
|
||||
And user "participant3" leaves room "room" with 200 (v4)
|
||||
And user "participant4" leaves room "room" with 200 (v4)
|
||||
And user "guest" leaves room "room" with 200 (v4)
|
||||
And user "guest2" leaves room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
And user "participant2" removes themselves from room "room" with 200 (v4)
|
||||
And user "participant3" removes themselves from room "room" with 200 (v4)
|
||||
|
||||
|
||||
|
||||
# Not all the values are checked in the test, only the most relevant ones
|
||||
Scenario: participants can get some room information when the lobby is active
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
And user "participant1" adds user "participant3" to room "room" with 200 (v4)
|
||||
And user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
And user "participant3" joins room "room" with 200 (v4)
|
||||
And user "participant4" joins room "room" with 200 (v4)
|
||||
And user "guest" joins room "room" with 200 (v4)
|
||||
And user "participant1" promotes "guest" in room "room" with 200 (v4)
|
||||
And user "guest2" joins room "room" with 200 (v4)
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "room" with 201
|
||||
And user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | systemMessage |
|
||||
| room | users | participant1 | lobby_non_moderators |
|
||||
| room | users | participant1 | guest_moderator_promoted |
|
||||
| room | users | participant1 | user_added |
|
||||
| room | users | participant1 | moderator_promoted |
|
||||
| room | users | participant1 | user_added |
|
||||
| room | users | participant1 | conversation_created |
|
||||
And user "participant1" sets description for room "room" to "the description" with 200 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 1 | You set the description | Message 1 |
|
||||
And user "participant2" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 2 | {actor} set the description | conversation_created |
|
||||
And user "participant3" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 3 | UNSET | moderator_promoted |
|
||||
And user "participant4" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 5 | UNSET | user_added |
|
||||
And user "guest" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 6 | {actor} set the description | user_added |
|
||||
And user "guest2" is participant of room "room" (v4)
|
||||
| name | description | type | participantType | lastMessage | lastReadMessage |
|
||||
| room | the description | 3 | 4 | UNSET | guest_moderator_promoted |
|
||||
|
||||
|
||||
# Not all the values are checked in the test, only the most relevant ones
|
||||
Scenario: Make sure resetting the lobby timer works on the room list
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
| name | lobbyState |
|
||||
| room | 0 |
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
| name | lobbyState |
|
||||
| room | 1 |
|
||||
When user "participant1" sets lobby state for room "room" to "non moderators" for 5 seconds with 200 (v4)
|
||||
When wait for 10 second
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
| name | lobbyState |
|
||||
| room | 0 |
|
||||
@@ -0,0 +1,254 @@
|
||||
Feature: conversation-2/one-to-one
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
|
||||
Scenario: User has no rooms
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
Then user "participant2" is participant of the following rooms (v4)
|
||||
Then user "participant3" is participant of the following rooms (v4)
|
||||
|
||||
Scenario: User1 invites themself to a one2one room
|
||||
When user "participant1" tries to create room with 403 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and user3 is not part of it
|
||||
When user "participant1" creates room "room1" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room1 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
And user "participant3" is participant of the following rooms (v4)
|
||||
And user "participant1" is participant of room "room1" (v4)
|
||||
And user "participant2" is not participant of room "room1" (v4)
|
||||
And user "participant3" is not participant of room "room1" (v4)
|
||||
Given user "participant2" creates room "room1" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant2" is participant of room "room1" (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room1 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room1 | 1 | 1 |
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and leaves it
|
||||
Given user "participant1" creates room "room2" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room2" (v4)
|
||||
And user "participant2" is not participant of room "room2" (v4)
|
||||
When user "participant1" removes themselves from room "room2" with 200 (v4)
|
||||
Then user "participant1" is not participant of room "room2" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
And user "participant2" is not participant of room "room2" (v4)
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and tries to delete it
|
||||
Given user "participant1" creates room "room3" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Then user "participant1" is participant of room "room3" (v4)
|
||||
And user "participant2" is not participant of room "room3" (v4)
|
||||
When user "participant1" deletes room "room3" with 400 (v4)
|
||||
Then user "participant1" is participant of room "room3" (v4)
|
||||
And user "participant2" is not participant of room "room3" (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and tries to remove user2
|
||||
Given user "participant1" creates room "room4" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room4" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
Then user "participant1" is participant of room "room4" (v4)
|
||||
And user "participant2" is participant of room "room4" (v4)
|
||||
And user "participant1" loads attendees attendee ids in room "room4" (v4)
|
||||
When user "participant1" removes "participant2" from room "room4" with 400 (v4)
|
||||
Then user "participant1" is participant of room "room4" (v4)
|
||||
And user "participant2" is participant of room "room4" (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and tries to rename it
|
||||
Given user "participant1" creates room "room5" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room5" (v4)
|
||||
When user "participant1" renames room "room5" to "new name" with 400 (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and tries to make it public
|
||||
Given user "participant1" creates room "room6" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room6" (v4)
|
||||
When user "participant1" makes room "room6" public with 400 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room6 | 1 | 1 |
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and tries to invite user3
|
||||
Given user "participant1" creates room "room7" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room7" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant1" is participant of room "room7" (v4)
|
||||
And user "participant2" is participant of room "room7" (v4)
|
||||
And user "participant3" is not participant of room "room7" (v4)
|
||||
When user "participant1" adds user "participant3" to room "room7" with 400 (v4)
|
||||
And user "participant3" is not participant of room "room7" (v4)
|
||||
And user "participant1" sees the following attendees in room "room7" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 1 |
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and promote user2 to moderator
|
||||
Given user "participant1" creates room "room8" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room8" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant1" is participant of room "room8" (v4)
|
||||
And user "participant2" is participant of room "room8" (v4)
|
||||
And user "participant1" loads attendees attendee ids in room "room8" (v4)
|
||||
When user "participant1" promotes "participant2" in room "room8" with 400 (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and demote user2 to moderator
|
||||
Given user "participant1" creates room "room9" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room9" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant1" is participant of room "room9" (v4)
|
||||
And user "participant2" is participant of room "room9" (v4)
|
||||
And user "participant1" loads attendees attendee ids in room "room9" (v4)
|
||||
When user "participant1" demotes "participant2" in room "room9" with 400 (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and promote non-invited user
|
||||
Given user "participant1" creates room "room10" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room10" (v4)
|
||||
And user "participant3" is not participant of room "room10" (v4)
|
||||
And user "participant1" loads attendees attendee ids in room "room10" (v4)
|
||||
When user "participant1" promotes "stranger" in room "room10" with 404 (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room and demote non-invited user
|
||||
Given user "participant1" creates room "room11" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room11" (v4)
|
||||
And user "participant3" is not participant of room "room11" (v4)
|
||||
And user "participant1" loads attendees attendee ids in room "room11" (v4)
|
||||
When user "participant1" demotes "stranger" in room "room11" with 404 (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room twice, it's the same room
|
||||
Given user "participant1" creates room "room12" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room12" (v4)
|
||||
And user "participant2" is not participant of room "room12" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room12 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
When user "participant1" creates room "room13" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room12" (v4)
|
||||
And user "participant2" is not participant of room "room12" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room12 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
|
||||
Scenario: User1 invites user2 to a one2one room, leaves and does it again, it's the same room
|
||||
Given user "participant1" creates room "room14" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room14" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
And user "participant1" is participant of room "room14" (v4)
|
||||
And user "participant2" is participant of room "room14" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room14 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room14 | 1 | 1 |
|
||||
When user "participant1" removes themselves from room "room14" with 200 (v4)
|
||||
Then user "participant1" is not participant of room "room14" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
And user "participant2" is participant of room "room14" (v4)
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room14 | 1 | 1 |
|
||||
And user "participant2" sees the following attendees in room "room14" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant2 | 1 |
|
||||
When user "participant1" creates room "room15" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" is participant of room "room14" (v4)
|
||||
And user "participant2" is participant of room "room14" (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room14 | 1 | 1 |
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room14 | 1 | 1 |
|
||||
And user "participant2" sees the following attendees in room "room14" with 200 (v4)
|
||||
| actorType | actorId | participantType |
|
||||
| users | participant1 | 1 |
|
||||
| users | participant2 | 1 |
|
||||
|
||||
Scenario: Check share restrictions on one to one conversation
|
||||
Given the following "core" app config is set
|
||||
| shareapi_restrict_user_enumeration_full_match | no |
|
||||
| shareapi_allow_share_dialog_user_enumeration | yes |
|
||||
| shareapi_restrict_user_enumeration_to_group | yes |
|
||||
| shareapi_restrict_user_enumeration_to_phone | yes |
|
||||
And user "participant1" creates room "room15" with 403 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
|
||||
Scenario: Remove self from one-to-one conversations when deletable config is set deletes it
|
||||
Given user "participant1" creates room "room" with 201 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Given user "participant2" creates room "room" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant1 |
|
||||
Then user "participant1" removes themselves from room "room" with 200 (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 1 | 1 |
|
||||
When user "participant1" creates room "room" with 200 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And the following "spreed" app config is set
|
||||
| delete_one_to_one_conversations | 1 |
|
||||
Then user "participant1" removes themselves from room "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 one-to-one conversations is possible when deletable config is set
|
||||
Given user "participant1" creates room "room" with 201 (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
And user "participant1" sends message "Message" to room "room" with 201
|
||||
Then user "participant1" deletes room "room" with 400 (v4)
|
||||
When the following "spreed" app config is set
|
||||
| delete_one_to_one_conversations | 1 |
|
||||
Then user "participant1" deletes room "room" with 200 (v4)
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
And user "participant2" is participant of the following rooms (v4)
|
||||
@@ -0,0 +1,91 @@
|
||||
Feature: conversation-2/public-private
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
|
||||
Scenario: Owner makes room private/public
|
||||
Given signaling server is started
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
And reset signaling server requests
|
||||
When user "participant1" makes room "room" private with 200 (v4)
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"message","message":{"data":{"type":"chat","chat":{"refresh":true}}}} |
|
||||
| room | {"type":"update","update":{"userids":["participant1"],"properties":{"name":"Private conversation","type":2,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"description":""}}} |
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
And reset signaling server requests
|
||||
When user "participant1" makes room "room" public with 200 (v4)
|
||||
Then signaling server received the following requests
|
||||
| token | data |
|
||||
| room | {"type":"message","message":{"data":{"type":"chat","chat":{"refresh":true}}}} |
|
||||
| room | {"type":"update","update":{"userids":["participant1"],"properties":{"name":"Private conversation","type":3,"lobby-state":0,"lobby-timer":null,"read-only":0,"listable":0,"active-since":null,"sip-enabled":0,"description":""}}} |
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
|
||||
Scenario: Moderator makes room private/public
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
And user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
When user "participant2" makes room "room" private with 200 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
When user "participant2" makes room "room" public with 200 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
|
||||
Scenario: User makes room private/public
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
And user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
When user "participant2" makes room "room" private with 403 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
When user "participant1" makes room "room" private with 200 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
When user "participant2" makes room "room" public with 403 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
|
||||
Scenario: Stranger makes room private/public
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
When user "participant2" makes room "room" private with 404 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 3 | 1 |
|
||||
When user "participant1" makes room "room" private with 200 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
When user "participant2" makes room "room" public with 404 (v4)
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | type | participantType |
|
||||
| room | 2 | 1 |
|
||||
Reference in New Issue
Block a user