Files
f7_talk/tests/integration/features/federation/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

160 lines
11 KiB
Gherkin

Feature: federation/join-leave
Background:
Given using server "REMOTE"
And user "participant2" exists
And the following "spreed" app config is set
| federation_enabled | yes |
And using server "LOCAL"
And user "participant1" exists
And the following "spreed" app config is set
| federation_enabled | yes |
Scenario: join a group room
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "participant1" adds federated_user "participant2" to room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" has the following invitations (v1)
| remoteServerUrl | remoteToken | state | inviterCloudId | inviterDisplayName |
| LOCAL | room | 0 | participant1@LOCAL | participant1-displayname |
And user "participant2" accepts invite to room "room" of server "LOCAL" with 200 (v1)
| id | name | type | remoteServer | remoteToken |
| LOCAL::room | room | 2 | LOCAL | room |
When using server "LOCAL"
And user "participant1" joins room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" joins room "LOCAL::room" with 200 (v4)
Then using server "LOCAL"
And user "participant1" is participant of room "room" (v4)
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [SESSION,] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [SESSION#participant2@{$REMOTE_URL},] |
And using server "REMOTE"
And user "participant2" is participant of room "LOCAL::room" (v4)
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [SESSION,] |
| users | participant2 | 3 | [SESSION#participant2@{$REMOTE_URL},] |
Scenario: join a group room again without leaving it first
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "participant1" adds federated_user "participant2" to room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" has the following invitations (v1)
| remoteServerUrl | remoteToken | state | inviterCloudId | inviterDisplayName |
| LOCAL | room | 0 | participant1@LOCAL | participant1-displayname |
And user "participant2" accepts invite to room "room" of server "LOCAL" with 200 (v1)
| id | name | type | remoteServer | remoteToken |
| LOCAL::room | room | 2 | LOCAL | room |
And using server "LOCAL"
And user "participant1" joins room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" joins room "LOCAL::room" with 200 (v4)
When user "participant2" joins room "LOCAL::room" with 200 (v4)
Then using server "LOCAL"
And user "participant1" is participant of room "room" (v4)
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [SESSION,] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [SESSION#participant2@{$REMOTE_URL},SESSION#participant2@{$REMOTE_URL},] |
And using server "REMOTE"
And user "participant2" is participant of room "LOCAL::room" (v4)
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [SESSION,] |
| users | participant2 | 3 | [SESSION#participant2@{$REMOTE_URL},SESSION#participant2@{$REMOTE_URL},] |
Scenario: leave a group room
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "participant1" adds federated_user "participant2" to room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" has the following invitations (v1)
| remoteServerUrl | remoteToken | state | inviterCloudId | inviterDisplayName |
| LOCAL | room | 0 | participant1@LOCAL | participant1-displayname |
And user "participant2" accepts invite to room "room" of server "LOCAL" with 200 (v1)
| id | name | type | remoteServer | remoteToken |
| LOCAL::room | room | 2 | LOCAL | room |
And using server "LOCAL"
And user "participant1" joins room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" joins room "LOCAL::room" with 200 (v4)
And using server "LOCAL"
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [SESSION,] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [SESSION#participant2@{$REMOTE_URL},] |
And using server "REMOTE"
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [SESSION,] |
| users | participant2 | 3 | [SESSION#participant2@{$REMOTE_URL},] |
When user "participant2" leaves room "LOCAL::room" with 200 (v4)
Then using server "LOCAL"
And user "participant1" is participant of room "room" (v4)
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [SESSION,] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [] |
And using server "REMOTE"
And user "participant2" is participant of room "LOCAL::room" (v4)
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [SESSION,] |
| users | participant2 | 3 | [] |
Scenario: leave a room with the session of another user
Given using server "REMOTE"
And user "participant3" exists
And using server "LOCAL"
Given user "participant1" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "participant1" adds federated_user "participant2" to room "room" with 200 (v4)
And user "participant1" adds federated_user "participant3" to room "room" with 200 (v4)
And using server "REMOTE"
And user "participant2" has the following invitations (v1)
| remoteServerUrl | remoteToken | state | inviterCloudId | inviterDisplayName |
| LOCAL | room | 0 | participant1@LOCAL | participant1-displayname |
And user "participant2" accepts invite to room "room" of server "LOCAL" with 200 (v1)
| id | name | type | remoteServer | remoteToken |
| LOCAL::room | room | 2 | LOCAL | room |
And user "participant3" has the following invitations (v1)
| remoteServerUrl | remoteToken | state | inviterCloudId | inviterDisplayName |
| LOCAL | room | 0 | participant1@LOCAL | participant1-displayname |
And user "participant3" accepts invite to room "room" of server "LOCAL" with 200 (v1)
| id | name | type | remoteServer | remoteToken |
| LOCAL::room | room | 2 | LOCAL | room |
And user "participant2" joins room "LOCAL::room" with 200 (v4)
And user "participant3" joins room "LOCAL::room" with 200 (v4)
And using server "LOCAL"
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [SESSION#participant2@{$REMOTE_URL},] |
| federated_users | participant3@{$REMOTE_URL} | 3 | [SESSION#participant3@{$REMOTE_URL},] |
And using server "REMOTE"
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [] |
| users | participant2 | 3 | [SESSION#participant2@{$REMOTE_URL},] |
| users | participant3 | 3 | [SESSION#participant3@{$REMOTE_URL},] |
When user "participant2" forges a request for user "participant3" to room "LOCAL::room" with 404 (v4)
And user "participant2" sees the following attendees in room "LOCAL::room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| federated_users | participant1@{$LOCAL_URL} | 1 | [] |
| users | participant2 | 3 | [SESSION#participant2@{$REMOTE_URL},] |
| users | participant3 | 3 | [SESSION#participant3@{$REMOTE_URL},] |
Then using server "LOCAL"
And user "participant1" sees the following attendees in room "room" with 200 (v4)
| actorType | actorId | participantType | sessionIds |
| users | participant1 | 1 | [] |
| federated_users | participant2@{$REMOTE_URL} | 3 | [SESSION#participant2@{$REMOTE_URL},] |
| federated_users | participant3@{$REMOTE_URL} | 3 | [SESSION#participant3@{$REMOTE_URL},] |