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

Источник: 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:
2026-07-06 14:07:50 +00:00
commit 01acfa3b40
1716 changed files with 613013 additions and 0 deletions
@@ -0,0 +1,537 @@
Feature: conversation/files
Background:
Given user "participant1" exists
Given user "participant2" exists
Given user "participant3" exists
And group "group1" exists
And user "participant2" is member of group "group1"
# When "user XXX gets the room for path YYY with 200" succeeds the room token
# can later be used by any participant using the "file YYY room" identifier.
Scenario: get room for file not shared
When user "participant1" gets the room for path "welcome.txt" with 404 (v1)
Scenario: get room for file shared with user
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
When 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)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: get room for folder shared with user
Given user "participant1" creates folder "/test"
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
When user "participant1" gets the room for path "test" with 404 (v1)
And user "participant2" gets the room for path "test" with 404 (v1)
Scenario: get room for file in folder shared with user
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
When user "participant1" gets the room for path "test/renamed.txt" with 200 (v1)
And user "participant2" gets the room for path "test/renamed.txt" with 200 (v1)
Then user "participant1" is not participant of room "file test/renamed.txt room" (v4)
And user "participant2" is not participant of room "file test/renamed.txt room" (v4)
Scenario: get room for file in folder reshared with user
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" shares "test" with user "participant3" with OCS 100
And user "participant3" accepts last share
When user "participant1" gets the room for path "test/renamed.txt" with 200 (v1)
And user "participant2" gets the room for path "test/renamed.txt" with 200 (v1)
And user "participant3" gets the room for path "test/renamed.txt" with 200 (v1)
Then user "participant1" is not participant of room "file test/renamed.txt room" (v4)
And user "participant2" is not participant of room "file test/renamed.txt room" (v4)
And user "participant3" is not participant of room "file test/renamed.txt room" (v4)
Scenario: get room for file no longer shared
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" deletes last share
# FIXME Temporary workaround, should be removed when possible. See https://github.com/nextcloud/spreed/pull/15726 for details
When user "participant2" propfinds path "welcome.txt"
When user "participant1" gets the room for path "welcome.txt" with 404 (v1)
Scenario: get room for file shared with group
Given user "participant1" shares "welcome.txt" with group "group1" with OCS 100
And user "participant2" accepts last share
When 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)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: get room for file shared with user and group
Given user "participant1" shares "welcome.txt" with group "group1" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" with user "participant3" with OCS 100
And user "participant3" accepts last share
When 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 "participant3" gets the room for path "welcome (2).txt" with 200 (v1)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
And user "participant3" is not participant of room "file welcome (2).txt room" (v4)
Scenario: get room for file shared with team
Given team "team1" exists
And add user "participant1" to team "team1"
And add user "participant2" to team "team1"
And user "participant1" shares "welcome.txt" with team "team1" with OCS 100
When 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)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: get room for link share
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
When user "participant1" gets the room for last share with 200 (v1)
And user "participant2" gets the room for last share with 200 (v1)
And user "participant3" gets the room for last share with 200 (v1)
And user "guest" gets the room for last share with 200 (v1)
Then user "participant1" is not participant of room "file last share room" (v4)
And user "participant2" is not participant of room "file last share room" (v4)
And user "participant3" is not participant of room "file last share room" (v4)
And user "guest" is not participant of room "file last share room" (v4)
Scenario: get room for link share protected by password
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
| password | 123456 |
When user "participant1" gets the room for last share with 404 (v1)
And user "participant2" gets the room for last share with 404 (v1)
And user "participant3" gets the room for last share with 404 (v1)
And user "guest" gets the room for last share with 404 (v1)
Scenario: get room for link share of a folder
Given user "participant1" creates folder "/test"
And user "participant1" shares "test" by link with OCS 100
When user "participant1" gets the room for last share with 404 (v1)
And user "participant2" gets the room for last share with 404 (v1)
And user "guest" gets the room for last share with 404 (v1)
Scenario: get room for link no longer shared
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" deletes last share
When user "participant1" gets the room for last share with 404 (v1)
And user "participant2" gets the room for last share with 404 (v1)
And user "participant3" gets the room for last share with 404 (v1)
And user "guest" gets the room for last share with 404 (v1)
Scenario: get room for file shared by link
Given user "participant1" shares "welcome.txt" by link with OCS 100
When user "participant1" gets the room for path "welcome.txt" with 200 (v1)
Then user "participant1" is not participant of room "file welcome.txt room" (v4)
Scenario: get room for file shared by link and protected by password
Given user "participant1" shares "welcome.txt" by link with OCS 100
| password | 123456 |
When user "participant1" gets the room for path "welcome.txt" with 200 (v1)
Then user "participant1" is not participant of room "file welcome.txt room" (v4)
Scenario: get room for folder shared by link
Given user "participant1" creates folder "/test"
And user "participant1" shares "test" by link with OCS 100
When user "participant1" gets the room for path "test" with 404 (v1)
Scenario: get room for file in folder shared by link
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" by link with OCS 100
When user "participant1" gets the room for path "test/renamed.txt" with 404 (v1)
Scenario: get room for file in folder shared by link and reshared with user
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" by link with OCS 100
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
When user "participant1" gets the room for path "test/renamed.txt" with 200 (v1)
And user "participant2" gets the room for path "test/renamed.txt" with 200 (v1)
Then user "participant1" is not participant of room "file test/renamed.txt room" (v4)
And user "participant2" is not participant of room "file test/renamed.txt room" (v4)
Scenario: get room for file shared with user and by link
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
When 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)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: get room for last link share also shared with user
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
When user "participant1" gets the room for last share with 200 (v1)
And user "participant2" gets the room for last share with 200 (v1)
Then user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: owner of a shared file can join its room
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
When user "participant1" joins room "file welcome (2).txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
Scenario: user with access to a file can join its 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)
When user "participant2" joins room "file welcome.txt room" with 200 (v4)
Then user "participant2" is participant of room "file welcome.txt room" (v4)
Scenario: owner of a file in a shared folder can join its room
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" gets the room for path "test/renamed.txt" with 200 (v1)
When user "participant1" joins room "file test/renamed.txt room" with 200 (v4)
Then user "participant1" is participant of room "file test/renamed.txt room" (v4)
Scenario: user with access to a file in a shared folder can join its room
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" gets the room for path "test/renamed.txt" with 200 (v1)
When user "participant2" joins room "file test/renamed.txt room" with 200 (v4)
Then user "participant2" is participant of room "file test/renamed.txt room" (v4)
Scenario: user with access to a file in a reshared folder can join its room
Given user "participant1" creates folder "/test"
And user "participant1" moves file "/welcome.txt" to "/test/renamed.txt" with 201
And user "participant1" shares "test" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" shares "test" with user "participant3" with OCS 100
And user "participant3" accepts last share
And user "participant3" gets the room for path "test/renamed.txt" with 200 (v1)
When user "participant3" joins room "file test/renamed.txt room" with 200 (v4)
Then user "participant3" is participant of room "file test/renamed.txt room" (v4)
Scenario: owner of a no longer shared file can join its room
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
And user "participant1" deletes last share
When user "participant1" joins room "file welcome (2).txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
Scenario: user no longer with access to a file can not join its room
Given user "participant1" shares "welcome.txt" with user "participant3" with OCS 100
And user "participant3" accepts last share
And 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 "participant1" deletes last share
When user "participant2" joins room "file welcome.txt room" with 404 (v4)
Then user "participant2" is not participant of room "file welcome.txt room" (v4)
Scenario: user without access to a file can not join its 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)
When user "participant3" joins room "file welcome.txt room" with 404 (v4)
Then user "participant3" is not participant of room "file welcome.txt room" (v4)
Scenario: guest can not join a 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)
When user "guest" joins room "file welcome.txt room" with 404 (v4)
Scenario: join room for file shared with group
Given user "participant1" shares "welcome.txt" with group "group1" 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)
When user "participant1" joins room "file welcome.txt room" with 200 (v4)
And user "participant2" joins room "file welcome.txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
And user "participant2" is participant of room "file welcome (2).txt room" (v4)
Scenario: join room for file shared with user and group
Given user "participant1" shares "welcome.txt" with group "group1" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" with user "participant3" with OCS 100
And user "participant3" 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 "participant3" gets the room for path "welcome (2).txt" with 200 (v1)
When user "participant1" joins room "file welcome.txt room" with 200 (v4)
And user "participant2" joins room "file welcome.txt room" with 200 (v4)
And user "participant3" joins room "file welcome.txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
And user "participant2" is participant of room "file welcome (2).txt room" (v4)
And user "participant3" is participant of room "file welcome (2).txt room" (v4)
Scenario: owner of a file shared by link can join its room
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" gets the room for last share with 200 (v1)
When user "participant1" joins room "file last share room" with 200 (v4)
Then user "participant1" is participant of room "file last share room" (v4)
Scenario: user with access to a file shared by link can join its room
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant2" gets the room for last share with 200 (v1)
When user "participant2" joins room "file last share room" with 200 (v4)
Then user "participant2" is participant of room "file last share room" (v4)
Scenario: user without access to a file shared by link can join its room
Given user "participant1" shares "welcome.txt" by link with OCS 100
# Users without access to a file shared by link need to log in (so further
# requests keep the same session) and get the room (so the share token is
# stored in the session) to be able to join it.
And user "participant2" logs in
And user "participant2" gets the room for last share with 200 (v1)
When user "participant2" joins room "file last share room" with 200 (v4)
Then user "participant2" is participant of room "file last share room" (v4)
Scenario: guest can join the room of a file shared by link
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "guest" gets the room for last share with 200 (v1)
When user "guest" joins room "file last share room" with 200 (v4)
And user "guest" is participant of room "file last share room" (v4)
Scenario: owner of a shared file is not removed from its room after leaving it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
# Note that the room token is got by a different user than the one that
# joins the room
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
And user "participant1" joins room "file welcome (2).txt room" with 200 (v4)
And user "participant1" is participant of room "file welcome (2).txt room" (v4)
When user "participant1" leaves room "file welcome (2).txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
Scenario: user with access to a file is not removed from its room after leaving it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
# Note that the room token is got by a different user than the one that
# joins the room
And user "participant1" gets the room for path "welcome.txt" with 200 (v1)
And user "participant2" joins room "file welcome.txt room" with 200 (v4)
And user "participant2" is participant of room "file welcome.txt room" (v4)
When user "participant2" leaves room "file welcome.txt room" with 200 (v4)
Then user "participant2" is participant of room "file welcome.txt room" (v4)
Scenario: owner of a file shared by link is not removed from its room after leaving it
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" gets the room for last share with 200 (v1)
And user "participant1" joins room "file last share room" with 200 (v4)
And user "participant1" is participant of room "file last share room" (v4)
When user "participant1" leaves room "file last share room" with 200 (v4)
Then user "participant1" is participant of room "file last share room" (v4)
Scenario: user with access to a file shared by link is not removed from its room after leaving it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
When user "participant2" leaves room "file last share room" with 200 (v4)
Then user "participant2" is participant of room "file last share room" (v4)
Scenario: user without access to a file shared by link is removed from its room after leaving it
Given user "participant1" shares "welcome.txt" by link with OCS 100
# Users without access to a file shared by link need to log in (so further
# requests keep the same session) and get the room (so the share token is
# stored in the session) to be able to join it.
And user "participant2" logs in
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
When user "participant2" leaves room "file last share room" with 200 (v4)
Then user "participant2" is not participant of room "file last share room" (v4)
Scenario: guest is removed from the room of a file shared by link after leaving it
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "guest" gets the room for last share with 200 (v1)
And user "guest" joins room "file last share room" with 200 (v4)
And user "guest" is participant of room "file last share room" (v4)
When user "guest" leaves room "file last share room" with 200 (v4)
And user "guest" is not participant of room "file last share room" (v4)
Scenario: owner of a shared file can join its room again after removing self from it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
# Note that the room token is got by a different user than the one that
# joins the room
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
And user "participant1" joins room "file welcome (2).txt room" with 200 (v4)
And user "participant1" is participant of room "file welcome (2).txt room" (v4)
When user "participant1" removes themselves from room "file welcome (2).txt room" with 200 (v4)
And user "participant1" is not participant of room "file welcome (2).txt room" (v4)
And user "participant1" joins room "file welcome (2).txt room" with 200 (v4)
Then user "participant1" is participant of room "file welcome (2).txt room" (v4)
Scenario: user with access to a file can join its room again after removing self from it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
# Note that the room token is got by a different user than the one that
# joins the room
And user "participant1" gets the room for path "welcome.txt" with 200 (v1)
And user "participant2" joins room "file welcome.txt room" with 200 (v4)
And user "participant2" is participant of room "file welcome.txt room" (v4)
When user "participant2" removes themselves from room "file welcome.txt room" with 200 (v4)
And user "participant2" is not participant of room "file welcome.txt room" (v4)
And user "participant2" joins room "file welcome.txt room" with 200 (v4)
Then user "participant2" is participant of room "file welcome.txt room" (v4)
Scenario: owner of a file shared by link can join its room again after removing self from it
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" gets the room for last share with 200 (v1)
And user "participant1" joins room "file last share room" with 200 (v4)
And user "participant1" is participant of room "file last share room" (v4)
When user "participant1" removes themselves from room "file last share room" with 200 (v4)
And user "participant1" is not participant of room "file last share room" (v4)
And user "participant1" joins room "file last share room" with 200 (v4)
Then user "participant1" is participant of room "file last share room" (v4)
Scenario: user with access to a file shared by link can join its room again after removing self from it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
When user "participant2" removes themselves from room "file last share room" with 200 (v4)
And user "participant2" is not participant of room "file last share room" (v4)
And user "participant2" joins room "file last share room" with 200 (v4)
Then user "participant2" is participant of room "file last share room" (v4)
Scenario: user without access to a file shared by link can join its room again after removing self from it
Given user "participant1" shares "welcome.txt" by link with OCS 100
# Users without access to a file shared by link need to log in (so further
# requests keep the same session) and get the room (so the share token is
# stored in the session) to be able to join it.
And user "participant2" logs in
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
When user "participant2" removes themselves from room "file last share room" with 200 (v4)
And user "participant2" is not participant of room "file last share room" (v4)
And user "participant2" joins room "file last share room" with 200 (v4)
Then user "participant2" is participant of room "file last share room" (v4)
# Guests can not remove themselves from a room.
# Participants are removed from the room for a no longer shared file once they
# try to join the room again, but not when the file is unshared.
Scenario: owner is participant of room for file no longer shared
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 "participant1" joins room "file welcome.txt room" with 200 (v4)
And user "participant1" leaves room "file welcome.txt room" with 200 (v4)
And user "participant1" is participant of room "file welcome.txt room" (v4)
When user "participant1" deletes last share
Then user "participant1" is participant of room "file welcome.txt room" (v4)
And user "participant1" joins room "file welcome.txt room" with 200 (v4)
And user "participant1" is participant of room "file welcome.txt room" (v4)
Scenario: user is not participant of room for file no longer with access to it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant2" gets the room for path "welcome (2).txt" with 200 (v1)
And user "participant2" joins room "file welcome (2).txt room" with 200 (v4)
And user "participant2" leaves room "file welcome (2).txt room" with 200 (v4)
And user "participant2" is participant of room "file welcome (2).txt room" (v4)
When user "participant1" deletes last share
Then user "participant2" is participant of room "file welcome (2).txt room" (v4)
And user "participant2" joins room "file welcome (2).txt room" with 404 (v4)
And user "participant2" is not participant of room "file welcome (2).txt room" (v4)
Scenario: owner is participant of room for file no longer shared by link
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant1" gets the room for last share with 200 (v1)
And user "participant1" joins room "file last share room" with 200 (v4)
And user "participant1" leaves room "file last share room" with 200 (v4)
And user "participant1" is participant of room "file last share room" (v4)
When user "participant1" deletes last share
Then user "participant1" is participant of room "file last share room" (v4)
And user "participant1" joins room "file last share room" with 200 (v4)
And user "participant1" is participant of room "file last share room" (v4)
Scenario: user is participant of room for file no longer shared by link but with access to it
Given user "participant1" shares "welcome.txt" with user "participant2" with OCS 100
And user "participant2" accepts last share
And user "participant1" shares "welcome.txt" by link with OCS 100
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" leaves room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
When user "participant1" deletes last share
Then user "participant2" is participant of room "file last share room" (v4)
# Although the room was created for the shared link it will still be
# available to other types of shares after the shared link is deleted.
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" is participant of room "file last share room" (v4)
Scenario: user is not participant of room for file no longer shared by link and without access to it
Given user "participant1" shares "welcome.txt" by link with OCS 100
# Users without access to a file shared by link need to log in (so further
# requests keep the same session) and get the room (so the share token is
# stored in the session) to be able to join it.
And user "participant2" logs in
And user "participant2" gets the room for last share with 200 (v1)
And user "participant2" joins room "file last share room" with 200 (v4)
And user "participant2" leaves room "file last share room" with 200 (v4)
And user "participant2" is not participant of room "file last share room" (v4)
When user "participant1" deletes last share
Then user "participant2" is not participant of room "file last share room" (v4)
And user "participant2" joins room "file last share room" with 404 (v4)
And user "participant2" is not participant of room "file last share room" (v4)
Scenario: guest is not participant of room for file no longer shared by link
Given user "participant1" shares "welcome.txt" by link with OCS 100
And user "guest" gets the room for last share with 200 (v1)
And user "guest" joins room "file last share room" with 200 (v4)
And user "guest" leaves room "file last share room" with 200 (v4)
When user "participant1" deletes last share
Then user "guest" is not participant of room "file last share room" (v4)
And user "guest" joins room "file last share room" with 404 (v4)
And user "guest" is not participant of room "file last share room" (v4)
@@ -0,0 +1,128 @@
Feature: conversation/find-listed
Background:
Given user "creator" exists
And user "regular-user" exists
And guest accounts can be created
And user "user-guest@example.com" is a guest account user
Scenario Outline: Nobody can find non-listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
When user "creator" allows listing room "group-room" for "none" with 200 (v4)
And user "creator" allows listing room "public-room" for "none" with 200 (v4)
Then user "<user>" cannot find any listed rooms (v4)
Examples:
| user |
| creator |
| regular-user |
| user-guest@example.com |
Scenario: Regular users can find user-listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
And user "creator" sets description for room "group-room" to "the group-room description" with 200 (v4)
And user "creator" sets description for room "public-room" to "the public-room description" with 200 (v4)
When user "creator" allows listing room "group-room" for "users" with 200 (v4)
And user "creator" allows listing room "public-room" for "users" with 200 (v4)
Then user "regular-user" can find listed rooms (v4)
| name | listable | description |
| group-room | 1 | the group-room description |
| public-room | 1 | the public-room description |
And user "user-guest@example.com" cannot find any listed rooms (v4)
Scenario: All users can find all-listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
When user "creator" allows listing room "group-room" for "all" with 200 (v4)
And user "creator" allows listing room "public-room" for "all" with 200 (v4)
Then user "regular-user" can find listed rooms (v4)
| name | listable |
| group-room | 2 |
| public-room | 2 |
And user "user-guest@example.com" can find listed rooms (v4)
| name | listable |
| group-room | 2 |
| public-room | 2 |
Scenario: Participants cannot search for already joined listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
And user "creator" allows listing room "group-room" for "users" with 200 (v4)
And user "creator" allows listing room "public-room" for "users" with 200 (v4)
When user "regular-user" joins room "group-room" with 200 (v4)
And user "regular-user" joins room "public-room" with 200 (v4)
Then user "regular-user" cannot find any listed rooms (v4)
Scenario: Participants cannot search for already joined listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
And user "creator" allows listing room "group-room" for "users" with 200 (v4)
And user "creator" allows listing room "public-room" for "users" with 200 (v4)
When user "regular-user" joins room "group-room" with 200 (v4)
And user "regular-user" joins room "public-room" with 200 (v4)
Then user "regular-user" cannot find any listed rooms (v4)
Scenario: Users can use search terms to find listed rooms
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
And user "creator" creates room "group-the-cool-room" (v4)
| roomType | 2 |
| roomName | group-the-cool-room |
And user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
And user "creator" creates room "public-the-cool-room" (v4)
| roomType | 3 |
| roomName | public-the-cool-room |
When user "creator" allows listing room "group-room" for "all" with 200 (v4)
And user "creator" allows listing room "public-room" for "all" with 200 (v4)
And user "creator" allows listing room "group-the-cool-room" for "all" with 200 (v4)
And user "creator" allows listing room "public-the-cool-room" for "all" with 200 (v4)
Then user "regular-user" can find listed rooms with term "cool" (v4)
| name | listable |
| group-the-cool-room | 2 |
| public-the-cool-room | 2 |
And user "user-guest@example.com" can find listed rooms with term "cool" (v4)
| name | listable |
| group-the-cool-room | 2 |
| public-the-cool-room | 2 |
Scenario: Searching for a listable room by unknown term returns no results
Given user "creator" creates room "group-room" (v4)
| roomType | 2 |
| roomName | group-room |
When user "creator" allows listing room "group-room" for "all" with 200 (v4)
Then user "regular-user" cannot find any listed rooms with term "cool" (v4)
And user "user-guest@example.com" cannot find any listed rooms with term "cool" (v4)
Scenario: Guest users without accounts cannot search for listed rooms
Given user "creator" creates room "public-room" (v4)
| roomType | 3 |
| roomName | public-room |
And user "creator" creates room "public-room-listed" (v4)
| roomType | 3 |
| roomName | public-room-listed |
And user "creator" allows listing room "public-room-listed" for "all" with 200 (v4)
When user "guest" joins room "public-room" with 200 (v4)
Then user "guest" cannot find any listed rooms with 401 (v4)
@@ -0,0 +1,112 @@
Feature: conversation/join-listable
Background:
Given user "creator" exists
And user "regular-user" exists
And guest accounts can be created
And user "user-guest@example.com" is a guest account user
# implicit: And user "guest" is a guest user with no account
# -----------------------------------------------------------------------------
# Non-listed rooms
# -----------------------------------------------------------------------------
Scenario: Nobody can join a non-listed group room
Given user "creator" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
When user "creator" allows listing room "room" for "none" with 200 (v4)
Then user "regular-user" joins room "room" with 404 (v4)
And user "user-guest@example.com" joins room "room" with 404 (v4)
And user "guest" joins room "room" with 404 (v4)
Scenario: Anyone can join a non-listed public room
Given user "creator" creates room "room" (v4)
| roomType | 3 |
| roomName | room |
And user "creator" allows listing room "room" for "none" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
And user "user-guest@example.com" joins room "room" with 200 (v4)
And user "guest" joins room "room" with 200 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER_SELF_JOINED | users |
| user-guest@example.com | USER_SELF_JOINED | users |
| "guest" | GUEST | guests |
# -----------------------------------------------------------------------------
# User-listed rooms
# -----------------------------------------------------------------------------
Scenario: Only regular users can join a user-listed group room
Given user "creator" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "creator" allows listing room "room" for "users" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
And user "user-guest@example.com" joins room "room" with 404 (v4)
And user "guest" joins room "room" with 404 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER | users |
Scenario: Anyone can join a user-listed public room
Given user "creator" creates room "room" (v4)
| roomType | 3 |
| roomName | room |
And user "creator" allows listing room "room" for "users" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
And user "user-guest@example.com" joins room "room" with 200 (v4)
And user "guest" joins room "room" with 200 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER | users |
| user-guest@example.com | USER_SELF_JOINED | users |
| "guest" | GUEST | guests |
# -----------------------------------------------------------------------------
# All-listed rooms
# -----------------------------------------------------------------------------
Scenario: Only users with accounts can join an all-listed group room
Given user "creator" creates room "room" (v4)
| roomType | 2 |
| roomName | room |
And user "creator" allows listing room "room" for "all" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
And user "user-guest@example.com" joins room "room" with 200 (v4)
And user "guest" joins room "room" with 404 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER | users |
| user-guest@example.com | USER | users |
Scenario: Anyone can join an all-listed public room
Given user "creator" creates room "room" (v4)
| roomType | 3 |
| roomName | room |
And user "creator" allows listing room "room" for "all" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
And user "user-guest@example.com" joins room "room" with 200 (v4)
And user "guest" joins room "room" with 200 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER | users |
| user-guest@example.com | USER | users |
| "guest" | GUEST | guests |
# -----------------------------------------------------------------------------
# Join listed conversation which has a password
# -----------------------------------------------------------------------------
Scenario: Only users with accounts can join an all-listed group room
Given user "creator" creates room "room" (v4)
| roomType | 3 |
| roomName | room |
When user "creator" sets password "foobar" for room "room" with 200 (v4)
And user "creator" allows listing room "room" for "all" with 200 (v4)
When user "regular-user" joins room "room" with 200 (v4)
Then user "creator" sees the following attendees in room "room" with 200 (v4)
| actorId | participantType | actorType |
| creator | OWNER | users |
| regular-user | USER | users |