MCPcopy
hub / github.com/filebrowser/filebrowser / TestAdminShareGetsHandlerMatchesOwnerScope

Function TestAdminShareGetsHandlerMatchesOwnerScope

http/share_test.go:22–94  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

20)
21
22func TestAdminShareGetsHandlerMatchesOwnerScope(t *testing.T) {
23 t.Parallel()
24
25 root := t.TempDir()
26 ownerScope := filepath.Join(root, "owner")
27 if err := os.MkdirAll(ownerScope, 0o755); err != nil {
28 t.Fatal(err)
29 }
30 if err := os.WriteFile(filepath.Join(ownerScope, "file.txt"), []byte("shared"), 0o600); err != nil {
31 t.Fatal(err)
32 }
33
34 db, err := storm.Open(filepath.Join(t.TempDir(), "db"))
35 if err != nil {
36 t.Fatalf("failed to open db: %v", err)
37 }
38 t.Cleanup(func() { _ = db.Close() })
39
40 st, err := bolt.NewStorage(db)
41 if err != nil {
42 t.Fatalf("failed to get storage: %v", err)
43 }
44
45 owner := &users.User{
46 Username: "owner",
47 Password: "pw",
48 Scope: "/owner",
49 Perm: users.Permissions{Share: true, Download: true},
50 }
51 if err := st.Users.Save(owner); err != nil {
52 t.Fatalf("failed to save owner: %v", err)
53 }
54
55 adminPerm := users.Permissions{Admin: true, Share: true, Download: true}
56 admin := &users.User{
57 Username: "admin",
58 Password: "pw",
59 Scope: "/",
60 Perm: adminPerm,
61 }
62 if err := st.Users.Save(admin); err != nil {
63 t.Fatalf("failed to save admin: %v", err)
64 }
65
66 if err := st.Share.Save(&share.Link{Hash: "h", UserID: owner.ID, Path: "/file.txt"}); err != nil {
67 t.Fatalf("failed to save share: %v", err)
68 }
69 key := []byte("test-signing-key")
70 if err := st.Settings.Save(&settings.Settings{Key: key}); err != nil {
71 t.Fatalf("failed to save settings: %v", err)
72 }
73
74 req, err := http.NewRequest(http.MethodGet, "/owner/file.txt", http.NoBody)
75 if err != nil {
76 t.Fatalf("failed to construct request: %v", err)
77 }
78 req.Header.Set("X-Auth", signShareTestToken(t, admin.ID, admin.Username, adminPerm, key))
79

Callers

nothing calls this directly

Calls 8

NewStorageFunction · 0.92
signShareTestTokenFunction · 0.85
handleFunction · 0.85
MkdirAllMethod · 0.80
CloseMethod · 0.65
SaveMethod · 0.65
OpenMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected