Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/modules/libpref/test/unit/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 4 kB image not shown  

Quelle  test_parser.js   Sprache: JAVA

 
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/licenses/publicdomain/  */


// It is necessary to manually disable `xpc::IsInAutomation` since
// `resetPrefs` will flip the preference to re-enable `once`-synced
// preference change assertions, and also change the value of those
// preferences.
Services.prefs.setBoolPref(
  "security.turn_off_all_security_so_that_viruses_can_take_over_this_computer",
  false
);

function run_test() {
  const ps = Services.prefs;

  ps.resetPrefs();
  ps.readDefaultPrefsFromFile(do_get_file("data/testParser.js"));

  Assert.equal(ps.getBoolPref("comment1"), true);
  Assert.equal(ps.getBoolPref("comment2"), true);
  Assert.equal(ps.getBoolPref("spaced-out"), true);

  Assert.equal(ps.getBoolPref("pref"), true);
  Assert.equal(ps.getBoolPref("sticky_pref"), true);
  Assert.equal(ps.getBoolPref("user_pref"), true);
  Assert.equal(ps.getBoolPref("sticky_pref2"), true);
  Assert.equal(ps.getBoolPref("locked_pref"), true);
  Assert.equal(ps.getBoolPref("locked_sticky_pref"), true);
  Assert.equal(ps.prefIsLocked("locked_pref"), true);
  Assert.equal(ps.prefIsLocked("locked_sticky_pref"), true);

  Assert.equal(ps.getBoolPref("bool.true"), true);
  Assert.equal(ps.getBoolPref("bool.false"), false);

  Assert.equal(ps.getIntPref("int.0"), 0);
  Assert.equal(ps.getIntPref("int.1"), 1);
  Assert.equal(ps.getIntPref("int.123"), 123);
  Assert.equal(ps.getIntPref("int.+234"), 234);
  Assert.equal(ps.getIntPref("int.+ 345"), 345);
  Assert.equal(ps.getIntPref("int.-0"), -0);
  Assert.equal(ps.getIntPref("int.-1"), -1);
  Assert.equal(ps.getIntPref("int.- /* hmm */\t456"), -456);
  Assert.equal(ps.getIntPref("int.-\n567"), -567);
  Assert.equal(ps.getIntPref("int.INT_MAX-1"), 2147483646);
  Assert.equal(ps.getIntPref("int.INT_MAX"), 2147483647);
  Assert.equal(ps.getIntPref("int.INT_MIN+2"), -2147483646);
  Assert.equal(ps.getIntPref("int.INT_MIN+1"), -2147483647);
  Assert.equal(ps.getIntPref("int.INT_MIN"), -2147483648);

  Assert.equal(ps.getCharPref("string.empty"), "");
  Assert.equal(ps.getCharPref("string.abc"), "abc");
  Assert.equal(
    ps.getCharPref("string.long"),
    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  );
  Assert.equal(ps.getCharPref("string.single-quotes"), '"abc"');
  Assert.equal(ps.getCharPref("string.double-quotes"), "'abc'");
  Assert.equal(
    ps.getCharPref("string.weird-chars"),
    "\x0d \x09 \x0b \x0c \x06 \x16"
  );
  Assert.equal(ps.getCharPref("string.escapes"), "\" ' \\ \n \r");

  // This one is ASCII, so we can use getCharPref() and getStringPref
  // interchangeably.
  Assert.equal(
    ps.getCharPref("string.x-escapes1"),
    "Mozilla0\x4d\x6F\x7a\x69\x6c\x6C\x610"
  );
  Assert.equal(ps.getStringPref("string.x-escapes1"), "Mozilla0Mozilla0");

  // This one has chars with value > 127, so it's not valid UTF8, so we can't
  // use getStringPref on it.
  Assert.equal(
    ps.getCharPref("string.x-escapes2"),
    "AA A_umlaut\xc4 y_umlaut\xff"
  );

  // The following strings use \uNNNN escapes, which are UTF16 code points.
  // libpref stores them internally as UTF8 byte sequences. In each case we get
  // the string in two ways:
  // - getStringPref() interprets it as UTF8, which is then converted to UTF16
  //   in JS. I.e. code points that are multiple bytes in UTF8 become a single
  //   16-bit char in JS (except for the non-BMP chars, which become a 16-bit
  //   surrogate pair).
  // - getCharPref() interprets it as Latin1, which is then converted to UTF16
  //   in JS. I.e. code points that are multiple bytes in UTF8 become multiple
  //   16-bit chars in JS.

  Assert.equal(
    ps.getStringPref("string.u-escapes1"),
    "A\u0041 A_umlaut\u00c4 y_umlaut\u00ff0"
  );
  Assert.equal(
    ps.getCharPref("string.u-escapes1"),
    "A\x41 A_umlaut\xc3\x84 y_umlaut\xc3\xbf0"
  );

  Assert.equal(
    ps.getStringPref("string.u-escapes2"),
    "S_acute\u015a y_grave\u1Ef3"
  );
  Assert.equal(
    ps.getCharPref("string.u-escapes2"),
    "S_acute\xc5\x9a y_grave\xe1\xbb\xb3"
  );

  Assert.equal(
    ps.getStringPref("string.u-surrogates"),
    "cyclone\uD83C\uDF00 grinning_face\uD83D\uDE00"
  );
  Assert.equal(
    ps.getCharPref("string.u-surrogates"),
    "cyclone\xF0\x9F\x8C\x80 grinning_face\xF0\x9F\x98\x80"
  );
}

100%


¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.