@@ -59,15 +59,15 @@ func TestServeGo(t *testing.T) {
59
59
},
60
60
{
61
61
name : "simple link with query" ,
62
- link : "/who?q" ,
62
+ link : "/who?q=1 " ,
63
63
wantStatus : http .StatusFound ,
64
- wantLink : "http://who/" , // TODO: eventually http://who/?q
64
+ wantLink : "http://who/?q=1" ,
65
65
},
66
66
{
67
67
name : "simple link with path and query" ,
68
- link : "/who/p?q" ,
68
+ link : "/who/p?q=1 " ,
69
69
wantStatus : http .StatusFound ,
70
- wantLink : "http://who/p" , // TODO: eventually http://who/p?q
70
+ wantLink : "http://who/p?q=1" ,
71
71
},
72
72
{
73
73
name : "user link" ,
@@ -282,6 +282,7 @@ func TestExpandLink(t *testing.T) {
282
282
long string // long URL for golink
283
283
now time.Time // current time
284
284
user string // current user resolving link
285
+ query string // query string
285
286
remainder string // remainder of URL path after golink name
286
287
wantErr bool // whether we expect an error
287
288
want string // expected redirect URL
@@ -372,11 +373,38 @@ func TestExpandLink(t *testing.T) {
372
373
remainder : "a" ,
373
374
want : "/rel/a" ,
374
375
},
375
-
376
+ {
377
+ name : "query-string" ,
378
+ long : `/rel` ,
379
+ query : "a=b" ,
380
+ want : "/rel?a=b" ,
381
+ },
382
+ {
383
+ name : "path-and-query-string" ,
384
+ long : `/rel` ,
385
+ remainder : "path" ,
386
+ query : "a=b" ,
387
+ want : "/rel/path?a=b" ,
388
+ },
389
+ {
390
+ name : "combine-query-string" ,
391
+ long : `/rel?a=1` ,
392
+ query : "a=2&b=2" ,
393
+ want : "/rel?a=1&a=2&b=2" ,
394
+ },
395
+ {
396
+ name : "template-and-combined-query-string" ,
397
+ long : `/rel{{with .Path}}/{{.}}{{end}}?a=1` ,
398
+ remainder : "path" ,
399
+ query : "b=2" ,
400
+ want : "/rel/path?a=1&b=2" ,
401
+ },
376
402
}
377
403
for _ , tt := range tests {
378
404
t .Run (tt .name , func (t * testing.T ) {
379
- link , err := expandLink (tt .long , expandEnv {Now : tt .now , Path : tt .remainder , user : tt .user })
405
+ query , _ := url .ParseQuery (tt .query )
406
+ env := expandEnv {Now : tt .now , Path : tt .remainder , user : tt .user , query : query }
407
+ link , err := expandLink (tt .long , env )
380
408
if (err != nil ) != tt .wantErr {
381
409
t .Fatalf ("expandLink(%q) returned error %v; want %v" , tt .long , err , tt .wantErr )
382
410
}
0 commit comments