19 lines
573 B
Go
19 lines
573 B
Go
package evidence
|
|
|
|
import "testing"
|
|
|
|
func TestKeyConfinement(t *testing.T) {
|
|
for _, ref := range []string{"", ".", "..", "../other", "/other", "a/../../other", "a\\..\\other", "%2e%2e/other", "bad\x00key"} {
|
|
if _, err := JoinKey("customer/documents", ref); err == nil {
|
|
t.Errorf("accepted %q", ref)
|
|
}
|
|
if _, err := JoinKey(ref, "document"); err == nil {
|
|
t.Errorf("accepted prefix %q", ref)
|
|
}
|
|
}
|
|
got, err := JoinKey("customer/documents/", "passport/front")
|
|
if err != nil || got != "customer/documents/passport/front" {
|
|
t.Fatalf("got %q, %v", got, err)
|
|
}
|
|
}
|