summaryrefslogtreecommitdiffstats
path: root/toolkit/components/viewsource/test/browser/browser_partialsource.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/viewsource/test/browser/browser_partialsource.js')
-rw-r--r--toolkit/components/viewsource/test/browser/browser_partialsource.js46
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..d57a265b08
--- /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);
+ }
+});