summaryrefslogtreecommitdiffstats
path: root/parser/htmlparser/tests/mochitest/browser_elementindtd.js
diff options
context:
space:
mode:
Diffstat (limited to 'parser/htmlparser/tests/mochitest/browser_elementindtd.js')
-rw-r--r--parser/htmlparser/tests/mochitest/browser_elementindtd.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/parser/htmlparser/tests/mochitest/browser_elementindtd.js b/parser/htmlparser/tests/mochitest/browser_elementindtd.js
new file mode 100644
index 0000000000..bc146ba73e
--- /dev/null
+++ b/parser/htmlparser/tests/mochitest/browser_elementindtd.js
@@ -0,0 +1,31 @@
+/* Any copyright is dedicated to the Public Domain.
+ * https://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/*
+ * Test for bug 1539759
+ * Loads a chrome XML document that has an exteernal DTD file with an entity
+ * that contains an element, and verifies that that element was not inserted
+ * into the document (but its content was).
+ */
+
+add_task(async function test() {
+ await BrowserTestUtils.withNewTab(
+ getRootDirectory(gTestPath) + "browser_elementindtd.xml",
+ async function (newBrowser) {
+ // NB: We load the chrome:// page in the parent process.
+ testNoElementFromEntity(newBrowser);
+ }
+ );
+});
+
+function testNoElementFromEntity(newBrowser) {
+ let doc = newBrowser.contentDocument;
+ is(doc.body.textContent, "From dtd", "Should load DTD.");
+ is(
+ doc.body.firstElementChild,
+ null,
+ "Shouldn't have an element inserted from the DTD"
+ );
+}