Skip to content

Commit da52b07

Browse files
authored
add tests for Cors.areHeadersAllowed() (#128)
1 parent a4a5ce8 commit da52b07

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

cors_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,3 +647,61 @@ func TestOptionsSuccessStatusCodeOverride(t *testing.T) {
647647
assertResponse(t, res, http.StatusOK)
648648
})
649649
}
650+
651+
func TestCorsAreHeadersAllowed(t *testing.T) {
652+
cases := []struct {
653+
name string
654+
allowedHeaders []string
655+
requestedHeaders []string
656+
want bool
657+
}{
658+
{
659+
name: "nil allowedHeaders",
660+
allowedHeaders: nil,
661+
requestedHeaders: parseHeaderList("X-PINGOTHER, Content-Type"),
662+
want: false,
663+
},
664+
{
665+
name: "star allowedHeaders",
666+
allowedHeaders: []string{"*"},
667+
requestedHeaders: parseHeaderList("X-PINGOTHER, Content-Type"),
668+
want: true,
669+
},
670+
{
671+
name: "empty reqHeader",
672+
allowedHeaders: nil,
673+
requestedHeaders: parseHeaderList(""),
674+
want: true,
675+
},
676+
{
677+
name: "match allowedHeaders",
678+
allowedHeaders: []string{"Content-Type", "X-PINGOTHER", "X-APP-KEY"},
679+
requestedHeaders: parseHeaderList("X-PINGOTHER, Content-Type"),
680+
want: true,
681+
},
682+
{
683+
name: "not matched allowedHeaders",
684+
allowedHeaders: []string{"X-PINGOTHER"},
685+
requestedHeaders: parseHeaderList("X-API-KEY, Content-Type"),
686+
want: false,
687+
},
688+
{
689+
name: "allowedHeaders should be a superset of requestedHeaders",
690+
allowedHeaders: []string{"X-PINGOTHER"},
691+
requestedHeaders: parseHeaderList("X-PINGOTHER, Content-Type"),
692+
want: false,
693+
},
694+
}
695+
696+
for _, tt := range cases {
697+
tt := tt
698+
699+
t.Run(tt.name, func(t *testing.T) {
700+
c := New(Options{AllowedHeaders: tt.allowedHeaders})
701+
have := c.areHeadersAllowed(tt.requestedHeaders)
702+
if have != tt.want {
703+
t.Errorf("Cors.areHeadersAllowed() have: %t want: %t", have, tt.want)
704+
}
705+
})
706+
}
707+
}

0 commit comments

Comments
 (0)