github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/webutil/path-parse_test.go (about) 1 package webutil 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestHasPathPrefix(t *testing.T) { 10 11 assert := assert.New(t) 12 13 assert.True(HasPathPrefix("/example", "/example")) 14 assert.True(HasPathPrefix("/example/", "/example")) 15 assert.True(HasPathPrefix("/example/something", "/example")) 16 assert.True(HasPathPrefix("/example/something/else", "/example")) 17 assert.False(HasPathPrefix("/example1", "/example")) 18 assert.False(HasPathPrefix("/other/example", "/example")) 19 20 } 21 22 func TestPathParse(t *testing.T) { 23 24 assert := assert.New(t) 25 26 i := 0 27 s := "" 28 29 // basic case 30 assert.Nil(PathParse("/something/123/abc", "/something/%d/%s", &i, &s)) 31 assert.Equal(123, i) 32 assert.Equal("abc", s) 33 34 // basic failed case 35 assert.NotNil(PathParse("/nothing/123/abc", "/something/%d/%s", &i, &s)) 36 37 assert.Nil(PathParse("/something/123/else/abc", "/something/%d/else/%s", &i, &s)) 38 39 // trailing slash, should still work 40 assert.Nil(PathParse("/something/123/else/abc", "/something/%d/else/%s/", &i, &s)) 41 42 // path does not include all elements 43 assert.NotNil(PathParse("/something/123/else/abc", "/something/%d/else/%s/what", &i, &s)) 44 45 // path has too many elements 46 assert.NotNil(PathParse("/something/123/else/abc", "/something/%d/else", &i)) 47 48 // path has too many elements 49 assert.NotNil(PathParse("/something/123/else/abc", "/something/%d", &i)) 50 51 }