@@ -109,6 +109,14 @@ func getTestResponse(method string, path string, body string, headers map[string
109
109
return buildTestResponse (& buf )
110
110
}
111
111
112
+ func testGet (path string , headers map [string ]string ) * testResponse {
113
+ var header http.Header
114
+ for k ,v := range headers {
115
+ header .Set (k , v )
116
+ }
117
+ return getTestResponse ("GET" , path , "" , header , nil )
118
+ }
119
+
112
120
type Test struct {
113
121
method string
114
122
path string
@@ -204,6 +212,11 @@ func init() {
204
212
ctx .SetHeader ("Access-Control-Max-Age" , "1000" , true )
205
213
ctx .WriteHeader (200 )
206
214
})
215
+
216
+ Get ("/dupeheader" , func (ctx * Context ) string {
217
+ ctx .SetHeader ("Server" , "myserver" , true )
218
+ return ""
219
+ })
207
220
}
208
221
209
222
var tests = []Test {
@@ -534,3 +547,14 @@ func TestSlug(t *testing.T) {
534
547
}
535
548
}
536
549
}
550
+
551
+ // tests that we don't duplicate headers
552
+ func TestDuplicateHeader (t * testing.T ) {
553
+ resp := testGet ("/dupeheader" , nil )
554
+ if len (resp .headers ["Server" ]) > 1 {
555
+ t .Fatalf ("Expected only one header, got %#v" , resp .headers ["Server" ])
556
+ }
557
+ if resp .headers ["Server" ][0 ] != "myserver" {
558
+ t .Fatalf ("Incorrect header, exp 'myserver', got %q" , resp .headers ["Server" ][0 ])
559
+ }
560
+ }
0 commit comments