aboutsummaryrefslogtreecommitdiff
path: root/roomserver/storage/tables/events_table_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/storage/tables/events_table_test.go')
-rw-r--r--roomserver/storage/tables/events_table_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/roomserver/storage/tables/events_table_test.go b/roomserver/storage/tables/events_table_test.go
index 5ed80564..52aeacc2 100644
--- a/roomserver/storage/tables/events_table_test.go
+++ b/roomserver/storage/tables/events_table_test.go
@@ -2,6 +2,7 @@ package tables_test
import (
"context"
+ "fmt"
"testing"
"github.com/matrix-org/dendrite/internal/sqlutil"
@@ -147,3 +148,38 @@ func Test_EventsTable(t *testing.T) {
assert.Equal(t, int64(len(room.Events())+1), maxDepth)
})
}
+
+func TestRoomsWithACL(t *testing.T) {
+
+ test.WithAllDatabases(t, func(t *testing.T, dbType test.DBType) {
+ eventStateKeys, closeEventStateKeys := mustCreateEventTypesTable(t, dbType)
+ defer closeEventStateKeys()
+
+ eventsTable, closeEventsTable := mustCreateEventsTable(t, dbType)
+ defer closeEventsTable()
+
+ ctx := context.Background()
+
+ // insert the m.room.server_acl event type
+ eventTypeNID, err := eventStateKeys.InsertEventTypeNID(ctx, nil, "m.room.server_acl")
+ assert.Nil(t, err)
+
+ // Create ACL'd rooms
+ var wantRoomNIDs []types.RoomNID
+ for i := 0; i < 10; i++ {
+ _, _, err = eventsTable.InsertEvent(ctx, nil, types.RoomNID(i), eventTypeNID, types.EmptyStateKeyNID, fmt.Sprintf("$1337+%d", i), nil, 0, false)
+ assert.Nil(t, err)
+ wantRoomNIDs = append(wantRoomNIDs, types.RoomNID(i))
+ }
+
+ // Create non-ACL'd rooms (eventTypeNID+1)
+ for i := 10; i < 20; i++ {
+ _, _, err = eventsTable.InsertEvent(ctx, nil, types.RoomNID(i), eventTypeNID+1, types.EmptyStateKeyNID, fmt.Sprintf("$1337+%d", i), nil, 0, false)
+ assert.Nil(t, err)
+ }
+
+ gotRoomNIDs, err := eventsTable.SelectRoomsWithEventTypeNID(ctx, nil, eventTypeNID)
+ assert.Nil(t, err)
+ assert.Equal(t, wantRoomNIDs, gotRoomNIDs)
+ })
+}