michael@0: function run_test() { michael@0: do_test_pending(); michael@0: michael@0: function StreamListener() {} michael@0: michael@0: StreamListener.prototype = { michael@0: QueryInterface: function(aIID) { michael@0: if (aIID.equals(Components.interfaces.nsIStreamListener) || michael@0: aIID.equals(Components.interfaces.nsIRequestObserver) || michael@0: aIID.equals(Components.interfaces.nsISupports)) michael@0: return this; michael@0: throw Components.results.NS_NOINTERFACE; michael@0: }, michael@0: michael@0: onStartRequest: function(aRequest, aContext) {}, michael@0: michael@0: onStopRequest: function(aRequest, aContext, aStatusCode) { michael@0: // Make sure we can catch the error NS_ERROR_FILE_NOT_FOUND here. michael@0: do_check_eq(aStatusCode, Components.results.NS_ERROR_FILE_NOT_FOUND); michael@0: do_test_finished(); michael@0: }, michael@0: michael@0: onDataAvailable: function(aRequest, aContext, aStream, aOffset, aCount) { michael@0: do_throw("The channel must not call onDataAvailable()."); michael@0: } michael@0: }; michael@0: michael@0: let listener = new StreamListener(); michael@0: let ios = Components.classes["@mozilla.org/network/io-service;1"] michael@0: .getService(Components.interfaces.nsIIOService); michael@0: michael@0: // This file does not exist. michael@0: let file = do_get_file("_NOT_EXIST_.txt", true); michael@0: do_check_false(file.exists()); michael@0: michael@0: let channel = ios.newChannelFromURI(ios.newFileURI(file)); michael@0: channel.asyncOpen(listener, null); michael@0: }