netwerk/test/unit/test_bug376660.js

changeset 0
6474c204b198
     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 +}

mercurial