From 4bbbe774469a137d46dedb37b614b7d1fca3fda7 Mon Sep 17 00:00:00 2001 From: Michael Ameri Date: Sun, 12 Jan 2025 23:03:31 +0100 Subject: [PATCH] add missing fields when cloning --- .../org/json/JSONParserConfiguration.java | 2 ++ .../junit/JSONParserConfigurationTest.java | 23 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/json/JSONParserConfiguration.java b/src/main/java/org/json/JSONParserConfiguration.java index f5d0660..f14461a 100644 --- a/src/main/java/org/json/JSONParserConfiguration.java +++ b/src/main/java/org/json/JSONParserConfiguration.java @@ -27,7 +27,9 @@ public class JSONParserConfiguration extends ParserConfiguration { protected JSONParserConfiguration clone() { JSONParserConfiguration clone = new JSONParserConfiguration(); clone.overwriteDuplicateKey = overwriteDuplicateKey; + clone.strictMode = strictMode; clone.maxNestingDepth = maxNestingDepth; + clone.keepStrings = keepStrings; return clone; } diff --git a/src/test/java/org/json/junit/JSONParserConfigurationTest.java b/src/test/java/org/json/junit/JSONParserConfigurationTest.java index 422c90c..68dfd4c 100644 --- a/src/test/java/org/json/junit/JSONParserConfigurationTest.java +++ b/src/test/java/org/json/junit/JSONParserConfigurationTest.java @@ -14,7 +14,10 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; public class JSONParserConfigurationTest { private static final String TEST_SOURCE = "{\"key\": \"value1\", \"key\": \"value2\"}"; @@ -32,6 +35,24 @@ public class JSONParserConfigurationTest { assertEquals("duplicate key should be overwritten", "value2", jsonObject.getString("key")); } + @Test + public void strictModeIsCloned(){ + JSONParserConfiguration jsonParserConfiguration = new JSONParserConfiguration() + .withStrictMode(true) + .withMaxNestingDepth(12); + + assertTrue(jsonParserConfiguration.isStrictMode()); + } + + @Test + public void maxNestingDepthIsCloned(){ + JSONParserConfiguration jsonParserConfiguration = new JSONParserConfiguration() + .withKeepStrings(true) + .withStrictMode(true); + + assertTrue(jsonParserConfiguration.isKeepStrings()); + } + @Test public void verifyDuplicateKeyThenMaxDepth() { JSONParserConfiguration jsonParserConfiguration = new JSONParserConfiguration()