diff options
Diffstat (limited to 'toolkit/components/viewsource/test/browser/browser_partialsource.js')
-rw-r--r-- | toolkit/components/viewsource/test/browser/browser_partialsource.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/toolkit/components/viewsource/test/browser/browser_partialsource.js b/toolkit/components/viewsource/test/browser/browser_partialsource.js new file mode 100644 index 0000000000..5efdc1c1cc --- /dev/null +++ b/toolkit/components/viewsource/test/browser/browser_partialsource.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +const frameSource = + "<a href='about:mozilla'>some text</a><a id='other' href='about:about'>other text</a>"; +const sources = [ + `<html><iframe id="f" srcdoc="${frameSource}"></iframe></html>`, + `<html><iframe id="f" src="https://example.com/document-builder.sjs?html=${frameSource}"></iframe></html>`, +]; + +add_task(async function partial_source() { + for (let source of sources) { + let tab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + "data:text/html," + source + ); + + let frameBC = gBrowser.selectedBrowser.browsingContext.children[0]; + + await SpecialPowers.spawn(frameBC, [], () => { + let element = content.document.getElementById("other"); + content.focus(); + content.getSelection().selectAllChildren(element); + }); + + let sourceTab = await openViewPartialSource("#other", frameBC); + + let browser = gBrowser.selectedBrowser; + let textContent = await SpecialPowers.spawn(browser, [], async function() { + return content.document.body.textContent; + }); + is( + textContent, + '<a id="other" href="about:about">other text</a>', + "Correct content loaded" + ); + let selection = await SpecialPowers.spawn(browser, [], async function() { + return String(content.getSelection()); + }); + is(selection, "other text", "Correct text selected"); + + gBrowser.removeTab(sourceTab); + gBrowser.removeTab(tab); + } +}); |