|
22 | 22 | package channelling |
23 | 23 |
|
24 | 24 | import ( |
| 25 | + "regexp" |
25 | 26 | "testing" |
26 | 27 |
|
27 | 28 | "github.com/strukturag/spreed-webrtc/go/channelling" |
@@ -74,6 +75,55 @@ func Test_RoomManager_JoinRoom_ReturnsAnErrorForUnauthenticatedSessionsWhenJoinR |
74 | 75 | assertDataError(t, err, "room_join_requires_account") |
75 | 76 | } |
76 | 77 |
|
| 78 | +func Test_RoomManager_JoinPublicRoom_ForUnauthenticatedSessionsWhenCreationRequiresAnAccount(t *testing.T) { |
| 79 | + roomManager, config := NewTestRoomManager() |
| 80 | + config.UsersEnabled = true |
| 81 | + config.AuthorizeRoomCreation = true |
| 82 | + |
| 83 | + unauthenticatedSession := &Session{} |
| 84 | + _, err := roomManager.JoinRoom(channelling.RoomTypeRoom+":public", "public", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 85 | + assertDataError(t, err, "room_join_requires_account") |
| 86 | + |
| 87 | + config.PublicRoomNames = regexp.MustCompile("^public$") |
| 88 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":public", "public", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 89 | + if err != nil { |
| 90 | + t.Fatalf("Unexpected error %v joining public room", err) |
| 91 | + } |
| 92 | + |
| 93 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":private", "private", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 94 | + assertDataError(t, err, "room_join_requires_account") |
| 95 | +} |
| 96 | + |
| 97 | +func Test_RoomManager_JoinPublicRoom_ForUnauthenticatedSessionsWhenJoinRequiresAnAccount(t *testing.T) { |
| 98 | + roomManager, config := NewTestRoomManager() |
| 99 | + config.UsersEnabled = true |
| 100 | + config.AuthorizeRoomJoin = true |
| 101 | + |
| 102 | + authenticatedSession := &Session{userid: "9870457"} |
| 103 | + _, err := roomManager.JoinRoom(channelling.RoomTypeRoom+":public", "public", channelling.RoomTypeRoom, nil, authenticatedSession, true, nil) |
| 104 | + if err != nil { |
| 105 | + t.Fatalf("Unexpected error %v joining room while authenticated", err) |
| 106 | + } |
| 107 | + |
| 108 | + unauthenticatedSession := &Session{} |
| 109 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":public", "public", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 110 | + assertDataError(t, err, "room_join_requires_account") |
| 111 | + |
| 112 | + config.PublicRoomNames = regexp.MustCompile("^public$") |
| 113 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":public", "public", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 114 | + if err != nil { |
| 115 | + t.Fatalf("Unexpected error %v joining public room", err) |
| 116 | + } |
| 117 | + |
| 118 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":private", "private", channelling.RoomTypeRoom, nil, authenticatedSession, true, nil) |
| 119 | + if err != nil { |
| 120 | + t.Fatalf("Unexpected error %v joining room while authenticated", err) |
| 121 | + } |
| 122 | + |
| 123 | + _, err = roomManager.JoinRoom(channelling.RoomTypeRoom+":private", "private", channelling.RoomTypeRoom, nil, unauthenticatedSession, false, nil) |
| 124 | + assertDataError(t, err, "room_join_requires_account") |
| 125 | +} |
| 126 | + |
77 | 127 | func Test_RoomManager_UpdateRoom_ReturnsAnErrorIfNoRoomHasBeenJoined(t *testing.T) { |
78 | 128 | roomManager, _ := NewTestRoomManager() |
79 | 129 | _, err := roomManager.UpdateRoom(&Session{}, nil) |
|
0 commit comments