github.com/aavshr/aws-sdk-go@v1.41.3/aws/signer/v4/header_rules_test.go (about) 1 package v4 2 3 import ( 4 "testing" 5 ) 6 7 func TestRuleCheckWhitelist(t *testing.T) { 8 w := allowList{ 9 mapRule{ 10 "Cache-Control": struct{}{}, 11 }, 12 } 13 14 if !w.IsValid("Cache-Control") { 15 t.Error("expected true value") 16 } 17 if w.IsValid("Cache-") { 18 t.Error("expected false value") 19 } 20 } 21 22 func TestRuleCheckBlacklist(t *testing.T) { 23 b := excludeList{ 24 mapRule{ 25 "Cache-Control": struct{}{}, 26 }, 27 } 28 29 if b.IsValid("Cache-Control") { 30 t.Error("expected false value") 31 } 32 if !b.IsValid("Cache-") { 33 t.Error("expected true value") 34 } 35 } 36 37 func TestRuleCheckPattern(t *testing.T) { 38 p := patterns{"X-Amz-Meta-"} 39 40 if !p.IsValid("X-Amz-Meta-") { 41 t.Error("expected true value") 42 } 43 if !p.IsValid("X-Amz-Meta-Star") { 44 t.Error("expected true value") 45 } 46 if p.IsValid("Cache-") { 47 t.Error("expected false value") 48 } 49 } 50 51 func TestRuleComplexWhitelist(t *testing.T) { 52 w := rules{ 53 allowList{ 54 mapRule{ 55 "Cache-Control": struct{}{}, 56 }, 57 }, 58 patterns{"X-Amz-Meta-"}, 59 } 60 61 r := rules{ 62 inclusiveRules{patterns{"X-Amz-"}, excludeList{w}}, 63 } 64 65 if !r.IsValid("X-Amz-Blah") { 66 t.Error("expected true value") 67 } 68 if r.IsValid("X-Amz-Meta-") { 69 t.Error("expected false value") 70 } 71 if r.IsValid("X-Amz-Meta-Star") { 72 t.Error("expected false value") 73 } 74 if r.IsValid("Cache-Control") { 75 t.Error("expected false value") 76 } 77 }