diff options
author | Brian de Alwis | 2016-03-10 22:02:37 +0000 |
---|---|---|
committer | Brian de Alwis | 2016-11-21 17:06:23 +0000 |
commit | a5b2e9430aa6276fd39d33b3b337c0e2520859e3 (patch) | |
tree | 3ab0465ca67e9625717e9d938ba01b11e0c9c6d2 | |
parent | 47dca3655d8d8228703066e63ee7e8c25b731a9a (diff) | |
download | eclipse.platform.ua-a5b2e9430aa6276fd39d33b3b337c0e2520859e3.tar.gz eclipse.platform.ua-a5b2e9430aa6276fd39d33b3b337c0e2520859e3.tar.xz eclipse.platform.ua-a5b2e9430aa6276fd39d33b3b337c0e2520859e3.zip |
[Help] Fix JSON generation to create conformant JSONY20161229-1000Y20161223-1030Y20161222-1000Y20161215-1200Y20161208-1000Y20161201-1000Y20161124-1000S4_7_0_M4I20170101-2000I20161231-2000I20161230-2000I20161229-2000I20161228-2000I20161227-2000I20161226-2000I20161225-2000I20161224-2000I20161223-2000I20161223-0615I20161222-2000I20161221-2000I20161221-0400I20161220-2000I20161220-0530I20161219-2000I20161219-0145I20161218-2000I20161217-2000I20161216-2000I20161215-2000I20161215-0915I20161215-0830I20161215-0730I20161215-0130I20161214-2000I20161214-1005I20161213-2000I20161213-0600I20161213-0300I20161212-2000I20161211-2000I20161210-2000I20161208-0830I20161208-0730I20161207-2000I20161207-1340I20161207-0800I20161207-0515I20161206-2000I20161206-0800I20161205-2000I20161205-0800I20161204-2000I20161203-2000I20161202-2000I20161201-2000I20161201-0800I20161130-2000I20161129-2330I20161129-2000I20161128-2000I20161128-0600I20161128-0330I20161127-2000I20161127-1300I20161126-2000I20161126-0815I20161125-2000I20161124-2000I20161123-2000I20161122-2000
Change-Id: I5ac232360beff296d1c256a14a759912d9218cb7
7 files changed, 39 insertions, 15 deletions
diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java index d0c21f958..d24570b07 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/AboutParser.java @@ -102,13 +102,13 @@ public class AboutParser extends ResultParser { buf.append(JSonHelper.BEGIN_BRACE); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.IDENTIFIER); + buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(id)); buf.append(JSonHelper.COMMA); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.LABEL); + buf.append(JSonHelper.getQuotes(JSonHelper.LABEL)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(label)); buf.append(JSonHelper.COMMA); diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java index 0dcab04e8..c1446fa65 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/NavParser.java @@ -60,13 +60,13 @@ public class NavParser extends ResultParser { buf.append(JSonHelper.BEGIN_BRACE); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.IDENTIFIER); + buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(id)); buf.append(JSonHelper.COMMA); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.LABEL); + buf.append(JSonHelper.getQuotes(JSonHelper.LABEL)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(label)); buf.append(JSonHelper.COMMA); diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java index 2e72fca8b..909d3839a 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ParseElement.java @@ -82,7 +82,7 @@ public class ParseElement { String val = props.getProperty(key); buff.append(JSonHelper.NEWLINE + space + JSonHelper.SPACE); - buff.append(key); + buff.append(JSonHelper.getQuotes(key)); buff.append(JSonHelper.COLON); try { val = URLEncoder.encode(val, "UTF-8"); //$NON-NLS-1$ @@ -105,7 +105,7 @@ public class ParseElement { } else { buff.append(JSonHelper.NEWLINE + space + JSonHelper.SPACE); - buff.append(JSonHelper.CHILDREN); + buff.append(JSonHelper.getQuotes(JSonHelper.CHILDREN)); buff.append(JSonHelper.COLON); buff.append(JSonHelper.BEGIN_BRACKET); @@ -141,7 +141,7 @@ public class ParseElement { String val = props.getProperty(key); buff.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buff.append(key); + buff.append(JSonHelper.getQuotes(key)); buff.append(JSonHelper.COLON); try { val = URLEncoder.encode(val, "UTF-8"); //$NON-NLS-1$ @@ -164,7 +164,7 @@ public class ParseElement { } else { buff.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buff.append(JSonHelper.ITEMS); + buff.append(JSonHelper.getQuotes(JSonHelper.ITEMS)); buff.append(JSonHelper.COLON); buff.append(JSonHelper.BEGIN_BRACKET); diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java index 48c905c6d..cd3829553 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/parser/ResultParser.java @@ -77,19 +77,19 @@ public class ResultParser extends DefaultHandler { buf.append(JSonHelper.BEGIN_BRACE); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.IDENTIFIER); + buf.append(JSonHelper.getQuotes(JSonHelper.IDENTIFIER)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(id)); buf.append(JSonHelper.COMMA); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.LABEL); + buf.append(JSonHelper.getQuotes(JSonHelper.LABEL)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.getQuotes(label)); buf.append(JSonHelper.COMMA); buf.append(JSonHelper.NEWLINE + JSonHelper.SPACE); - buf.append(JSonHelper.ITEMS); + buf.append(JSonHelper.getQuotes(JSonHelper.ITEMS)); buf.append(JSonHelper.COLON); buf.append(JSonHelper.BEGIN_BRACKET); diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java index 225573048..1043d559f 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/utils/JSonHelper.java @@ -15,7 +15,7 @@ public final class JSonHelper { //JSON Characters public static final String BEGIN_BRACE = "{"; //$NON-NLS-1$ public static final String END_BRACE = "}"; //$NON-NLS-1$ - public static final String QUOTE = "\'"; //$NON-NLS-1$ + public static final String DOUBLEQUOTE = "\""; //$NON-NLS-1$ public static final String COLON = ":"; //$NON-NLS-1$ public static final String BEGIN_BRACKET = "["; //$NON-NLS-1$ public static final String END_BRACKET = "]"; //$NON-NLS-1$ @@ -52,8 +52,14 @@ public final class JSonHelper { public static final String TOPIC = "Topic"; //$NON-NLS-1$ public static final String NUMERIC_PATH = "NumericPath"; //$NON-NLS-1$ - public static String getQuotes(String str){ - return ((str != null)?QUOTE + str + QUOTE:""); //$NON-NLS-1$ + public static String getQuotes(String str) { + if (str == null) { + return ""; //$NON-NLS-1$ + } + if (str.indexOf(DOUBLEQUOTE) < 0) { + return DOUBLEQUOTE + str + DOUBLEQUOTE; + } + return DOUBLEQUOTE + str.replaceAll(DOUBLEQUOTE, "\\\\" + DOUBLEQUOTE) + DOUBLEQUOTE; //$NON-NLS-1$ } } diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java index 8ec2d1bd6..fb2912396 100644 --- a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java +++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/AllWebappTests.java @@ -32,7 +32,8 @@ import org.junit.runners.Suite; HelpServerInterrupt.class, HelpServerBinding.class, HtmlCoderTest.class, - TocZipTest.class + TocZipTest.class, + JsonHelperTests.class }) public class AllWebappTests { } diff --git a/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java new file mode 100644 index 000000000..6df0223be --- /dev/null +++ b/org.eclipse.ua.tests/help/org/eclipse/ua/tests/help/webapp/JsonHelperTests.java @@ -0,0 +1,17 @@ +package org.eclipse.ua.tests.help.webapp; + +import static org.junit.Assert.assertEquals; + +import org.eclipse.help.internal.webapp.utils.JSonHelper; +import org.junit.Test; + +public class JsonHelperTests { + @Test + public void testQuoted() { + assertEquals("\"test\"", JSonHelper.getQuotes("test")); + assertEquals("\"test test\"", JSonHelper.getQuotes("test test")); + assertEquals("\"test\\\"test\"", JSonHelper.getQuotes("test\"test")); + assertEquals("\"\\\"test test\\\"\"", JSonHelper.getQuotes("\"test test\"")); + assertEquals("\"\\\\\"test test\\\\\"\"", JSonHelper.getQuotes("\\\"test test\\\"")); + } +} |