summaryrefslogtreecommitdiffstats
path: root/xpcom/tests/unit/test_bug121341.js
diff options
context:
space:
mode:
Diffstat (limited to 'xpcom/tests/unit/test_bug121341.js')
-rw-r--r--xpcom/tests/unit/test_bug121341.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/xpcom/tests/unit/test_bug121341.js b/xpcom/tests/unit/test_bug121341.js
new file mode 100644
index 0000000000..2e66970092
--- /dev/null
+++ b/xpcom/tests/unit/test_bug121341.js
@@ -0,0 +1,64 @@
+const { NetUtil } = ChromeUtils.importESModule(
+ "resource://gre/modules/NetUtil.sys.mjs"
+);
+
+function run_test() {
+ var dataFile = do_get_file("data/bug121341.properties");
+ var channel = NetUtil.newChannel({
+ uri: Services.io.newFileURI(dataFile, null, null),
+ loadUsingSystemPrincipal: true,
+ });
+ var inp = channel.open();
+
+ var properties = Cu.createPersistentProperties();
+ properties.load(inp);
+
+ var value;
+
+ value = properties.getStringProperty("1");
+ Assert.equal(value, "abc");
+
+ value = properties.getStringProperty("2");
+ Assert.equal(value, "xy");
+
+ value = properties.getStringProperty("3");
+ Assert.equal(value, "\u1234\t\r\n\u00AB\u0001\n");
+
+ value = properties.getStringProperty("4");
+ Assert.equal(value, "this is multiline property");
+
+ value = properties.getStringProperty("5");
+ Assert.equal(value, "this is another multiline property");
+
+ value = properties.getStringProperty("6");
+ Assert.equal(value, "test\u0036");
+
+ value = properties.getStringProperty("7");
+ Assert.equal(value, "yet another multiline propery");
+
+ value = properties.getStringProperty("8");
+ Assert.equal(value, "\ttest5\u0020");
+
+ value = properties.getStringProperty("9");
+ Assert.equal(value, " test6\t");
+
+ value = properties.getStringProperty("10a\u1234b");
+ Assert.equal(value, "c\uCDEFd");
+
+ value = properties.getStringProperty("11");
+ Assert.equal(value, "\uABCD");
+
+ dataFile = do_get_file("data/bug121341-2.properties");
+
+ var channel2 = NetUtil.newChannel({
+ uri: Services.io.newFileURI(dataFile, null, null),
+ loadUsingSystemPrincipal: true,
+ });
+ inp = channel2.open();
+
+ var properties2 = Cu.createPersistentProperties();
+ try {
+ properties2.load(inp);
+ do_throw("load() didn't fail");
+ } catch (e) {}
+}