53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package fileauth
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestBuildUploadTokenParts_matchesCreateUploadTokenAt(t *testing.T) {
|
|
const (
|
|
accessKey = "accessKey"
|
|
secret = "secret"
|
|
bucket = "other-doc"
|
|
deadline = int64(1735689600)
|
|
)
|
|
want, err := CreateUploadTokenAt(accessKey, secret, bucket, deadline)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
parts, err := BuildUploadTokenParts(accessKey, secret, bucket, deadline)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if parts.UploadToken != want {
|
|
t.Fatalf("token mismatch\ngot: %s\nwant: %s", parts.UploadToken, want)
|
|
}
|
|
if parts.AccessKey != accessKey {
|
|
t.Fatalf("accessKey=%q", parts.AccessKey)
|
|
}
|
|
if parts.PolicyJSON != `{"scope":"other-doc","deadline":1735689600}` {
|
|
t.Fatalf("policy=%q", parts.PolicyJSON)
|
|
}
|
|
if strings.Contains(parts.PolicyJSON, "returnBody") {
|
|
t.Fatalf("upload profile must not include returnBody: %q", parts.PolicyJSON)
|
|
}
|
|
if parts.Algorithm != algorithmJavaUpload {
|
|
t.Fatalf("algorithm=%q", parts.Algorithm)
|
|
}
|
|
if parts.SignInput != parts.PolicyJSON {
|
|
t.Fatal("signInput must be policy JSON")
|
|
}
|
|
}
|
|
|
|
func TestValidateUploadTokenFormat_production(t *testing.T) {
|
|
parts, err := BuildUploadTokenParts("accessKey", "secret", "other-doc", 1735689600)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ok, checks := ValidateUploadTokenFormat(parts.UploadToken, "accessKey")
|
|
if !ok {
|
|
t.Fatalf("validate failed: %+v", checks)
|
|
}
|
|
}
|