content/base/test/chrome/test_bug800386.xul

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 <?xml version="1.0"?>
michael@0 2 <?xml-stylesheet type="text/css" href="chrome://global/skin"?>
michael@0 3 <?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
michael@0 4 <!--
michael@0 5 https://bugzilla.mozilla.org/show_bug.cgi?id=800386
michael@0 6 -->
michael@0 7 <window title="Mozilla Bug 800386"
michael@0 8 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
michael@0 9 <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
michael@0 10
michael@0 11 <!-- test results are displayed in the html:body -->
michael@0 12 <body xmlns="http://www.w3.org/1999/xhtml">
michael@0 13 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=800386"
michael@0 14 target="_blank">Mozilla Bug 800386</a>
michael@0 15 </body>
michael@0 16
michael@0 17 <!-- test code goes here -->
michael@0 18 <script type="application/javascript">
michael@0 19 <![CDATA[
michael@0 20 /** Test for Bug 800386 **/
michael@0 21 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
michael@0 22
michael@0 23 SimpleTest.waitForExplicitFinish();
michael@0 24
michael@0 25 var triedForwarding = false;
michael@0 26 var forwardFailed = false;
michael@0 27
michael@0 28 var xhr = new XMLHttpRequest;
michael@0 29 var eventSink = xhr.getInterface(Components.interfaces.nsIProgressEventSink);
michael@0 30 isnot(eventSink, null, "Should get event sink directly!");
michael@0 31
michael@0 32 // Now jump through some hoops to get us a getInterface call from C++
michael@0 33
michael@0 34 var requestor = {
michael@0 35 getInterface: function(aIID) {
michael@0 36 if (aIID.equals(Components.interfaces.nsIProgressEventSink)) {
michael@0 37 triedForwarding = true;
michael@0 38 try {
michael@0 39 return xhr.getInterface(aIID);
michael@0 40 } catch (e) {
michael@0 41 forwardFailed = true;
michael@0 42 }
michael@0 43 }
michael@0 44 throw Components.results.NS_ERROR_NO_INTERFACE;
michael@0 45 },
michael@0 46
michael@0 47 QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsISupports,
michael@0 48 Components.interfaces.nsIInterfaceRequestor])
michael@0 49 };
michael@0 50
michael@0 51 // HTTP URI so that we get progress callbacks
michael@0 52 xhr.open("GET", "http://mochi.test:8888/", false);
michael@0 53 xhr.channel.notificationCallbacks = requestor;
michael@0 54 xhr.onreadystatechange = function() {
michael@0 55 if (xhr.readyState == 4) {
michael@0 56 ok(triedForwarding,
michael@0 57 "Should have had an attempt to treat us as a progress event sink");
michael@0 58 ok(!forwardFailed,
michael@0 59 "Should have been able to forward getInterface on to the XHR");
michael@0 60 SimpleTest.finish();
michael@0 61 }
michael@0 62 }
michael@0 63 xhr.send();
michael@0 64 ]]>
michael@0 65 </script>
michael@0 66 </window>

mercurial