aboutsummaryrefslogtreecommitdiff
path: root/matrix/rooms/room_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'matrix/rooms/room_test.go')
-rw-r--r--matrix/rooms/room_test.go237
1 files changed, 0 insertions, 237 deletions
diff --git a/matrix/rooms/room_test.go b/matrix/rooms/room_test.go
deleted file mode 100644
index a1fc4a4..0000000
--- a/matrix/rooms/room_test.go
+++ /dev/null
@@ -1,237 +0,0 @@
-// gomuks - A terminal Matrix client written in Go.
-// Copyright (C) 2019 Tulir Asokan
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-package rooms_test
-
-import (
- "fmt"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "maunium.net/go/gomuks/matrix/rooms"
- "maunium.net/go/mautrix"
-)
-
-func TestNewRoom_DefaultValues(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- assert.Equal(t, "!test:maunium.net", room.ID)
- assert.Equal(t, "@tulir:maunium.net", room.SessionUserID)
- assert.Empty(t, room.GetMembers())
- assert.Equal(t, "Empty room", room.GetTitle())
- assert.Empty(t, room.GetAliases())
- assert.Empty(t, room.GetCanonicalAlias())
- assert.Empty(t, room.GetTopic())
- assert.Nil(t, room.GetMember(room.GetSessionOwner()))
-}
-
-func TestRoom_GetCanonicalAlias(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateCanonicalAlias,
- Content: mautrix.Content{
- Alias: "#foo:maunium.net",
- },
- })
- assert.Equal(t, "#foo:maunium.net", room.GetCanonicalAlias())
-}
-
-func TestRoom_GetTopic(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateTopic,
- Content: mautrix.Content{
- Topic: "test topic",
- },
- })
- assert.Equal(t, "test topic", room.GetTopic())
-}
-
-func TestRoom_Tags_Empty(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- assert.Empty(t, room.RawTags)
- tags := room.Tags()
- assert.Len(t, tags, 1)
- assert.Equal(t, "", tags[0].Tag)
- assert.Equal(t, "0.5", tags[0].Order)
-}
-
-func TestRoom_Tags_NotEmpty(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- room.RawTags = []rooms.RoomTag{{Tag: "foo", Order: "1"}, {Tag: "bar", Order: "1"}}
- tags := room.Tags()
- assert.Equal(t, room.RawTags, tags)
-}
-
-func TestRoom_GetAliases(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addAliases(room)
-
- aliases := room.GetAliases()
- assert.Contains(t, aliases, "#bar:maunium.net")
- assert.Contains(t, aliases, "#test:maunium.net")
- assert.Contains(t, aliases, "#foo:matrix.org")
- assert.Contains(t, aliases, "#test:matrix.org")
-}
-
-func addName(room *rooms.Room) {
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateRoomName,
- Content: mautrix.Content{
- Name: "Test room",
- },
- })
-}
-
-func addCanonicalAlias(room *rooms.Room) {
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateCanonicalAlias,
- Content: mautrix.Content{
- Alias: "#foo:maunium.net",
- },
- })
-}
-
-func addAliases(room *rooms.Room) {
- server1 := "maunium.net"
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateAliases,
- StateKey: &server1,
- Content: mautrix.Content{
- Aliases: []string{"#bar:maunium.net", "#test:maunium.net", "#foo:maunium.net"},
- },
- })
-
- server2 := "matrix.org"
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateAliases,
- StateKey: &server2,
- Content: mautrix.Content{
- Aliases: []string{"#foo:matrix.org", "#test:matrix.org"},
- },
- })
-}
-
-func addMembers(room *rooms.Room, count int) {
- user1 := "@tulir:maunium.net"
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateMember,
- StateKey: &user1,
- Content: mautrix.Content{
- Member: mautrix.Member{
- Displayname: "tulir",
- Membership: mautrix.MembershipJoin,
- },
- },
- })
-
- for i := 1; i < count; i++ {
- userN := fmt.Sprintf("@user_%d:matrix.org", i+1)
- content := mautrix.Content{
- Member: mautrix.Member{
- Membership: mautrix.MembershipJoin,
- },
- }
- if i%2 == 1 {
- content.Displayname = fmt.Sprintf("User #%d", i+1)
- }
- if i%5 == 0 {
- content.Membership = mautrix.MembershipInvite
- }
- room.UpdateState(&mautrix.Event{
- Type: mautrix.StateMember,
- StateKey: &userN,
- Content: content,
- })
- }
-}
-
-func TestRoom_GetMembers(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 6)
-
- members := room.GetMembers()
- assert.Len(t, members, 6)
-}
-
-func TestRoom_GetMember(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 6)
-
- assert.NotNil(t, room.GetMember("@user_2:matrix.org"))
- assert.NotNil(t, room.GetMember("@tulir:maunium.net"))
- assert.Equal(t, "@tulir:maunium.net", room.GetSessionOwner())
-}
-
-func TestRoom_GetTitle_ExplicitName(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 4)
- addName(room)
- addCanonicalAlias(room)
- addAliases(room)
- assert.Equal(t, "Test room", room.GetTitle())
-}
-
-func TestRoom_GetTitle_CanonicalAlias(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 4)
- addCanonicalAlias(room)
- addAliases(room)
- assert.Equal(t, "#foo:maunium.net", room.GetTitle())
-}
-
-func TestRoom_GetTitle_FirstAlias(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 2)
- addAliases(room)
- assert.Equal(t, "#bar:maunium.net", room.GetTitle())
-}
-
-func TestRoom_GetTitle_Members_Empty(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 1)
- assert.Equal(t, "Empty room", room.GetTitle())
-}
-
-func TestRoom_GetTitle_Members_OneToOne(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 2)
- assert.Equal(t, "User #2", room.GetTitle())
-}
-
-func TestRoom_GetTitle_Members_GroupChat(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
- addMembers(room, 76)
- assert.Contains(t, room.GetTitle(), " and 74 others")
-}
-
-func TestRoom_MarkRead(t *testing.T) {
- room := rooms.NewRoom("!test:maunium.net", "@tulir:maunium.net")
-
- room.AddUnread("foo", true, false)
- assert.Equal(t, 1, room.UnreadCount())
- assert.False(t, room.Highlighted())
-
- room.AddUnread("bar", true, false)
- assert.Equal(t, 2, room.UnreadCount())
- assert.False(t, room.Highlighted())
-
- room.AddUnread("asd", false, true)
- assert.Equal(t, 2, room.UnreadCount())
- assert.True(t, room.Highlighted())
-
- room.MarkRead("asd")
- assert.Empty(t, room.UnreadMessages)
-}