@@ -102,6 +102,15 @@ func TestEchoStatic(t *testing.T) {
102
102
expectHeaderLocation : "/folder/" ,
103
103
expectBodyStartsWith : "" ,
104
104
},
105
+ {
106
+ name : "Directory Redirect with non-root path" ,
107
+ givenPrefix : "/static" ,
108
+ givenRoot : "_fixture" ,
109
+ whenURL : "/static" ,
110
+ expectStatus : http .StatusMovedPermanently ,
111
+ expectHeaderLocation : "/static/" ,
112
+ expectBodyStartsWith : "" ,
113
+ },
105
114
{
106
115
name : "Directory with index.html" ,
107
116
givenPrefix : "/" ,
@@ -161,6 +170,40 @@ func TestEchoStatic(t *testing.T) {
161
170
}
162
171
}
163
172
173
+ func TestEchoStaticRedirectIndex (t * testing.T ) {
174
+ assert := assert .New (t )
175
+ e := New ()
176
+
177
+ // HandlerFunc
178
+ e .Static ("/static" , "_fixture" )
179
+
180
+ errCh := make (chan error )
181
+
182
+ go func () {
183
+ errCh <- e .Start ("127.0.0.1:1323" )
184
+ }()
185
+
186
+ time .Sleep (200 * time .Millisecond )
187
+
188
+ if resp , err := http .Get ("http://127.0.0.1:1323/static" ); err == nil {
189
+ defer resp .Body .Close ()
190
+ assert .Equal (http .StatusOK , resp .StatusCode )
191
+
192
+ if body , err := ioutil .ReadAll (resp .Body ); err == nil {
193
+ assert .Equal (true , strings .HasPrefix (string (body ), "<!doctype html>" ))
194
+ } else {
195
+ assert .Fail (err .Error ())
196
+ }
197
+
198
+ } else {
199
+ assert .Fail (err .Error ())
200
+ }
201
+
202
+ if err := e .Close (); err != nil {
203
+ t .Fatal (err )
204
+ }
205
+ }
206
+
164
207
func TestEchoFile (t * testing.T ) {
165
208
e := New ()
166
209
e .File ("/walle" , "_fixture/images/walle.png" )
0 commit comments