diff --git a/karate-core/src/main/java/com/intuit/karate/http/Response.java b/karate-core/src/main/java/com/intuit/karate/http/Response.java index 0e29ce964..104903729 100644 --- a/karate-core/src/main/java/com/intuit/karate/http/Response.java +++ b/karate-core/src/main/java/com/intuit/karate/http/Response.java @@ -38,6 +38,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import static java.util.Objects.nonNull; import java.util.Set; import java.util.function.Supplier; import org.graalvm.polyglot.Value; @@ -122,7 +123,10 @@ public Map getCookies() { Map map = new HashMap(); for (String value : values) { Cookie cookie = ClientCookieDecoder.STRICT.decode(value); - map.put(cookie.name(), Cookies.toMap(cookie)); + // skipping cookie containing invalid char + if(nonNull(cookie)) { + map.put(cookie.name(), Cookies.toMap(cookie)); + } } return map; } diff --git a/karate-core/src/test/java/com/intuit/karate/core/mock/MockRunner.java b/karate-core/src/test/java/com/intuit/karate/core/mock/MockRunner.java index 1e49010be..96c196a83 100644 --- a/karate-core/src/test/java/com/intuit/karate/core/mock/MockRunner.java +++ b/karate-core/src/test/java/com/intuit/karate/core/mock/MockRunner.java @@ -60,4 +60,8 @@ void testMultipart() { run("upload.feature"); } + @Test + void testInvalidCookie() { + run("invalid-cookie.feature"); + } } diff --git a/karate-core/src/test/java/com/intuit/karate/core/mock/_mock.feature b/karate-core/src/test/java/com/intuit/karate/core/mock/_mock.feature index 465527544..4e3247cf1 100644 --- a/karate-core/src/test/java/com/intuit/karate/core/mock/_mock.feature +++ b/karate-core/src/test/java/com/intuit/karate/core/mock/_mock.feature @@ -115,4 +115,7 @@ Scenario: pathMatches('/v1/html')

Hello

- """ \ No newline at end of file + """ + +Scenario: pathMatches('/v1/invalid-cookie') + * def responseHeaders = { 'Set-Cookie': 'detectedTimeZoneId=FLE Standard Time' } \ No newline at end of file diff --git a/karate-core/src/test/java/com/intuit/karate/core/mock/invalid-cookie.feature b/karate-core/src/test/java/com/intuit/karate/core/mock/invalid-cookie.feature new file mode 100644 index 000000000..d86fd9fbd --- /dev/null +++ b/karate-core/src/test/java/com/intuit/karate/core/mock/invalid-cookie.feature @@ -0,0 +1,9 @@ +Feature: + +Background: +* url mockServerUrl + + Scenario: + * path 'invalid-cookie'; + * method get + * status 200 \ No newline at end of file