@@ -10,18 +10,28 @@ import (
10
10
)
11
11
12
12
func TestAddTrailingSlash (t * testing.T ) {
13
+ is := assert .New (t )
13
14
e := echo .New ()
14
15
req := httptest .NewRequest (http .MethodGet , "/add-slash" , nil )
15
16
rec := httptest .NewRecorder ()
16
17
c := e .NewContext (req , rec )
17
18
h := AddTrailingSlash ()(func (c echo.Context ) error {
18
19
return nil
19
20
})
20
- h (c )
21
+ is .NoError (h (c ))
22
+ is .Equal ("/add-slash/" , req .URL .Path )
23
+ is .Equal ("/add-slash/" , req .RequestURI )
21
24
22
- assert := assert .New (t )
23
- assert .Equal ("/add-slash/" , req .URL .Path )
24
- assert .Equal ("/add-slash/" , req .RequestURI )
25
+ // Method Connect must not fail:
26
+ req = httptest .NewRequest (http .MethodConnect , "" , nil )
27
+ rec = httptest .NewRecorder ()
28
+ c = e .NewContext (req , rec )
29
+ h = AddTrailingSlash ()(func (c echo.Context ) error {
30
+ return nil
31
+ })
32
+ is .NoError (h (c ))
33
+ is .Equal ("/" , req .URL .Path )
34
+ is .Equal ("/" , req .RequestURI )
25
35
26
36
// With config
27
37
req = httptest .NewRequest (http .MethodGet , "/add-slash?key=value" , nil )
@@ -32,25 +42,34 @@ func TestAddTrailingSlash(t *testing.T) {
32
42
})(func (c echo.Context ) error {
33
43
return nil
34
44
})
35
- h (c )
36
- assert .Equal (http .StatusMovedPermanently , rec .Code )
37
- assert .Equal ("/add-slash/?key=value" , rec .Header ().Get (echo .HeaderLocation ))
45
+ is . NoError ( h (c ) )
46
+ is .Equal (http .StatusMovedPermanently , rec .Code )
47
+ is .Equal ("/add-slash/?key=value" , rec .Header ().Get (echo .HeaderLocation ))
38
48
}
39
49
40
50
func TestRemoveTrailingSlash (t * testing.T ) {
51
+ is := assert .New (t )
41
52
e := echo .New ()
42
53
req := httptest .NewRequest (http .MethodGet , "/remove-slash/" , nil )
43
54
rec := httptest .NewRecorder ()
44
55
c := e .NewContext (req , rec )
45
56
h := RemoveTrailingSlash ()(func (c echo.Context ) error {
46
57
return nil
47
58
})
48
- h (c )
49
-
50
- assert := assert . New ( t )
59
+ is . NoError ( h (c ) )
60
+ is . Equal ( "/remove-slash" , req . URL . Path )
61
+ is . Equal ( "/remove-slash" , req . RequestURI )
51
62
52
- assert .Equal ("/remove-slash" , req .URL .Path )
53
- assert .Equal ("/remove-slash" , req .RequestURI )
63
+ // Method Connect must not fail:
64
+ req = httptest .NewRequest (http .MethodConnect , "" , nil )
65
+ rec = httptest .NewRecorder ()
66
+ c = e .NewContext (req , rec )
67
+ h = RemoveTrailingSlash ()(func (c echo.Context ) error {
68
+ return nil
69
+ })
70
+ is .NoError (h (c ))
71
+ is .Equal ("" , req .URL .Path )
72
+ is .Equal ("" , req .RequestURI )
54
73
55
74
// With config
56
75
req = httptest .NewRequest (http .MethodGet , "/remove-slash/?key=value" , nil )
@@ -61,9 +80,9 @@ func TestRemoveTrailingSlash(t *testing.T) {
61
80
})(func (c echo.Context ) error {
62
81
return nil
63
82
})
64
- h (c )
65
- assert .Equal (http .StatusMovedPermanently , rec .Code )
66
- assert .Equal ("/remove-slash?key=value" , rec .Header ().Get (echo .HeaderLocation ))
83
+ is . NoError ( h (c ) )
84
+ is .Equal (http .StatusMovedPermanently , rec .Code )
85
+ is .Equal ("/remove-slash?key=value" , rec .Header ().Get (echo .HeaderLocation ))
67
86
68
87
// With bare URL
69
88
req = httptest .NewRequest (http .MethodGet , "http://localhost" , nil )
@@ -72,6 +91,6 @@ func TestRemoveTrailingSlash(t *testing.T) {
72
91
h = RemoveTrailingSlash ()(func (c echo.Context ) error {
73
92
return nil
74
93
})
75
- h (c )
76
- assert .Equal ("" , req .URL .Path )
94
+ is . NoError ( h (c ) )
95
+ is .Equal ("" , req .URL .Path )
77
96
}
0 commit comments