From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- intl/strres/tests/unit/397093.properties | 4 ++ intl/strres/tests/unit/strres.properties | 14 +++++++ intl/strres/tests/unit/test_bug378839.js | 64 ++++++++++++++++++++++++++++++++ intl/strres/tests/unit/test_bug397093.js | 43 +++++++++++++++++++++ intl/strres/tests/unit/xpcshell.ini | 9 +++++ 5 files changed, 134 insertions(+) create mode 100644 intl/strres/tests/unit/397093.properties create mode 100644 intl/strres/tests/unit/strres.properties create mode 100644 intl/strres/tests/unit/test_bug378839.js create mode 100644 intl/strres/tests/unit/test_bug397093.js create mode 100644 intl/strres/tests/unit/xpcshell.ini (limited to 'intl/strres/tests') diff --git a/intl/strres/tests/unit/397093.properties b/intl/strres/tests/unit/397093.properties new file mode 100644 index 000000000..88303d447 --- /dev/null +++ b/intl/strres/tests/unit/397093.properties @@ -0,0 +1,4 @@ +# Property file for test_bug397093.js +asciiProperty=Foo +utf8Property=Fòò +latin1Property=Fòò diff --git a/intl/strres/tests/unit/strres.properties b/intl/strres/tests/unit/strres.properties new file mode 100644 index 000000000..388f5acff --- /dev/null +++ b/intl/strres/tests/unit/strres.properties @@ -0,0 +1,14 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +file=File +loyal=\u5fe0\u5fc3 +trout=鳟魚 +edit= Edit +view=View +go=\u0020Go +message=Message\u0020 +communicator=Communicator +help=Help +123=onetwothree +hello=Hello %S diff --git a/intl/strres/tests/unit/test_bug378839.js b/intl/strres/tests/unit/test_bug378839.js new file mode 100644 index 000000000..e06a30244 --- /dev/null +++ b/intl/strres/tests/unit/test_bug378839.js @@ -0,0 +1,64 @@ +/* Tests getting properties from string bundles + */ + +const name_file = "file"; +const value_file = "File"; + +const name_loyal = "loyal"; +const value_loyal = "\u5fe0\u5fc3"; // tests escaped Unicode + +const name_trout = "trout"; +const value_trout = "\u9cdf\u9b5a"; // tests UTF-8 + +const name_edit = "edit"; +const value_edit = "Edit"; // tests literal leading spaces are stripped + +const name_view = "view"; +const value_view = "View"; // tests literal trailing spaces are stripped + +const name_go = "go"; +const value_go = " Go"; // tests escaped leading spaces are not stripped + +const name_message = "message"; +const value_message = "Message "; // tests escaped trailing spaces are not stripped + +const name_hello = "hello"; +const var_hello = "World"; +const value_hello = "Hello World"; // tests formatStringFromName with parameter + + +function run_test() { + var StringBundle = + Components.classes["@mozilla.org/intl/stringbundle;1"] + .getService(Components.interfaces.nsIStringBundleService); + var ios = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + var bundleURI = ios.newFileURI(do_get_file("strres.properties")); + + var bundle = StringBundle.createBundle(bundleURI.spec); + + var bundle_file = bundle.GetStringFromName(name_file); + do_check_eq(bundle_file, value_file); + + var bundle_loyal = bundle.GetStringFromName(name_loyal); + do_check_eq(bundle_loyal, value_loyal); + + var bundle_trout = bundle.GetStringFromName(name_trout); + do_check_eq(bundle_trout, value_trout); + + var bundle_edit = bundle.GetStringFromName(name_edit); + do_check_eq(bundle_edit, value_edit); + + var bundle_view = bundle.GetStringFromName(name_view); + do_check_eq(bundle_view, value_view); + + var bundle_go = bundle.GetStringFromName(name_go); + do_check_eq(bundle_go, value_go); + + var bundle_message = bundle.GetStringFromName(name_message); + do_check_eq(bundle_message, value_message); + + var bundle_hello = bundle.formatStringFromName(name_hello, [var_hello], 1); + do_check_eq(bundle_hello, value_hello); +} + diff --git a/intl/strres/tests/unit/test_bug397093.js b/intl/strres/tests/unit/test_bug397093.js new file mode 100644 index 000000000..36ba3bb14 --- /dev/null +++ b/intl/strres/tests/unit/test_bug397093.js @@ -0,0 +1,43 @@ +/* Tests getting properties from string bundles with incorrect encoding. + * The string bundle contains one ascii property, one UTF-8 and one Latin-1. + * Expected behaviour is that the whole string bundle should be rejected and + * all GetStringFromName calls should fail. + */ + +const name_ascii = "asciiProperty"; +const value_ascii = ""; + +const name_utf8 = "utf8Property"; +const value_utf8 = ""; + +const name_latin1 = "latin1"; +const value_latin1 = ""; + + +function run_test() { + var StringBundle = + Components.classes["@mozilla.org/intl/stringbundle;1"] + .getService(Components.interfaces.nsIStringBundleService); + var ios = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); + var bundleURI = ios.newFileURI(do_get_file("397093.properties")); + + var bundle = StringBundle.createBundle(bundleURI.spec); + + var bundle_ascii="", bundle_utf8="", bundle_latin1=""; + try { + bundle_ascii = bundle.GetStringFromName(name_ascii); + } catch(e) {} + do_check_eq(bundle_ascii, value_ascii); + + try { + bundle_utf8 = bundle.GetStringFromName(name_utf8); + } catch(e) {} + do_check_eq(bundle_utf8, value_utf8); + + try { + bundle_latin1 = bundle.GetStringFromName(name_latin1); + } catch(e) {} + do_check_eq(bundle_latin1, value_latin1); +} + diff --git a/intl/strres/tests/unit/xpcshell.ini b/intl/strres/tests/unit/xpcshell.ini new file mode 100644 index 000000000..63e47797d --- /dev/null +++ b/intl/strres/tests/unit/xpcshell.ini @@ -0,0 +1,9 @@ +[DEFAULT] +head = +tail = +support-files = + 397093.properties + strres.properties + +[test_bug378839.js] +[test_bug397093.js] -- cgit v1.2.3