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,220 @@
|
||||
Feature: chat-2/reply
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
And group "attendees1" exists
|
||||
And user "participant2" is member of group "attendees1"
|
||||
|
||||
Scenario: user can reply to own message
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
Scenario: user can reply to other's messages
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
When user "participant2" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
Scenario: several users can reply to the same message several times
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-2" on message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends reply "Message 1-3" on message "Message 1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-4" on message "Message 1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-4 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-3 | [] | Message 1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-2 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-4 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-3 | [] | Message 1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-2 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
|
||||
|
||||
Scenario: user can reply to shared file messages
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" shares "welcome.txt" with room "group room"
|
||||
# The messages need to be got so the file message is added to the list of
|
||||
# known messages to reply to.
|
||||
# The file message parameters are not relevant for this test and are quite
|
||||
# large, so they are simply ignored.
|
||||
And user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | {file} | "IGNORE" | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | {file} | "IGNORE" | |
|
||||
When user "participant1" sends reply "Message X-1" on message "{file}" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message X-2" on message "{file}" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message X-2 | [] | {file} |
|
||||
| group room | users | participant1 | participant1-displayname | Message X-1 | [] | {file} |
|
||||
| group room | users | participant1 | participant1-displayname | {file} | "IGNORE" | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message X-2 | [] | {file} |
|
||||
| group room | users | participant1 | participant1-displayname | Message X-1 | [] | {file} |
|
||||
| group room | users | participant1 | participant1-displayname | {file} | "IGNORE" | |
|
||||
|
||||
Scenario: user can not reply to system messages
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
# The system messages need to be got so they are added to the list of known
|
||||
# messages to reply to.
|
||||
And user "participant1" sees the following system messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| group room | users | participant1 | participant1-displayname | user_added |
|
||||
| group room | users | participant1 | participant1-displayname | group_added |
|
||||
| group room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" sends reply "Message X-1" on message "conversation_created" to room "group room" with 400
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
|
||||
|
||||
|
||||
Scenario: user can reply to own replies
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1-1" on message "Message 1-1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
Scenario: user can reply to other's replies
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1-1" on message "Message 1-1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-1-1-1" on message "Message 1-1-1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-1-1 | [] | Message 1-1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-1-1 | [] | Message 1-1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
Scenario: several users can reply to the same reply several times
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1-1" on message "Message 1-1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-1-2" on message "Message 1-1" to room "group room" with 201
|
||||
And user "participant1" sends reply "Message 1-1-3" on message "Message 1-1" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 1-1-4" on message "Message 1-1" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-4 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-3 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-2 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant2" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-4 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-3 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1-2 | [] | Message 1-1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1-1-1 | [] | Message 1-1 |
|
||||
| group room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
|
||||
Scenario: getting parent and quote works
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant2" sends reply "Message 2-1" on message "Message 2" to room "group room" with 201
|
||||
Then user "participant1" sees the following messages in room "group room" starting with "Message 1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
| group room | users | participant1 | participant1-displayname | Message 2 | [] | |
|
||||
| group room | users | participant2 | participant2-displayname | Message 2-1 | [] | Message 2 |
|
||||
Then user "participant1" sees the following messages in room "group room" starting with "Message 2" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 2 | [] | |
|
||||
| group room | users | participant2 | participant2-displayname | Message 2-1 | [] | Message 2 |
|
||||
|
||||
|
||||
|
||||
Scenario: user can not reply when not in the room
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
When user "participant3" sends reply "Message 1-1" on message "Message 1" to room "group room" with 404
|
||||
Then user "participant1" sees the following messages in room "group room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| group room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
And user "participant3" sees the following messages in room "group room" with 404
|
||||
|
||||
|
||||
|
||||
Scenario: user can not reply to a message from another room
|
||||
Given user "participant1" creates room "group room1" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" creates room "group room2" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
And user "participant1" sends message "Message 1" to room "group room1" with 201
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "group room2" with 400
|
||||
Then user "participant1" sees the following messages in room "group room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| group room1 | users | participant1 | participant1-displayname | Message 1 | [] |
|
||||
And user "participant1" sees the following messages in room "group room2" with 200
|
||||
@@ -0,0 +1,62 @@
|
||||
Feature: chat-2/rich-messages
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
Given user "participant3a" exists
|
||||
|
||||
Scenario: message without enrichable references has empty parameters
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Message without enrichable references" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Message without enrichable references | [] |
|
||||
|
||||
Scenario: message with mention to valid user has mention parameter
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Mention to @participant2" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to {mention-user1} | {"mention-user1":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
|
||||
Scenario: message with mention to invalid user has mention parameter
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Mention to @unknownUser" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to @unknownUser | [] |
|
||||
|
||||
Scenario: message with duplicated mention has single mention parameter
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Mention to @participant2 and @participant2 again" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to {mention-user1} and {mention-user1} again | {"mention-user1":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
|
||||
Scenario: message with mentions to several users has mention parameters
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Mention to @participant2, @unknownUser, @participant2 again and @participant3" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to {mention-user1}, @unknownUser, {mention-user1} again and {mention-user2} | {"mention-user1":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"},"mention-user2":{"type":"user","id":"participant3","name":"participant3-displayname","mention-id":"participant3"}} |
|
||||
|
||||
Scenario: message with mentions of subname users (uid1 is fully part of uid2)
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sends message "Mention to @participant3 and @participant3a" to room "public room" with 201
|
||||
When user "participant1" sends message "Mention to @participant3a and @participant3" to room "public room" with 201
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to {mention-user1} and {mention-user2} | {"mention-user1":{"type":"user","id":"participant3a","name":"participant3a-displayname","mention-id":"participant3a"},"mention-user2":{"type":"user","id":"participant3","name":"participant3-displayname","mention-id":"participant3"}} |
|
||||
| public room | users | participant1 | participant1-displayname | Mention to {mention-user2} and {mention-user1} | {"mention-user1":{"type":"user","id":"participant3a","name":"participant3a-displayname","mention-id":"participant3a"},"mention-user2":{"type":"user","id":"participant3","name":"participant3-displayname","mention-id":"participant3"}} |
|
||||
@@ -0,0 +1,79 @@
|
||||
Feature: chat-2/rich-object-share
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
|
||||
Scenario: Share a rich object to a chat
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "public room" with 201 (v1)
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | {object} | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"object":{"name":"Another room","call-type":"group","type":"call","id":"R4nd0mT0k3n","icon-url":"{VALIDATE_ICON_URL_PATTERN}"}} |
|
||||
|
||||
Scenario: Can not share without chat permission
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "public room" with 200 (v4)
|
||||
# Removing chat permission only
|
||||
Then user "participant1" sets permissions for "participant2" in room "public room" to "CSJLAVP" with 200 (v4)
|
||||
When user "participant2" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "public room" with 403 (v1)
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
|
||||
Scenario: Delete a rich object from a chat
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "public room" with 201 (v1)
|
||||
And user "participant1" deletes message "shared::call::R4nd0mT0k3n" from room "public room" with 200
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| public room | users | participant1 | participant1-displayname | Message deleted by you | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} | |
|
||||
|
||||
Scenario: Can not delete without chat permission
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "public room" with 200 (v4)
|
||||
When user "participant2" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "public room" with 201 (v1)
|
||||
# Removing chat permission only
|
||||
Then user "participant1" sets permissions for "participant2" in room "public room" to "CSJLAVP" with 200 (v4)
|
||||
And user "participant2" deletes message "shared::call::R4nd0mT0k3n" from room "public room" with 403
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant2 | participant2-displayname | {object} | {"actor":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"},"object":{"name":"Another room","call-type":"group","type":"call","id":"R4nd0mT0k3n","icon-url":"{VALIDATE_ICON_URL_PATTERN}"}} |
|
||||
|
||||
Scenario: Share an invalid rich object to a chat
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" shares rich-object "call" "R4nd0mT0k3n" '{"MISSINGname":"Another room","call-type":"group"}' to room "public room" with 400 (v1)
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
|
||||
Scenario: Share an invalid location to a chat
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" shares rich-object "geo-location" "https://nextcloud.com/" '{"name":"Location name"}' to room "public room" with 400 (v1)
|
||||
Then user "participant1" sees the following messages in room "public room" with 200
|
||||
|
||||
Scenario: Get rich object and file shares for media tab
|
||||
Given user "participant1" creates room "public room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
Then user "participant1" sees the following shared summarized overview in room "public room" with 200
|
||||
When user "participant1" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "public room" with 201 (v1)
|
||||
Then user "participant1" sees the following shared other in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | {object} | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"object":{"name":"Another room","call-type":"group","type":"call","id":"R4nd0mT0k3n","icon-url":"{VALIDATE_ICON_URL_PATTERN}"}} |
|
||||
When user "participant1" shares "welcome.txt" with room "public room" with OCS 100
|
||||
Then user "participant1" sees the following shared file in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | {file} | "IGNORE" |
|
||||
And user "guest" joins room "public room" with 200 (v4)
|
||||
Then user "guest" sees the following shared file in room "public room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters |
|
||||
| public room | users | participant1 | participant1-displayname | {file} | "IGNORE" |
|
||||
@@ -0,0 +1,63 @@
|
||||
Feature: chat-2/search
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
|
||||
Scenario: Can not search when not a participant
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
And user "participant1" sends message "Message 1" to room "room" with 201
|
||||
When user "participant2" searches for messages with "essa" in room "room" with 200
|
||||
|
||||
Scenario: Search for message when being a participant
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room1 |
|
||||
Given user "participant1" creates room "room2" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room2 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" adds user "participant2" to room "room2" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "room1" with 201
|
||||
And user "participant1" sends message "Message 2" to room "room2" with 201
|
||||
And user "participant1" sends thread "Thread 1" with message "Thread 1" to room "room1" with 201
|
||||
And user "participant2" sends reply "Thread 1-1" on thread "Thread 1" to room "room1" with 201
|
||||
When user "participant1" shares "welcome.txt" with room "room1"
|
||||
| talkMetaData | {"caption":"Message 3"} |
|
||||
Then user "participant1" sees the following messages in room "room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 3 | "IGNORE" | |
|
||||
| room1 | users | participant2 | participant2-displayname | Thread 1-1 | [] | Thread 1 |
|
||||
| room1 | users | participant1 | participant1-displayname | Thread 1 | [] | |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
When user "participant2" searches for messages with "essa" in room "room1" with 200
|
||||
| title | subline | attributes.conversation | attributes.messageId |
|
||||
| participant1-displayname | Message 3 | room1 | Message 3 |
|
||||
| participant1-displayname | Message 1 | room1 | Message 1 |
|
||||
When user "participant2" searches for messages with "essa" in room "room2" with 200
|
||||
| title | subline | attributes.conversation | attributes.messageId |
|
||||
| participant1-displayname | Message 2 | room2 | Message 2 |
|
||||
When user "participant2" searches for messages with "conversation:ROOM(room1) essa" in room "room1" with 200
|
||||
| title | subline | attributes.conversation | attributes.messageId |
|
||||
| participant1-displayname | Message 3 | room1 | Message 3 |
|
||||
| participant1-displayname | Message 1 | room1 | Message 1 |
|
||||
When user "participant2" searches for messages in other rooms with "conversation:ROOM(room1) essa" in room "room1" with 200
|
||||
When user "participant2" searches for messages with "conversation:ROOM(room1) essa" in room "room2" with 200
|
||||
When user "participant2" searches for messages in other rooms with "conversation:ROOM(room1) essa" in room "room2" with 200
|
||||
| title | subline | attributes.conversation | attributes.messageId |
|
||||
| participant1-displayname | Message 3 | room1 | Message 3 |
|
||||
| participant1-displayname | Message 1 | room1 | Message 1 |
|
||||
When user "participant2" searches for messages with "read" in room "room1" with 200
|
||||
| title | subline | attributes.conversation | attributes.threadId | attributes.messageId |
|
||||
| participant2-displayname | Thread 1-1 | room1 | Thread 1 | Thread 1-1 |
|
||||
| participant1-displayname | Thread 1 | room1 | Thread 1 | Thread 1 |
|
||||
|
||||
Scenario: Can not search when being blocked by the lobby
|
||||
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" sends message "Message 1" to room "room" with 201
|
||||
And user "participant1" sets lobby state for room "room" to "non moderators" with 200 (v4)
|
||||
When user "participant2" searches for messages with "essa" in room "room" with 200
|
||||
@@ -0,0 +1,23 @@
|
||||
Feature: chat-4/summary
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
|
||||
Scenario: Request a chat summary
|
||||
Given Fake summary task provider is enabled
|
||||
And the following spreed app config is set
|
||||
| ai_unread_summary_batch_size | 3 |
|
||||
And 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" sends message "Message 1" to room "room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "room" with 201
|
||||
And user "participant1" sends message "Message 4" to room "room" with 201
|
||||
And user "participant2" requests summary for "room" starting from "Message 1" with 201
|
||||
| nextOffset | Message 3 |
|
||||
And repeating run "OC\TaskProcessing\SynchronousBackgroundJob" background jobs
|
||||
Then user "participant2" receives summary for "room" with 200
|
||||
| contains | This is a fake summary |
|
||||
And user "participant2" requests summary for "room" starting from "Message 3" with 201
|
||||
@@ -0,0 +1,297 @@
|
||||
Feature: chat-2/system-messages
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
Given user "participant3" exists
|
||||
And group "attendees1" exists
|
||||
And user "participant2" is member of group "attendees1"
|
||||
And user "participant3" is member of group "attendees1"
|
||||
|
||||
Scenario: Creating an empty room
|
||||
When user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Rename a room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
When user "participant1" renames room "room" to "system test" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_renamed |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Set a description
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
When user "participant1" sets description for room "room" to "New description" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | description_set |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Removes a description
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" sets description for room "room" to "New description" with 200 (v4)
|
||||
When user "participant1" sets description for room "room" to "" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | description_removed |
|
||||
| room | users | participant1 | participant1-displayname | description_set |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Toggle guests
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
When user "participant1" makes room "room" public with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | guests_allowed |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" makes room "room" private with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | guests_disallowed |
|
||||
| room | users | participant1 | participant1-displayname | guests_allowed |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Toggle password
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" sets password "123456" for room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | password_set |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" sets password "" for room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | password_removed |
|
||||
| room | users | participant1 | participant1-displayname | password_set |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Creating a group room
|
||||
When user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| invite | attendees1 |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | group_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Creating a one2one room
|
||||
When user "participant1" creates room "room" (v4)
|
||||
| roomType | 1 |
|
||||
| invite | participant2 |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Adding participant to room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
When user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Joining public room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 3 |
|
||||
| roomName | room |
|
||||
When user "participant1" joins room "room" with 200 (v4)
|
||||
And user "participant2" joins room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Joining room for file
|
||||
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 "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" sees the following system messages in room "file welcome.txt room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| file welcome.txt room | users | participant2 | participant2-displayname | user_added |
|
||||
| file welcome.txt room | users | participant1 | participant1-displayname | user_added |
|
||||
| file welcome.txt room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "file welcome.txt room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| file welcome.txt room | users | participant2 | participant2-displayname | user_added |
|
||||
| file welcome.txt room | users | participant1 | participant1-displayname | user_added |
|
||||
| file welcome.txt room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Joining room for link share
|
||||
Given user "participant1" shares "welcome.txt" by link with OCS 100
|
||||
And user "participant1" gets the room for last share with 200 (v1)
|
||||
# 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 "participant1" joins room "file last share room" with 200 (v4)
|
||||
And user "participant2" joins room "file last share room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "file last share room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| file last share room | users | participant1 | participant1-displayname | user_added |
|
||||
| file last share room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "file last share room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| file last share room | users | participant1 | participant1-displayname | user_added |
|
||||
| file last share room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Joining listed room
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" allows listing room "room" for "all" with 200 (v4)
|
||||
When user "participant2" joins room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant2 | participant2-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | listable_all |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant2 | participant2-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | listable_all |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Ending call for all
|
||||
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 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 "participant1" joins call "room" with 200 (v4)
|
||||
And user "participant2" joins call "room" with 200 (v4)
|
||||
And user "participant3" joins call "room" with 200 (v4)
|
||||
When user "participant1" ends call "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | call_ended_everyone |
|
||||
| room | users | participant3 | participant3-displayname | call_joined |
|
||||
| room | users | participant2 | participant2-displayname | call_joined |
|
||||
| room | users | participant1 | participant1-displayname | call_started |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | call_ended_everyone |
|
||||
| room | users | participant3 | participant3-displayname | call_joined |
|
||||
| room | users | participant2 | participant2-displayname | call_joined |
|
||||
| room | users | participant1 | participant1-displayname | call_started |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant3" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | call_ended_everyone |
|
||||
| room | users | participant3 | participant3-displayname | call_joined |
|
||||
| room | users | participant2 | participant2-displayname | call_joined |
|
||||
| room | users | participant1 | participant1-displayname | call_started |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Participant escalation
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" adds user "participant2" to room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" promotes "participant2" in room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | moderator_promoted |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" demotes "participant2" in room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | moderator_demoted |
|
||||
| room | users | participant1 | participant1-displayname | moderator_promoted |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
When user "participant1" removes "participant2" from room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | user_removed |
|
||||
| room | users | participant1 | participant1-displayname | moderator_demoted |
|
||||
| room | users | participant1 | participant1-displayname | moderator_promoted |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Changing listable scope of 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" allows listing room "room" for "all" with 200 (v4)
|
||||
And user "participant1" allows listing room "room" for "users" with 200 (v4)
|
||||
And user "participant1" allows listing room "room" for "none" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | listable_none |
|
||||
| room | users | participant1 | participant1-displayname | listable_users |
|
||||
| room | users | participant1 | participant1-displayname | listable_all |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | listable_none |
|
||||
| room | users | participant1 | participant1-displayname | listable_users |
|
||||
| room | users | participant1 | participant1-displayname | listable_all |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
|
||||
Scenario: Locking a 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" locks room "room" with 200 (v4)
|
||||
And user "participant1" unlocks room "room" with 200 (v4)
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | read_only_off |
|
||||
| room | users | participant1 | participant1-displayname | read_only |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
And user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | systemMessage |
|
||||
| room | users | participant1 | participant1-displayname | read_only_off |
|
||||
| room | users | participant1 | participant1-displayname | read_only |
|
||||
| room | users | participant1 | participant1-displayname | user_added |
|
||||
| room | users | participant1 | participant1-displayname | conversation_created |
|
||||
@@ -0,0 +1,327 @@
|
||||
Feature: chat-4/threads
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
|
||||
Scenario: Create a thread
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
|
||||
Scenario: Create thread and reply
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
And user "participant2" sends reply "Message 1-1" on message "Message 1" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
Then user "participant1" sees the following messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage | threadTitle | threadReplies |
|
||||
| room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 | Thread 1 | 1 |
|
||||
| room | users | participant1 | participant1-displayname | Message 1 | [] | | Thread 1 | 1 |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | thread_created | You created thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(Thread 1),"name":"Thread 1"}} |
|
||||
| room | users | participant1 | user_added | You added {user} | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"user":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
| room | users | participant1 | conversation_created | You created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
And user "participant1" renames thread "Thread 1" to "Thredited 1" in room "room" with 200
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thredited 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
Then user "participant1" sees the following messages in room "room" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room | users | participant2 | participant2-displayname | Message 1-1 | [] | Message 1 |
|
||||
| room | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
Then user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | thread_renamed | {actor} renamed thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(Thread 1),"name":"Thredited 1"}} |
|
||||
| room | users | participant1 | thread_created | {actor} created thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(Thread 1),"name":"Thread 1"}} |
|
||||
| room | users | participant1 | user_added | {actor} added you | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"user":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
| room | users | participant1 | conversation_created | {actor} created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
|
||||
Scenario: Non moderators can only rename their own threads
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
And user "participant2" sends thread "Thread 2" with message "Message 2" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
And user "participant2" renames thread "Thread 1" to "No permissions" in room "room" with 403
|
||||
And user "participant2" renames thread "Thread 2" to "My own thread" in room "room" with 200
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | My own thread | 0 | 0 | 0 | Message 2 | NULL |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
And user "participant1" renames thread "Thread 1" to "Moderator thread" in room "room" with 200
|
||||
And user "participant1" renames thread "Thread 2" to "User thread" in room "room" with 200
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | User thread | 0 | 0 | 0 | Message 2 | NULL |
|
||||
| Message 1 | Moderator thread | 0 | 0 | 0 | Message 1 | NULL |
|
||||
|
||||
Scenario: Notification levels
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
And user "participant2" sends reply "Message 1-1" on thread "Thread 1" to room "room" with 201
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
And user "participant2" sends reply "Message 1-2" on message "Message 1" to room "room" with 201
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
| spreed | chat | room/Message 1-2/Thread 1 | participant2-displayname replied to your message in conversation room |
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 1 with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 2 | Message 1-2 | 1 | Message 1 | Message 1-2 |
|
||||
And user "participant2" sends reply "Message 1-3" on thread "Thread 1" to room "room" with 201
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
| spreed | chat | room/Message 1-3/Thread 1 | participant2-displayname sent a message in conversation room |
|
||||
| spreed | chat | room/Message 1-2/Thread 1 | participant2-displayname replied to your message in conversation room |
|
||||
When user "participant2" sends reply "@participant1" on thread "Thread 1" to room "room" with 201
|
||||
Then user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
| spreed | chat | room/@participant1/Thread 1 | participant2-displayname mentioned you in conversation room |
|
||||
| spreed | chat | room/Message 1-3/Thread 1 | participant2-displayname sent a message in conversation room |
|
||||
| spreed | chat | room/Message 1-2/Thread 1 | participant2-displayname replied to your message in conversation room |
|
||||
|
||||
Scenario: Thread titles are trimmed
|
||||
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" sends thread "More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789" with message "Message 1" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 … | 0 | 0 | 0 | Message 1 | NULL |
|
||||
Then user "participant1" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | thread_created | You created thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789),"name":"More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 \u2026"}} |
|
||||
| room | users | participant1 | user_added | You added {user} | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"user":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
| room | users | participant1 | conversation_created | You created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
And user "participant1" renames thread "More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789" to "Still more than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789" in room "room" with 200
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Still more than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234… | 0 | 0 | 0 | Message 1 | NULL |
|
||||
Then user "participant2" sees the following system messages in room "room" with 200
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | thread_renamed | {actor} renamed thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789),"name":"Still more than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 1234\u2026"}} |
|
||||
| room | users | participant1 | thread_created | {actor} created thread {title} | true | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"title":{"type":"highlight","id":THREAD_ID(More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789),"name":"More than 200 chars 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 \u2026"}} |
|
||||
| room | users | participant1 | user_added | {actor} added you | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"user":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
| room | users | participant1 | conversation_created | {actor} created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
|
||||
Scenario: Recent threads are sorted by last activity
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
And user "participant1" sends thread "Thread 2" with message "Message 2" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
| Message 2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
|
||||
Scenario: Change notification setting for thread
|
||||
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" sends thread "Thread 1" with message "Message 1" to room "room" with 201
|
||||
Then user "participant1" sees the following recent threads in room "room" with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 1 with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 1 | Message 1 | NULL |
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 2 with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 2 | Message 1 | NULL |
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 3 with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 3 | Message 1 | NULL |
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 4 with 400
|
||||
And user "participant1" subscribes to thread "Message 1" in room "room" with notification level 0 with 200
|
||||
| t.id | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
|
||||
Scenario: List of subscribed threads
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room1 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" sends thread "Thread 1" with message "Message 1" to room "room1" with 201
|
||||
Given user "participant2" creates room "room2" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room2 |
|
||||
And user "participant2" adds user "participant1" to room "room2" with 200 (v4)
|
||||
And user "participant2" sends thread "Thread 2" with message "Message 2" to room "room2" with 201
|
||||
And user "participant2" sends thread "Thread 3" with message "Message 3" to room "room2" with 201
|
||||
Then user "participant1" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
And user "participant1" subscribes to thread "Message 3" in room "room2" with notification level 1 with 200
|
||||
Then user "participant1" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 3 | room2 | Thread 3 | 0 | 0 | 1 | Message 3 | NULL |
|
||||
| Message 1 | room1 | Thread 1 | 0 | 0 | 0 | Message 1 | NULL |
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "room1" with 201
|
||||
Then user "participant1" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
| Message 3 | room2 | Thread 3 | 0 | 0 | 1 | Message 3 | NULL |
|
||||
When user "participant1" sends reply "Message 2-1" on message "Message 2" to room "room2" with 201
|
||||
Then user "participant1" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | room2 | Thread 2 | 1 | Message 2-1 | 0 | Message 2 | Message 2-1 |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
| Message 3 | room2 | Thread 3 | 0 | 0 | 1 | Message 3 | NULL |
|
||||
Then user "participant1" sees 1 number of subscribed threads with 0 offset
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | room2 | Thread 2 | 1 | Message 2-1 | 0 | Message 2 | Message 2-1 |
|
||||
Then user "participant1" sees 1 number of subscribed threads with 1 offset
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 1-1 | 0 | Message 1 | Message 1-1 |
|
||||
|
||||
Scenario: Reply with an attachment
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room1 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" sends thread "Thread 1" with message "Message 1" to room "room1" with 201
|
||||
When user "participant2" shares "welcome.txt" with room "room1"
|
||||
| talkMetaData.caption | Message 2 |
|
||||
| talkMetaData.replyTo | Message 1 |
|
||||
Then user "participant1" sees the following messages in room "room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room1 | users | participant2 | participant2-displayname | Message 2 | "IGNORE" | Message 1 |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
Then user "participant1" sees the following recent threads in room "room1" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 2 | 0 | Message 1 | Message 2 |
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
| spreed | chat | room1/Message 2/Thread 1 | participant2-displayname replied to your message in conversation room1 |
|
||||
Then user "participant2" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 2 | 0 | Message 1 | Message 2 |
|
||||
|
||||
Scenario: Post a message with an attachment (not replying)
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room1 |
|
||||
Given user "participant1" creates room "room2" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room2 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" sends thread "Thread 1" with message "Message 1" to room "room1" with 201
|
||||
And user "participant1" sends thread "Thread 2" with message "Message 2" to room "room2" with 201
|
||||
When user "participant2" shares "welcome.txt" with room "room1"
|
||||
| talkMetaData.caption | Message 3 |
|
||||
| talkMetaData.threadId | Message 1 |
|
||||
When user "participant2" shares "welcome.txt" with room "room1"
|
||||
| talkMetaData.caption | Message 4 |
|
||||
| talkMetaData.threadId | Message 2 |
|
||||
Then user "participant1" sees the following messages in room "room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room1 | users | participant2 | participant2-displayname | Message 4 | "IGNORE" | |
|
||||
| room1 | users | participant2 | participant2-displayname | Message 3 | "IGNORE" | Message 1 |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
Then user "participant1" sees the following recent threads in room "room1" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 3 | 0 | Message 1 | Message 3 |
|
||||
Then user "participant1" sees the following recent threads in room "room2" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | room2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
Then user "participant2" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | Message 3 | 0 | Message 1 | Message 3 |
|
||||
|
||||
Scenario: Post a location to a thread
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room1 |
|
||||
Given user "participant1" creates room "room2" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room2 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" sends thread "Thread 1" with message "Message 1" to room "room1" with 201
|
||||
And user "participant1" sends thread "Thread 2" with message "Message 2" to room "room2" with 201
|
||||
When user "participant2" shares rich-object "geo-location" "geo:52.5450511,13.3741463" '{"name":"Location name","latitude":"52.5450511","longitude":"13.3741463"}' to room "room1" in thread "Message 1" with 201 (v1)
|
||||
When user "participant2" shares rich-object "geo-location" "geo:52.5450511,13.3741463" '{"name":"Location name","latitude":"52.5450511","longitude":"13.3741463"}' to room "room1" in thread "Message 2" with 201 (v1)
|
||||
Then user "participant1" sees the following messages in room "room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room1 | users | participant2 | participant2-displayname | {object} | "IGNORE" | |
|
||||
| room1 | users | participant2 | participant2-displayname | {object} | "IGNORE" | Message 1 |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
Then user "participant1" sees the following recent threads in room "room1" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | {object} | 0 | Message 1 | {object} |
|
||||
Then user "participant1" sees the following recent threads in room "room2" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | room2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
Then user "participant2" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | {object} | 0 | Message 1 | {object} |
|
||||
|
||||
Scenario: Post a location to a thread
|
||||
Given user "participant1" creates room "room1" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room1 |
|
||||
Given user "participant1" creates room "room2" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room2 |
|
||||
And user "participant1" adds user "participant2" to room "room1" with 200 (v4)
|
||||
And user "participant1" sends thread "Thread 1" with message "Message 1" to room "room1" with 201
|
||||
And user "participant1" sends thread "Thread 2" with message "Message 2" to room "room2" with 201
|
||||
When user "participant2" creates a poll in room "room1" with 201
|
||||
| question | What is the question?1 |
|
||||
| options | ["Where are you?","How much is the fish?"] |
|
||||
| resultMode | public |
|
||||
| maxVotes | unlimited |
|
||||
| threadId | Thread 1 |
|
||||
When user "participant1" creates a poll in room "room1" with 201
|
||||
| question | What is the question?2 |
|
||||
| options | ["Where are you?","How much is the fish?"] |
|
||||
| resultMode | public |
|
||||
| maxVotes | unlimited |
|
||||
| threadId | Thread 2 |
|
||||
Then user "participant1" sees the following messages in room "room1" with 200
|
||||
| room | actorType | actorId | actorDisplayName | message | messageParameters | parentMessage |
|
||||
| room1 | users | participant1 | participant1-displayname | {object} | "IGNORE" | |
|
||||
| room1 | users | participant2 | participant2-displayname | {object} | "IGNORE" | Message 1 |
|
||||
| room1 | users | participant1 | participant1-displayname | Message 1 | [] | |
|
||||
Then user "participant1" sees the following recent threads in room "room1" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | {object} | 0 | Message 1 | {object} |
|
||||
Then user "participant1" sees the following recent threads in room "room2" with 200
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 2 | room2 | Thread 2 | 0 | 0 | 0 | Message 2 | NULL |
|
||||
And user "participant1" has the following notifications
|
||||
| app | object_type | object_id | subject |
|
||||
Then user "participant2" sees the following subscribed threads
|
||||
| t.id | t.token | t.title | t.numReplies | t.lastMessage | a.notificationLevel | firstMessage | lastMessage |
|
||||
| Message 1 | room1 | Thread 1 | 1 | {object} | 0 | Message 1 | {object} |
|
||||
@@ -0,0 +1,11 @@
|
||||
Feature: chat-2/typing-privacy
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Scenario: User toggles the typing privacy
|
||||
# Private
|
||||
When user "participant1" sets setting "typing_privacy" to 1 with 200 (v1)
|
||||
Then user "participant1" has capability "spreed=>config=>chat=>typing-privacy" set to 1
|
||||
|
||||
# Public
|
||||
When user "participant1" sets setting "typing_privacy" to 0 with 200 (v1)
|
||||
Then user "participant1" has capability "spreed=>config=>chat=>typing-privacy" set to 0
|
||||
@@ -0,0 +1,256 @@
|
||||
Feature: chat-2/unread-messages
|
||||
Background:
|
||||
Given user "participant1" exists
|
||||
Given user "participant2" exists
|
||||
|
||||
Scenario: sending a message clears unread counter for sender
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
When user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: sending several messages clears unread counter for sender
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
When user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 3 |
|
||||
|
||||
Scenario: sending a message with previously unread messages clears unread counter for sender
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant2" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant2" sends message "Message 2" to room "group room" with 201
|
||||
When user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
|
||||
|
||||
Scenario: reading all messages clears unread counter for reader
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
When user "participant2" reads message "Message 3" in room "group room" with 200
|
||||
Then user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
|
||||
Scenario: reading some messages reduces unread counter for reader
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
When user "participant2" reads message "Message 2" in room "group room" with 200
|
||||
Then user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
When user "participant2" reads message "NULL" in room "group room" with 200
|
||||
Then user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
|
||||
|
||||
|
||||
Scenario: replies are taken into account in unread counter
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
When user "participant1" sends reply "Message 1-1" on message "Message 1" to room "group room" with 201
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 2 |
|
||||
|
||||
Scenario: rich object messages are taken into account in unread counter
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
When user "participant1" shares rich-object "call" "R4nd0mT0k3n" '{"name":"Another room","call-type":"group"}' to room "group room" with 201 (v1)
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: shared file messages are taken into account in unread counter
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
When user "participant1" shares "welcome.txt" with room "group room"
|
||||
# Unread counter for sender is cleared in this case, as it is not
|
||||
# possible to know whether the file was shared from Talk, which could clear
|
||||
# the counter, or from the Files app, which should not clear it.
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
|
||||
|
||||
Scenario: system messages are not taken into account in unread counter
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
When user "participant1" makes room "group room" private with 200 (v4)
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 0 |
|
||||
|
||||
|
||||
|
||||
Scenario: marking conversation as unread marks last message as unread
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
Then user "participant2" is participant of the following rooms (v4)
|
||||
| id | unreadMessages |
|
||||
| group room | 3 |
|
||||
And wait for 2 seconds
|
||||
Then user "participant2" is participant of the following modified-since rooms (v4)
|
||||
And user "participant2" reads message "Message 3" in room "group room" with 200
|
||||
And wait for 2 seconds
|
||||
Then user "participant2" is participant of the following modified-since rooms (v4)
|
||||
| id | unreadMessages |
|
||||
| group room | 0 |
|
||||
Then user "participant2" is participant of the following modified-since rooms (v4)
|
||||
When user "participant1" marks room "group room" as unread with 200
|
||||
And user "participant2" marks room "group room" as unread with 200
|
||||
And wait for 2 seconds
|
||||
Then user "participant2" is participant of the following modified-since rooms (v4)
|
||||
| id | unreadMessages |
|
||||
| group room | 1 |
|
||||
Then user "participant2" is participant of the following modified-since rooms (v4)
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
And user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: marking conversation as unread marks last message as unread ignoring system messages
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
And user "participant1" makes room "group room" public with 200 (v4)
|
||||
And user "participant1" makes room "group room" private with 200 (v4)
|
||||
And user "participant1" makes room "group room" public with 200 (v4)
|
||||
When user "participant1" marks room "group room" as unread with 200
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: marking conversation as unread marks last message as unread even if there are other unread messages
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" adds user "participant2" to room "group room" with 200 (v4)
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 4" to room "group room" with 201
|
||||
And user "participant2" reads message "Message 1" in room "group room" with 200
|
||||
When user "participant2" marks room "group room" as unread with 200
|
||||
Then user "participant2" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: marking conversation as unread marks last message as unread considering shared file
|
||||
Given user "participant1" creates room "group room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" sends message "Message 1" to room "group room" with 201
|
||||
And user "participant1" sends message "Message 2" to room "group room" with 201
|
||||
And user "participant1" shares "welcome.txt" with room "group room"
|
||||
When user "participant1" marks room "group room" as unread with 200
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
When user "participant1" sends message "Message 3" to room "group room" with 201
|
||||
And user "participant1" marks room "group room" as unread with 200
|
||||
Then user "participant1" is participant of room "group room" (v4)
|
||||
| unreadMessages |
|
||||
| 1 |
|
||||
|
||||
Scenario: marking first message as unread falls back to system message
|
||||
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" sends message "Message 1" to room "room" with 201
|
||||
And user "participant1" sees the following system messages in room "room" with 200 (v1)
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | user_added | You added {user} | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"},"user":{"type":"user","id":"participant2","name":"participant2-displayname","mention-id":"participant2"}} |
|
||||
| room | users | participant1 | conversation_created | You created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
Then user "participant2" is participant of the following rooms (v4)
|
||||
| id | unreadMessages | lastReadMessage |
|
||||
| room | 1 | conversation_created |
|
||||
And wait for 1 seconds
|
||||
And user "participant2" marks room "room" as unread with 200
|
||||
Then user "participant2" is participant of room "room" (v4)
|
||||
| unreadMessages | lastReadMessage |
|
||||
| 1 | user_added |
|
||||
|
||||
Scenario: marking first message as unread falls back to FIRST_MESSAGE_UNREAD
|
||||
Given user "participant1" creates room "room" (v4)
|
||||
| roomType | 2 |
|
||||
| roomName | room |
|
||||
And user "participant1" sees the following system messages in room "room" with 200 (v1)
|
||||
| room | actorType | actorId | systemMessage | message | silent | messageParameters |
|
||||
| room | users | participant1 | conversation_created | You created the conversation | !ISSET | {"actor":{"type":"user","id":"participant1","name":"participant1-displayname","mention-id":"participant1"}} |
|
||||
Then user "participant1" is participant of the following rooms (v4)
|
||||
| id | unreadMessages | lastReadMessage |
|
||||
| room | 0 | conversation_created |
|
||||
And wait for 1 seconds
|
||||
And user "participant1" marks room "room" as unread with 200
|
||||
Then user "participant1" is participant of room "room" (v4)
|
||||
| unreadMessages | lastReadMessage |
|
||||
| 1 | FIRST_MESSAGE_UNREAD |
|
||||
Reference in New Issue
Block a user