From 0775f052768278fe9e37dace3f20b935db5afb8f Mon Sep 17 00:00:00 2001 From: Marcono1234 <Marcono1234@users.noreply.github.com> Date: Fri, 22 May 2020 00:46:27 +0200 Subject: [PATCH 1/2] Improve InternationalizationTest - Remove "raw" tests since after compiling they are the same as the one with escape sequences - Add tests for supplementary code points (> \uFFFF) --- .../functional/InternationalizationTest.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java b/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java index 169c37a503..3a29b1908a 100644 --- a/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java +++ b/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java @@ -34,32 +34,16 @@ protected void setUp() throws Exception { gson = new Gson(); } - /* - public void testStringsWithRawChineseCharactersSerialization() throws Exception { - String target = "好好好"; - String json = gson.toJson(target); - String expected = "\"\\u597d\\u597d\\u597d\""; - assertEquals(expected, json); - } - */ - - public void testStringsWithRawChineseCharactersDeserialization() throws Exception { - String expected = "好好好"; - String json = "\"" + expected + "\""; - String actual = gson.fromJson(json, String.class); - assertEquals(expected, actual); - } - public void testStringsWithUnicodeChineseCharactersSerialization() throws Exception { String target = "\u597d\u597d\u597d"; String json = gson.toJson(target); - String expected = "\"\u597d\u597d\u597d\""; + String expected = '"' + target + '"'; assertEquals(expected, json); } public void testStringsWithUnicodeChineseCharactersDeserialization() throws Exception { String expected = "\u597d\u597d\u597d"; - String json = "\"" + expected + "\""; + String json = '"' + expected + '"'; String actual = gson.fromJson(json, String.class); assertEquals(expected, actual); } @@ -68,4 +52,25 @@ public void testStringsWithUnicodeChineseCharactersEscapedDeserialization() thro String actual = gson.fromJson("'\\u597d\\u597d\\u597d'", String.class); assertEquals("\u597d\u597d\u597d", actual); } + + public void testSupplementaryUnicodeSerialization() throws Exception { + // Supplementary code point U+1F60A + String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); + String json = gson.toJson(supplementaryChar); + assertEquals('"' + supplementaryChar + '"', json); + } + + public void testSupplementaryUnicodeDeserialization() throws Exception { + // Supplementary code point U+1F60A + String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); + String actual = gson.fromJson('"' + supplementaryChar + '"', String.class); + assertEquals(supplementaryChar, actual); + } + + public void testSupplementaryUnicodeEscapedDeserialization() throws Exception { + // Supplementary code point U+1F60A + String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); + String actual = gson.fromJson("\"\uD83D\uDE0A\"", String.class); + assertEquals(supplementaryChar, actual); + } } From 84920314e3ed56a42e8dad9946ef6fbf28a588e0 Mon Sep 17 00:00:00 2001 From: Marcono1234 <Marcono1234@users.noreply.github.com> Date: Mon, 8 Aug 2022 00:49:51 +0200 Subject: [PATCH 2/2] Improve variable names, fix incorrect escape sequences --- .../functional/InternationalizationTest.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java b/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java index 3a29b1908a..bdf6ea6e83 100644 --- a/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java +++ b/gson/src/test/java/com/google/gson/functional/InternationalizationTest.java @@ -17,7 +17,6 @@ package com.google.gson.functional; import com.google.gson.Gson; - import junit.framework.TestCase; /** @@ -55,22 +54,22 @@ public void testStringsWithUnicodeChineseCharactersEscapedDeserialization() thro public void testSupplementaryUnicodeSerialization() throws Exception { // Supplementary code point U+1F60A - String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); - String json = gson.toJson(supplementaryChar); - assertEquals('"' + supplementaryChar + '"', json); + String supplementaryCodePoint = new String(new int[] {0x1F60A}, 0, 1); + String json = gson.toJson(supplementaryCodePoint); + assertEquals('"' + supplementaryCodePoint + '"', json); } public void testSupplementaryUnicodeDeserialization() throws Exception { // Supplementary code point U+1F60A - String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); - String actual = gson.fromJson('"' + supplementaryChar + '"', String.class); - assertEquals(supplementaryChar, actual); + String supplementaryCodePoint = new String(new int[] {0x1F60A}, 0, 1); + String actual = gson.fromJson('"' + supplementaryCodePoint + '"', String.class); + assertEquals(supplementaryCodePoint, actual); } public void testSupplementaryUnicodeEscapedDeserialization() throws Exception { // Supplementary code point U+1F60A - String supplementaryChar = new String(new int[] {0x1F60A}, 0, 1); - String actual = gson.fromJson("\"\uD83D\uDE0A\"", String.class); - assertEquals(supplementaryChar, actual); + String supplementaryCodePoint = new String(new int[] {0x1F60A}, 0, 1); + String actual = gson.fromJson("\"\\uD83D\\uDE0A\"", String.class); + assertEquals(supplementaryCodePoint, actual); } }