diff options
Diffstat (limited to 'dom/plugins/test/mochitest/pluginstream.js')
-rw-r--r-- | dom/plugins/test/mochitest/pluginstream.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/pluginstream.js b/dom/plugins/test/mochitest/pluginstream.js new file mode 100644 index 000000000..9c47cd5f8 --- /dev/null +++ b/dom/plugins/test/mochitest/pluginstream.js @@ -0,0 +1,39 @@ + 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(); + } + } |