diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /browser/extensions/formautofill/test/unit/test_extractLabelStrings.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/extensions/formautofill/test/unit/test_extractLabelStrings.js')
-rw-r--r-- | browser/extensions/formautofill/test/unit/test_extractLabelStrings.js | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/browser/extensions/formautofill/test/unit/test_extractLabelStrings.js b/browser/extensions/formautofill/test/unit/test_extractLabelStrings.js new file mode 100644 index 0000000000..e27d3afa36 --- /dev/null +++ b/browser/extensions/formautofill/test/unit/test_extractLabelStrings.js @@ -0,0 +1,80 @@ +"use strict"; + +var LabelUtils; +add_task(async function() { + ({ LabelUtils } = ChromeUtils.import( + "resource://autofill/FormAutofillUtils.jsm" + )); +}); + +const TESTCASES = [ + { + description: "A label element contains one input element.", + document: `<label id="typeA"> label type A + <!-- This comment should not be extracted. --> + <input type="text"> + <script>FOO</script> + <noscript>FOO</noscript> + <option>FOO</option> + <style>FOO</style> + </label>`, + inputId: "typeA", + expectedStrings: ["label type A"], + }, + { + description: "A label element with inner div contains one input element.", + document: `<label id="typeB"> label type B + <!-- This comment should not be extracted. --> + <script>FOO</script> + <noscript>FOO</noscript> + <option>FOO</option> + <style>FOO</style> + <div> inner div + <input type="text"> + </div> + </label>`, + inputId: "typeB", + expectedStrings: ["label type B", "inner div"], + }, + { + description: + "A label element with inner prefix/postfix strings contains span elements.", + document: `<label id="typeC"> label type C + <!-- This comment should not be extracted. --> + <script>FOO</script> + <noscript>FOO</noscript> + <option>FOO</option> + <style>FOO</style> + <div> inner div prefix + <span>test C-1 </span> + <span> test C-2</span> + inner div postfix + </div> + </label>`, + inputId: "typeC", + expectedStrings: [ + "label type C", + "inner div prefix", + "test C-1", + "test C-2", + "inner div postfix", + ], + }, +]; + +TESTCASES.forEach(testcase => { + add_task(async function() { + info("Starting testcase: " + testcase.description); + LabelUtils._labelStrings = new WeakMap(); + + let doc = MockDocument.createTestDocument( + "http://localhost:8080/test/", + testcase.document + ); + + let element = doc.getElementById(testcase.inputId); + let strings = LabelUtils.extractLabelStrings(element); + + Assert.deepEqual(strings, testcase.expectedStrings); + }); +}); |