tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

testDateToLocaleString.cpp (2265B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
      2 * vim: set ts=8 sts=2 et sw=2 tw=80:
      3 */
      4 /* This Source Code Form is subject to the terms of the Mozilla Public
      5 * License, v. 2.0. If a copy of the MPL was not distributed with this
      6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      7 
      8 #include "js/LocaleSensitive.h"
      9 #include "jsapi-tests/tests.h"
     10 
     11 BEGIN_TEST(testDateToLocaleString) {
     12  JSRuntime* rt = JS_GetRuntime(cx);
     13 
     14  // This test should only attempt to run if we have Intl support: necessary
     15  // to properly assume that changes to the default locale will predictably
     16  // affect the behavior of the locale-sensitive Date methods tested here.
     17  JS::Rooted<JS::Value> haveIntl(cx);
     18  EVAL("typeof Intl !== 'undefined'", &haveIntl);
     19  if (!haveIntl.toBoolean()) {
     20    return true;
     21  }
     22 
     23  // Pervasive assumption: our Intl support includes "de" (German) and
     24  // "en" (English) and treats them differently for purposes of
     25  // Date.prototype.toLocale{,Date,Time}String behavior.
     26 
     27  // Start with German.
     28  CHECK(JS_SetDefaultLocale(rt, "de"));
     29 
     30  // The (constrained) Date object we'll use to test behavior.
     31  EXEC("var d = new Date(Date.UTC(2015, 9 - 1, 17));");
     32 
     33  // Test that toLocaleString behavior changes with default locale changes.
     34  EXEC("var deAll = d.toLocaleString();");
     35 
     36  CHECK(JS_SetDefaultLocale(rt, "en"));
     37  EXEC(
     38      "if (d.toLocaleString() === deAll) \n"
     39      "  throw 'toLocaleString results should have changed with system locale "
     40      "change';");
     41 
     42  // Test that toLocaleDateString behavior changes with default locale changes.
     43  EXEC("var enDate = d.toLocaleDateString();");
     44 
     45  CHECK(JS_SetDefaultLocale(rt, "de"));
     46  EXEC(
     47      "if (d.toLocaleDateString() === enDate) \n"
     48      "  throw 'toLocaleDateString results should have changed with system "
     49      "locale change';");
     50 
     51  // Test that toLocaleTimeString behavior changes with default locale changes.
     52  EXEC("var deTime = d.toLocaleTimeString();");
     53 
     54  CHECK(JS_SetDefaultLocale(rt, "en"));
     55  EXEC(
     56      "if (d.toLocaleTimeString() === deTime) \n"
     57      "  throw 'toLocaleTimeString results should have changed with system "
     58      "locale change';");
     59 
     60  JS_ResetDefaultLocale(rt);
     61  return true;
     62 }
     63 END_TEST(testDateToLocaleString)