feat: add im tenant db routing and chapter seven flows
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/golang/mock/gomock"
|
||||
"github.com/tinode/chat/server/store"
|
||||
"github.com/tinode/chat/server/store/mock_store"
|
||||
"github.com/tinode/chat/server/store/types"
|
||||
)
|
||||
|
||||
func TestAuthorizeLargeFileDownloadDenied(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
defer ctrl.Finish()
|
||||
oldFiles := store.Files
|
||||
files := mock_store.NewMockFilePersistenceInterface(ctrl)
|
||||
store.Files = files
|
||||
defer func() { store.Files = oldFiles }()
|
||||
|
||||
fd := &types.FileDef{
|
||||
ObjHeader: types.ObjHeader{Id: types.Uid(100).String(), UpdatedAt: time.Date(2026, 8, 13, 9, 0, 0, 0, time.UTC)},
|
||||
TenantID: 7,
|
||||
Status: types.UploadCompleted,
|
||||
MimeType: "text/plain",
|
||||
Location: "notes.txt",
|
||||
}
|
||||
files.EXPECT().UserHasAccess(types.TenantID(7), types.Uid(100).String(), types.Uid(42)).Return(false, nil)
|
||||
if err := authorizeLargeFileDownload(7, 42, "", fd); err != types.ErrPermissionDenied {
|
||||
t.Fatalf("expected permission denied, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestContentDispositionAttachmentSanitizesName(t *testing.T) {
|
||||
fd := &types.FileDef{
|
||||
ObjHeader: types.ObjHeader{Id: types.Uid(100).String()},
|
||||
Location: `../bad"name.txt`,
|
||||
}
|
||||
got := contentDispositionAttachment(fd)
|
||||
if got != `attachment; filename=badname.txt` {
|
||||
t.Fatalf("unexpected content disposition: %s", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user