@@ -2,6 +2,7 @@ package main
22
33import (
44 "bytes"
5+ "net/url"
56 "strings"
67 "testing"
78 "time"
@@ -97,23 +98,41 @@ func TestRunPrintsDefaultBucketPathURLAcceptedByValidator(t *testing.T) {
9798 }
9899}
99100
100- func TestRunRejectsDefaultBucketPathWithoutServer (t * testing.T ) {
101+ func TestRunPrintsSingleServerDefaultBucketPathURLAcceptedByValidator (t * testing.T ) {
102+ now := time .Date (2026 , 6 , 8 , 12 , 0 , 0 , 0 , time .UTC )
101103 var stdout , stderr bytes.Buffer
102104 code := run ([]string {
105+ "-method" , "GET" ,
103106 "-base-url" , "https://files.example.com" ,
104107 "-default-bucket-path" ,
105108 "-bucket" , "demo" ,
106109 "-key" , "file.txt" ,
107110 "-secret" , "secret" ,
108- }, & stdout , & stderr , time .Now )
109- if code != 2 {
110- t .Fatalf ("run() code = %d, want 2" , code )
111+ "-expiration" , "1m" ,
112+ }, & stdout , & stderr , func () time.Time { return now })
113+ if code != 0 {
114+ t .Fatalf ("run() code = %d, stderr = %s" , code , stderr .String ())
111115 }
112- if stdout .Len () != 0 {
113- t .Fatalf ("stdout = %q, want empty" , stdout .String ())
116+ raw := strings .TrimSpace (stdout .String ())
117+ u , err := url .Parse (raw )
118+ if err != nil {
119+ t .Fatalf ("url.Parse() error = %v for %s" , err , raw )
114120 }
115- if ! strings .Contains (stderr .String (), "default-bucket-path requires -server" ) {
116- t .Fatalf ("stderr = %q" , stderr .String ())
121+ if got , want := u .EscapedPath (), "/file.txt" ; got != want {
122+ t .Fatalf ("path = %q, want %q" , got , want )
123+ }
124+ resolver := func (server string ) (string , bool ) {
125+ if server == "" {
126+ return "demo" , true
127+ }
128+ return "" , false
129+ }
130+ claims , err := signing .ValidateURLForModeWithOptions ("GET" , raw , signing.ValidationConfig {Secret : "secret" }, now , publicpath .ModeSingle , signing.ValidationOptions {DefaultBucket : resolver })
131+ if err != nil {
132+ t .Fatalf ("ValidateURLForModeWithOptions() error = %v for %s" , err , raw )
133+ }
134+ if claims .Server != "" || claims .Bucket != "demo" || claims .Key != "file.txt" {
135+ t .Fatalf ("claims = %#v" , claims )
117136 }
118137}
119138
0 commit comments