dom/workers/test/test_bug883784.jsm

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/workers/test/test_bug883784.jsm	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,35 @@
     1.4 +this.EXPORTED_SYMBOLS = ["Test"];
     1.5 +
     1.6 +this.Test = {
     1.7 +  start: function(ok, is, finish) {
     1.8 +    let worker = new ChromeWorker("jsm_url_worker.js");
     1.9 +    worker.onmessage = function(event) {
    1.10 +
    1.11 +      if (event.data.type == 'finish') {
    1.12 +        finish();
    1.13 +      } else if (event.data.type == 'status') {
    1.14 +        ok(event.data.status, event.data.msg);
    1.15 +      } else if (event.data.type == 'url') {
    1.16 +        var xhr = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
    1.17 +                  .createInstance(Components.interfaces.nsIXMLHttpRequest);
    1.18 +        xhr.open('GET', event.data.url, false);
    1.19 +        xhr.onreadystatechange = function() {
    1.20 +          if (xhr.readyState == 4) {
    1.21 +            ok(true, "Blob readable!");
    1.22 +          }
    1.23 +        }
    1.24 +        xhr.send();
    1.25 +      }
    1.26 +    };
    1.27 +
    1.28 +    var self = this;
    1.29 +    worker.onerror = function(event) {
    1.30 +      is(event.target, worker);
    1.31 +      ok(false, "Worker had an error: " + event.data);
    1.32 +      self.worker.terminate();
    1.33 +      finish();
    1.34 +    };
    1.35 +
    1.36 +    worker.postMessage(0);
    1.37 +  }
    1.38 +};

mercurial