tor-browser

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

test_isCJKName.js (2040B)


      1 /**
      2 * Tests the "isCJKName" function of FormAutofillNameUtils object.
      3 */
      4 
      5 "use strict";
      6 
      7 var FormAutofillNameUtils;
      8 add_setup(async () => {
      9  ({ FormAutofillNameUtils } = ChromeUtils.importESModule(
     10    "resource://gre/modules/shared/FormAutofillNameUtils.sys.mjs"
     11  ));
     12 });
     13 
     14 // Test cases is initially copied from
     15 // https://cs.chromium.org/chromium/src/components/autofill/core/browser/autofill_data_util_unittest.cc
     16 const TESTCASES = [
     17  {
     18    // Non-CJK language with only ASCII characters.
     19    fullName: "Homer Jay Simpson",
     20    expectedResult: false,
     21  },
     22  {
     23    // Non-CJK language with some ASCII characters.
     24    fullName: "Éloïse Paré",
     25    expectedResult: false,
     26  },
     27  {
     28    // Non-CJK language with no ASCII characters.
     29    fullName: "Σωκράτης",
     30    expectedResult: false,
     31  },
     32  {
     33    // (Simplified) Chinese name, Unihan.
     34    fullName: "刘翔",
     35    expectedResult: true,
     36  },
     37  {
     38    // (Simplified) Chinese name, Unihan, with an ASCII space.
     39    fullName: "成 龙",
     40    expectedResult: true,
     41  },
     42  {
     43    // Korean name, Hangul.
     44    fullName: "송지효",
     45    expectedResult: true,
     46  },
     47  {
     48    // Korean name, Hangul, with an 'IDEOGRAPHIC SPACE' (U+3000).
     49    fullName: "김 종국",
     50    expectedResult: true,
     51  },
     52  {
     53    // Japanese name, Unihan.
     54    fullName: "山田貴洋",
     55    expectedResult: true,
     56  },
     57  {
     58    // Japanese name, Katakana, with a 'KATAKANA MIDDLE DOT' (U+30FB).
     59    fullName: "ビル・ゲイツ",
     60    expectedResult: true,
     61  },
     62  {
     63    // Japanese name, Katakana, with a 'MIDDLE DOT' (U+00B7) (likely a typo).
     64    fullName: "ビル·ゲイツ",
     65    expectedResult: true,
     66  },
     67  {
     68    // CJK names don't have a middle name, so a 3-part name is bogus to us.
     69    fullName: "반 기 문",
     70    expectedResult: false,
     71  },
     72 ];
     73 
     74 add_task(async function test_isCJKName() {
     75  TESTCASES.forEach(testcase => {
     76    info("Starting testcase: " + testcase.fullName);
     77    let result = FormAutofillNameUtils._isCJKName(testcase.fullName);
     78    Assert.equal(result, testcase.expectedResult);
     79  });
     80 });