Skip to content

Commit a5a7a50

Browse files
committed
Add square bracket encoding protocol tests
This commit adds protocol tests to both restJson1 and restXml that validate square brackets ('[' and ']') are not encoded when present in query parameter keys.
1 parent 5bd4acf commit a5a7a50

4 files changed

Lines changed: 56 additions & 0 deletions

File tree

smithy-aws-protocol-tests/model/restJson1/http-query.smithy

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -700,3 +700,30 @@ structure QueryParamsAsStringListMapInput {
700700
@httpQueryParams
701701
foo: StringListMap
702702
}
703+
704+
/// Does not encode `[]` chars in serialized URIs.
705+
@readonly
706+
@http(uri: "/SkipsEncodingSquareBrackets", method: "GET")
707+
operation SkipsEncodingSquareBrackets {
708+
input := {
709+
@httpQuery("brackets[]")
710+
paramWithBrackets: String
711+
}
712+
}
713+
714+
apply SkipsEncodingSquareBrackets @httpRequestTests([
715+
{
716+
id: "RestJsonSkipsEncodingSquareBrackets"
717+
documentation: "Do not encode square brackets (`[` and `]`) in the names of query parameters."
718+
protocol: restJson1
719+
method: "GET"
720+
uri: "/SkipsEncodingSquareBrackets"
721+
body: ""
722+
queryParams: [
723+
"brackets[]=Text"
724+
]
725+
params: {
726+
paramWithBrackets: "Text"
727+
}
728+
}
729+
])

smithy-aws-protocol-tests/model/restJson1/main.smithy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ service RestJson {
5050
QueryIdempotencyTokenAutoFill,
5151
QueryPrecedence,
5252
QueryParamsAsStringListMap,
53+
SkipsEncodingSquareBrackets
5354

5455
// @httpPrefixHeaders tests
5556
HttpPrefixHeaders,

smithy-aws-protocol-tests/model/restXml/http-query.smithy

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,3 +586,30 @@ structure QueryParamsAsStringListMapInput {
586586
@httpQueryParams
587587
foo: StringListMap
588588
}
589+
590+
/// Does not encode `[]` chars in serialized URIs.
591+
@readonly
592+
@http(uri: "/SkipsEncodingSquareBrackets", method: "GET")
593+
operation SkipsEncodingSquareBrackets {
594+
input := {
595+
@httpQuery("brackets[]")
596+
paramWithBrackets: String
597+
}
598+
}
599+
600+
apply SkipsEncodingSquareBrackets @httpRequestTests([
601+
{
602+
id: "RestXmlSkipsEncodingSquareBrackets"
603+
documentation: "Do not encode square brackets (`[` and `]`) in the names of query parameters."
604+
protocol: restXml
605+
method: "GET"
606+
uri: "/SkipsEncodingSquareBrackets"
607+
body: ""
608+
queryParams: [
609+
"brackets[]=Text"
610+
]
611+
params: {
612+
paramWithBrackets: "Text"
613+
}
614+
}
615+
])

smithy-aws-protocol-tests/model/restXml/main.smithy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ service RestXml {
4545
QueryIdempotencyTokenAutoFill,
4646
QueryPrecedence,
4747
QueryParamsAsStringListMap,
48+
SkipsEncodingSquareBrackets
4849

4950
// @httpPrefixHeaders tests
5051
HttpPrefixHeaders,

0 commit comments

Comments
 (0)