michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: "use strict"; michael@0: michael@0: const URL = ROOT + "browser_485482_sample.html"; michael@0: michael@0: /** michael@0: * Bug 485482 - Make sure that we produce valid XPath expressions even for very michael@0: * weird HTML documents. michael@0: */ michael@0: add_task(function test_xpath_exp_for_strange_documents() { michael@0: // Load a page with weird tag names. michael@0: let tab = gBrowser.addTab(URL); michael@0: let browser = tab.linkedBrowser; michael@0: yield promiseBrowserLoaded(browser); michael@0: michael@0: // Fill in some values. michael@0: let uniqueValue = Math.random(); michael@0: yield setInputValue(browser, {selector: "input[type=text]", value: uniqueValue}); michael@0: yield setInputChecked(browser, {selector: "input[type=checkbox]", checked: true}); michael@0: michael@0: // Duplicate the tab. michael@0: let tab2 = gBrowser.duplicateTab(tab); michael@0: let browser2 = tab2.linkedBrowser; michael@0: yield promiseTabRestored(tab2); michael@0: michael@0: // Check that we generated valid XPath expressions to restore form values. michael@0: let text = yield getInputValue(browser2, {selector: "input[type=text]"}); michael@0: is(text, uniqueValue, "generated XPath expression was valid"); michael@0: let checkbox = yield getInputChecked(browser2, {selector: "input[type=checkbox]"}); michael@0: ok(checkbox, "generated XPath expression was valid"); michael@0: michael@0: // Cleanup. michael@0: gBrowser.removeTab(tab2); michael@0: gBrowser.removeTab(tab); michael@0: });