From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../formautofill/test/unit/test_isCJKName.js | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 browser/extensions/formautofill/test/unit/test_isCJKName.js (limited to 'browser/extensions/formautofill/test/unit/test_isCJKName.js') diff --git a/browser/extensions/formautofill/test/unit/test_isCJKName.js b/browser/extensions/formautofill/test/unit/test_isCJKName.js new file mode 100644 index 0000000000..f0e50b60f9 --- /dev/null +++ b/browser/extensions/formautofill/test/unit/test_isCJKName.js @@ -0,0 +1,80 @@ +/** + * Tests the "isCJKName" function of FormAutofillNameUtils object. + */ + +"use strict"; + +var FormAutofillNameUtils; +add_setup(async () => { + ({ FormAutofillNameUtils } = ChromeUtils.importESModule( + "resource://gre/modules/shared/FormAutofillNameUtils.sys.mjs" + )); +}); + +// Test cases is initially copied from +// https://cs.chromium.org/chromium/src/components/autofill/core/browser/autofill_data_util_unittest.cc +const TESTCASES = [ + { + // Non-CJK language with only ASCII characters. + fullName: "Homer Jay Simpson", + expectedResult: false, + }, + { + // Non-CJK language with some ASCII characters. + fullName: "Éloïse Paré", + expectedResult: false, + }, + { + // Non-CJK language with no ASCII characters. + fullName: "Σωκράτης", + expectedResult: false, + }, + { + // (Simplified) Chinese name, Unihan. + fullName: "刘翔", + expectedResult: true, + }, + { + // (Simplified) Chinese name, Unihan, with an ASCII space. + fullName: "成 龙", + expectedResult: true, + }, + { + // Korean name, Hangul. + fullName: "송지효", + expectedResult: true, + }, + { + // Korean name, Hangul, with an 'IDEOGRAPHIC SPACE' (U+3000). + fullName: "김 종국", + expectedResult: true, + }, + { + // Japanese name, Unihan. + fullName: "山田貴洋", + expectedResult: true, + }, + { + // Japanese name, Katakana, with a 'KATAKANA MIDDLE DOT' (U+30FB). + fullName: "ビル・ゲイツ", + expectedResult: true, + }, + { + // Japanese name, Katakana, with a 'MIDDLE DOT' (U+00B7) (likely a typo). + fullName: "ビル·ゲイツ", + expectedResult: true, + }, + { + // CJK names don't have a middle name, so a 3-part name is bogus to us. + fullName: "반 기 문", + expectedResult: false, + }, +]; + +add_task(async function test_isCJKName() { + TESTCASES.forEach(testcase => { + info("Starting testcase: " + testcase.fullName); + let result = FormAutofillNameUtils._isCJKName(testcase.fullName); + Assert.equal(result, testcase.expectedResult); + }); +}); -- cgit v1.2.3