From 8d66e629101b6b8c0109a243a9265ea7cb309a63 Mon Sep 17 00:00:00 2001 From: Nishant-Sehgal Date: Sat, 2 Oct 2021 14:27:54 +0530 Subject: [PATCH 1/2] Issue-1759 Fixing NLP for invalid cookie value --- .../src/main/java/com/intuit/karate/http/Response.java | 6 +++++- .../java/com/intuit/karate/core/mock/MockRunner.java | 4 ++++ .../java/com/intuit/karate/core/mock/_mock.feature | 5 ++++- .../com/intuit/karate/core/mock/invalid-cookie.feature | 10 ++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 karate-core/src/test/java/com/intuit/karate/core/mock/invalid-cookie.feature 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..b3c627642 --- /dev/null +++ b/karate-core/src/test/java/com/intuit/karate/core/mock/invalid-cookie.feature @@ -0,0 +1,10 @@ +Feature: + +Background: +* url mockServerUrl + + Scenario: + * path 'invalid-cookie'; + * method get + * status 200 + From 84b309283628c7c3f18a43366315e1d35a70492e Mon Sep 17 00:00:00 2001 From: Nishant-Sehgal Date: Sat, 2 Oct 2021 16:13:09 +0530 Subject: [PATCH 2/2] Issue-1759 Fixing NLP for invalid cookie value --- .../java/com/intuit/karate/core/mock/invalid-cookie.feature | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 index b3c627642..d86fd9fbd 100644 --- 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 @@ -6,5 +6,4 @@ Background: Scenario: * path 'invalid-cookie'; * method get - * status 200 - + * status 200 \ No newline at end of file