1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/unit/test_bug376660.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,68 @@ 1.4 +var Cc = Components.classes; 1.5 +var Ci = Components.interfaces; 1.6 + 1.7 +var listener = { 1.8 + expect_failure: false, 1.9 + QueryInterface: function listener_qi(iid) { 1.10 + if (iid.equals(Ci.nsISupports) || 1.11 + iid.equals(Ci.nsIUnicharStreamLoaderObserver)) { 1.12 + return this; 1.13 + } 1.14 + throw Components.results.NS_ERROR_NO_INTERFACE; 1.15 + }, 1.16 + onDetermineCharset : function onDetermineCharset(loader, context, data) 1.17 + { 1.18 + return "us-ascii"; 1.19 + }, 1.20 + onStreamComplete : function onStreamComplete (loader, context, status, data) 1.21 + { 1.22 + try { 1.23 + if (this.expect_failure) 1.24 + do_check_false(Components.isSuccessCode(status)); 1.25 + else 1.26 + do_check_eq(status, Components.results.NS_OK); 1.27 + do_check_eq(data, ""); 1.28 + do_check_neq(loader.channel, null); 1.29 + tests[current_test++](); 1.30 + } finally { 1.31 + do_test_finished(); 1.32 + } 1.33 + } 1.34 +}; 1.35 + 1.36 +var current_test = 0; 1.37 +var tests = [test1, test2, done]; 1.38 + 1.39 +function run_test() { 1.40 + tests[current_test++](); 1.41 +} 1.42 + 1.43 +function test1() { 1.44 + var f = 1.45 + Cc["@mozilla.org/network/unichar-stream-loader;1"]. 1.46 + createInstance(Ci.nsIUnicharStreamLoader); 1.47 + f.init(listener); 1.48 + 1.49 + var ios = Components.classes["@mozilla.org/network/io-service;1"] 1.50 + .getService(Components.interfaces.nsIIOService); 1.51 + var chan = ios.newChannel("data:text/plain,", null, null); 1.52 + chan.asyncOpen(f, null); 1.53 + do_test_pending(); 1.54 +} 1.55 + 1.56 +function test2() { 1.57 + var f = 1.58 + Cc["@mozilla.org/network/unichar-stream-loader;1"]. 1.59 + createInstance(Ci.nsIUnicharStreamLoader); 1.60 + f.init(listener); 1.61 + 1.62 + var ios = Components.classes["@mozilla.org/network/io-service;1"] 1.63 + .getService(Components.interfaces.nsIIOService); 1.64 + var chan = ios.newChannel("http://localhost:0/", null, null); 1.65 + listener.expect_failure = true; 1.66 + chan.asyncOpen(f, null); 1.67 + do_test_pending(); 1.68 +} 1.69 + 1.70 +function done() { 1.71 +}