mirror of
https://github.com/signaller-matrix/signaller.git
synced 2024-12-22 08:51:50 +00:00
Add publicrooms method test
This commit is contained in:
parent
782c328e3d
commit
a2ebc64065
@ -47,4 +47,5 @@ type User interface {
|
||||
SetRoomVisibility(Room, createroom.VisibilityType) *models.ApiError
|
||||
Logout(token string)
|
||||
LogoutAll()
|
||||
JoinRoom(Room) *models.ApiError
|
||||
}
|
||||
|
@ -136,3 +136,44 @@ func TestGetUserByName(t *testing.T) {
|
||||
assert.Nil(t, user2)
|
||||
})
|
||||
}
|
||||
|
||||
func TestPublicRooms(t *testing.T) {
|
||||
backend := NewBackend("localhost")
|
||||
|
||||
user1, _, err := backend.Register("user1", "", "")
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, user1)
|
||||
|
||||
// Create first room
|
||||
request := createroom.Request{
|
||||
RoomAliasName: "room1",
|
||||
Name: "room1",
|
||||
Preset: createroom.PublicChat}
|
||||
|
||||
room1, err := user1.CreateRoom(request)
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, room1)
|
||||
|
||||
// Create second room
|
||||
request = createroom.Request{
|
||||
RoomAliasName: "room2",
|
||||
Name: "room2",
|
||||
Preset: createroom.PublicChat}
|
||||
|
||||
room2, err := user1.CreateRoom(request)
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, room2)
|
||||
|
||||
// Make room2 has 2 users
|
||||
user2, _, err := backend.Register("user2", "", "")
|
||||
assert.Nil(t, err)
|
||||
assert.NotNil(t, user2)
|
||||
|
||||
err = user2.JoinRoom(room2)
|
||||
assert.Nil(t, err)
|
||||
|
||||
rooms := backend.PublicRooms()
|
||||
assert.Len(t, rooms, 2)
|
||||
assert.Equal(t, rooms[0], room2)
|
||||
assert.Equal(t, rooms[1], room1)
|
||||
}
|
||||
|
@ -222,3 +222,20 @@ func (user *User) Logout(token string) {
|
||||
func (user *User) LogoutAll() {
|
||||
user.Tokens = make(map[string]Token)
|
||||
}
|
||||
|
||||
func (user *User) JoinRoom(room internal.Room) *models.ApiError {
|
||||
memRoom := room.(*Room)
|
||||
|
||||
memRoom.mutex.Lock()
|
||||
defer memRoom.mutex.Unlock()
|
||||
|
||||
for _, roomUser := range memRoom.joined {
|
||||
if roomUser.ID() == user.ID() {
|
||||
return internal.NewError(models.M_BAD_STATE, "user already in room") // TODO: check code
|
||||
}
|
||||
}
|
||||
|
||||
memRoom.joined = append(memRoom.joined, user)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user