browser_485482.js (1793B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 if (gFissionBrowser) { 7 addCoopTask( 8 "browser_485482_sample.html", 9 test_xpath_exp_for_strange_documents, 10 HTTPSROOT 11 ); 12 } 13 addNonCoopTask( 14 "browser_485482_sample.html", 15 test_xpath_exp_for_strange_documents, 16 ROOT 17 ); 18 addNonCoopTask( 19 "browser_485482_sample.html", 20 test_xpath_exp_for_strange_documents, 21 HTTPSROOT 22 ); 23 addNonCoopTask( 24 "browser_485482_sample.html", 25 test_xpath_exp_for_strange_documents, 26 HTTPROOT 27 ); 28 29 /** 30 * Bug 485482 - Make sure that we produce valid XPath expressions even for very 31 * weird HTML documents. 32 */ 33 async function test_xpath_exp_for_strange_documents(aURL) { 34 // Load a page with weird tag names. 35 let tab = BrowserTestUtils.addTab(gBrowser, aURL); 36 let browser = tab.linkedBrowser; 37 await promiseBrowserLoaded(browser); 38 39 // Fill in some values. 40 let uniqueValue = Math.random(); 41 await setPropertyOfFormField( 42 browser, 43 "input[type=text]", 44 "value", 45 uniqueValue 46 ); 47 await setPropertyOfFormField( 48 browser, 49 "input[type=checkbox]", 50 "checked", 51 true 52 ); 53 54 // Duplicate the tab. 55 let tab2 = gBrowser.duplicateTab(tab); 56 let browser2 = tab2.linkedBrowser; 57 await promiseTabRestored(tab2); 58 59 // Check that we generated valid XPath expressions to restore form values. 60 let text = await getPropertyOfFormField( 61 browser2, 62 "input[type=text]", 63 "value" 64 ); 65 is("" + text, "" + uniqueValue, "generated XPath expression was valid"); 66 let checkbox = await getPropertyOfFormField( 67 browser2, 68 "input[type=checkbox]", 69 "checked" 70 ); 71 ok(checkbox, "generated XPath expression was valid"); 72 73 // Cleanup. 74 gBrowser.removeTab(tab2); 75 gBrowser.removeTab(tab); 76 }