@@ -277,10 +277,12 @@ func TestEchoURL(t *testing.T) {
277
277
e := New ()
278
278
static := func (Context ) error { return nil }
279
279
getUser := func (Context ) error { return nil }
280
+ getAny := func (Context ) error { return nil }
280
281
getFile := func (Context ) error { return nil }
281
282
282
283
e .GET ("/static/file" , static )
283
284
e .GET ("/users/:id" , getUser )
285
+ e .GET ("/documents/*" , getAny )
284
286
g := e .Group ("/group" )
285
287
g .GET ("/users/:uid/files/:fid" , getFile )
286
288
@@ -289,6 +291,9 @@ func TestEchoURL(t *testing.T) {
289
291
assert .Equal ("/static/file" , e .URL (static ))
290
292
assert .Equal ("/users/:id" , e .URL (getUser ))
291
293
assert .Equal ("/users/1" , e .URL (getUser , "1" ))
294
+ assert .Equal ("/users/1" , e .URL (getUser , "1" ))
295
+ assert .Equal ("/documents/foo.txt" , e .URL (getAny , "foo.txt" ))
296
+ assert .Equal ("/documents/*" , e .URL (getAny ))
292
297
assert .Equal ("/group/users/1/files/:fid" , e .URL (getFile , "1" ))
293
298
assert .Equal ("/group/users/1/files/1" , e .URL (getFile , "1" , "1" ))
294
299
}
@@ -652,3 +657,28 @@ func TestEchoShutdown(t *testing.T) {
652
657
err := <- errCh
653
658
assert .Equal (t , err .Error (), "http: Server closed" )
654
659
}
660
+
661
+ func TestEchoReverse (t * testing.T ) {
662
+ assert := assert .New (t )
663
+
664
+ e := New ()
665
+ dummyHandler := func (Context ) error { return nil }
666
+
667
+ e .GET ("/static" , dummyHandler ).Name = "/static"
668
+ e .GET ("/static/*" , dummyHandler ).Name = "/static/*"
669
+ e .GET ("/params/:foo" , dummyHandler ).Name = "/params/:foo"
670
+ e .GET ("/params/:foo/bar/:qux" , dummyHandler ).Name = "/params/:foo/bar/:qux"
671
+ e .GET ("/params/:foo/bar/:qux/*" , dummyHandler ).Name = "/params/:foo/bar/:qux/*"
672
+
673
+ assert .Equal ("/static" , e .Reverse ("/static" ))
674
+ assert .Equal ("/static" , e .Reverse ("/static" , "missing param" ))
675
+ assert .Equal ("/static/*" , e .Reverse ("/static/*" ))
676
+ assert .Equal ("/static/foo.txt" , e .Reverse ("/static/*" , "foo.txt" ))
677
+
678
+ assert .Equal ("/params/:foo" , e .Reverse ("/params/:foo" ))
679
+ assert .Equal ("/params/one" , e .Reverse ("/params/:foo" , "one" ))
680
+ assert .Equal ("/params/:foo/bar/:qux" , e .Reverse ("/params/:foo/bar/:qux" ))
681
+ assert .Equal ("/params/one/bar/:qux" , e .Reverse ("/params/:foo/bar/:qux" , "one" ))
682
+ assert .Equal ("/params/one/bar/two" , e .Reverse ("/params/:foo/bar/:qux" , "one" , "two" ))
683
+ assert .Equal ("/params/one/bar/two/three" , e .Reverse ("/params/:foo/bar/:qux/*" , "one" , "two" , "three" ))
684
+ }
0 commit comments