Files
f7_talk/tests/integration/features/conversation-3/join-leave.feature
glb_adm 01acfa3b40
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
UPSTREAM BASELINE: nextcloud/spreed v22.0.12 (без изменений)
Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz
С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06).
Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
2026-07-06 14:07:50 +00:00

119 lines
6.1 KiB
Gherkin

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)