Home | History | Annotate | Download | only in gl-matrix
      1 /* spec tests gl-matrix when embedded into a Web Worker */
      2 
      3 // only test with workers if workers are available
      4 if (typeof(Worker) !== 'undefined') {
      5   describe("Embedded within Web Workers", function() {
      6     it("should initialize successfully", function() {
      7       var xhr = new XMLHttpRequest();
      8       var source = null;
      9       xhr.onreadystatechange = function() {
     10         if (this.readyState == this.DONE) {
     11           if (this.status == 200) {
     12             source = this.responseText;
     13           }
     14         }
     15       };
     16       xhr.open("GET", "/dist/gl-matrix-min.js");
     17       xhr.send();
     18 
     19       var result = null;
     20 
     21       waitsFor(function() {
     22         if (!source) return false;
     23         var blob = new Blob([
     24             source,
     25             "self.postMessage(vec3.create());"
     26           ],
     27           {type: "application/javascript"}
     28         );
     29 
     30         var worker = new Worker(URL.createObjectURL(blob));
     31         worker.onmessage = function(e) {
     32           result = e.data;
     33         };
     34         return true;
     35       });
     36 
     37       waitsFor(function() {
     38         if (!result) return false;
     39         expect(result).toBeEqualish([0, 0, 0]);
     40         return true;
     41       });
     42     });
     43   });
     44 }
     45