summaryrefslogtreecommitdiffstats
path: root/dom/plugins/test/mochitest/pluginstream.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/plugins/test/mochitest/pluginstream.js')
-rw-r--r--dom/plugins/test/mochitest/pluginstream.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/pluginstream.js b/dom/plugins/test/mochitest/pluginstream.js
new file mode 100644
index 0000000000..c4ab769d51
--- /dev/null
+++ b/dom/plugins/test/mochitest/pluginstream.js
@@ -0,0 +1,46 @@
+SimpleTest.waitForExplicitFinish();
+
+function frameLoaded(finishWhenCalled = true, lastObject = false) {
+ var testframe = document.getElementById("testframe");
+ function getNode(list) {
+ if (list.length === 0) {
+ return undefined;
+ }
+ return lastObject ? list[list.length - 1] : list[0];
+ }
+ var embed = getNode(document.getElementsByTagName("embed"));
+ if (undefined === embed) {
+ embed = getNode(document.getElementsByTagName("object"));
+ }
+
+ // In the file:// URI case, this ends up being cross-origin.
+ // Skip these checks in that case.
+ if (testframe.contentDocument) {
+ var content = testframe.contentDocument.body.innerHTML;
+ if (!content.length) {
+ return;
+ }
+
+ var filename =
+ embed.getAttribute("src") ||
+ embed.getAttribute("geturl") ||
+ embed.getAttribute("geturlnotify") ||
+ embed.getAttribute("data");
+
+ var req = new XMLHttpRequest();
+ req.open("GET", filename, false);
+ req.overrideMimeType("text/plain; charset=x-user-defined");
+ req.send(null);
+ is(req.status, 200, "bad XMLHttpRequest status");
+ is(
+ content,
+ req.responseText.replace(/\r\n/g, "\n"),
+ "content doesn't match"
+ );
+ }
+
+ is(embed.getError(), "pass", "plugin reported error");
+ if (finishWhenCalled) {
+ SimpleTest.finish();
+ }
+}