repo: janusweb
action: commit
revision: 
path_from: 
revision_from: a5486b0b3bb3076d2c1fb073441bf6b7beaf35a4:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit a5486b0b3bb3076d2c1fb073441bf6b7beaf35a4
Author: James Baicoianu 
Date:   Thu Jan 5 18:30:07 2017 -0800

    Updated existing tests, added room tests

diff --git a/tests/assets/images.test.js b/tests/assets/images.test.js
index bd6ce64cddb0f0ce37149c3dc0ea2c9818f361a0..
index ..cd1dfe5776c4fc1d071ccd5e1ec7c31e5ae301f8 100644
--- a/tests/assets/images.test.js
+++ b/tests/assets/images.test.js
@@ -88,6 +88,7 @@ describe("Elation Engine Assets", function() {
       done();
     });
   });
+/*
   it("should load an image that's not specified in assets list", function(done) {
     loadAsset('image', 'http://meobets.com:9876/base/build/media/assets/translator/errors/static.gif').then(function(asset) {
       expect(asset).toBeDefined();
@@ -102,4 +103,5 @@ describe("Elation Engine Assets", function() {
       done();
     });
   });
+*/
 });
diff --git a/tests/assets/models.test.js b/tests/assets/models.test.js
index d5606271b54780dd01cdf2f67b388a4911c5076c..
index ..f30a79cad12d1933f5daecb27c82c92c9d3c97fc 100644
--- a/tests/assets/models.test.js
+++ b/tests/assets/models.test.js
@@ -114,7 +114,7 @@ console.log('now test models');
     it('fired all expected events', function(done) {
       expect(eventlog.asset_load_queued.length).toBe(1);
       expect(eventlog.asset_load_start.length).toBe(1);
-      expect(eventlog.asset_load_progress.length).toBe(1);
+      expect(eventlog.asset_load_progress.length).toBeGreaterThan(0);
       expect(eventlog.asset_load_processing.length).toBe(1);
       expect(eventlog.asset_load_processed.length).toBe(1);
       expect(eventlog.asset_load_complete.length).toBe(1);
diff --git a/tests/janusweb.test.js b/tests/janusweb.test.js
index 03587f2aaa88f3eb2e98a28dbbd8996b4dee66da..
index ..9d7f21a0084a99c159e53d789305c2860a13a4d8 100644
--- a/tests/janusweb.test.js
+++ b/tests/janusweb.test.js
@@ -1,9 +1,7 @@
-/*
 describe("JanusWeb Init", function() {
   jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
   var client, janusweb, canvas;
   var resolution = '800x600';
-  var browser = 'chrome'; // FIXME - don't hardcode this

   beforeEach(function(done) {
     jasmine.addMatchers(imagediff.jasmine);
@@ -12,7 +10,13 @@ describe("JanusWeb Init", function() {

   it("should initialize client", function(done) {
     try {
-      elation.janusweb.init({homepage: 'http://www.janusvr.com/index.html', resolution: resolution}).then(function(newclient) { 
+      elation.janusweb.init({
+        homepage: 'http://www.janusvr.com/index.html', 
+        resolution: resolution,
+        autoload: false,
+        showchat: false,
+        networking: false
+      }).then(function(newclient) { 
         client = newclient;
         janusweb = client.janusweb;
         expect(client).toBeDefined();
@@ -23,7 +27,6 @@ describe("JanusWeb Init", function() {
       console.log('exception happened!', e.stack);
     }
   });
-
   it("added canvas to document", function(done) {
     var canvases = document.getElementsByTagName('canvas');
     expect(canvases.length).toEqual(1);
@@ -31,71 +34,11 @@ describe("JanusWeb Init", function() {
     done();
   });

-  var roomnames = Object.keys(rooms);
-  for (var i = 0; i < roomnames.length; i++) {
-    var roomname = roomnames[i];
-
-    function testRoom(roomname) {
-      var room = rooms[roomname];
-      it("should load a room: " + roomname, function(done) {
-        expect(janusweb).toBeDefined();
-        expect(roomname).toBeDefined();
-        expect(room).toBeDefined();
-        expect(room.url).toBeDefined();
-
-        var handleRoomChange = function(ev) {
-          elation.events.remove(janusweb, 'room_change', handleRoomChange);
-          expect(janusweb.currentroom).toBeDefined();
-
-          setTimeout(function() {
-            expect(canvas).toBeDefined();
-            var shotname = ['janusweb', roomname, browser, resolution].join('-') + '.png';
-            var shot = canvas.toDataURL('image/png');
-
-            elation.net.post('https://api.imgur.com/3/upload.json', 
-              {
-                type: 'base64',
-                name: shotname,
-                title: 'Test Screenshot - ' + roomname,
-                image: shot.split(',')[1]
-              }, 
-              {
-                headers: {
-                  Authorization: 'Client-ID 3c6bb1075f20701'
-                },
-                callback: function(data) {
-                  var json = JSON.parse(data);
-                  console.log('UPLOAD SUCCESS', roomname, shotname, json.data.link);
-                }
-              }
-            );
-
-            var newimg = new Image();
-            newimg.src = shot;
-            newimg.crossOrigin = '';
-            
-            var img = new Image();
-            img.crossOrigin = '';
-            img.src = "https://raw.githubusercontent.com/jbaicoianu/janusweb/screenshots/" + shotname;
-            img.addEventListener('load', function() {
-              var diff = imagediff.equal(newimg, img, 98);
-              expect(diff).toBe(true);
-              setTimeout( done, 1000);
-            });
-          }, 10000);
-        };
-        elation.events.add(janusweb, 'room_change', handleRoomChange);
-        janusweb.setActiveRoom(room.url);
-      });
-    } 
-    testRoom(roomname);
-  }
   it("should stop when done", function(done) {
     elation.events.add(client.engine, 'engine_stop', function() {
-      expect(client.running).toBe(false);
+      expect(client.engine.running).toBe(false);
       done();
     });
     client.engine.stop();
   });
 });
-*/
diff --git a/tests/karma.conf.js b/tests/karma.conf.js
index cbfbe96016a39eb13f3f378e936484fdbd0c94db..
index ..56a7524ad200a3dc0b946af104d8cd9061b59893 100644
--- a/tests/karma.conf.js
+++ b/tests/karma.conf.js
@@ -22,8 +22,9 @@ module.exports = function(config) {
       {pattern: 'build/media/**', watched: false, included: false, served: true},
       'tests/imagediff.js',
       //{pattern: 'tests/*.test.js', watched: true, included: true, served: true},
-      //{pattern: 'tests/assets/*.test.js', watched: true, included: true, served: true},
-      {pattern: 'tests/assets/models.test.js', watched: true, included: true, served: true},
+      {pattern: 'tests/assets/*.test.js', watched: true, included: true, served: true},
+      {pattern: 'tests/janusweb.test.js', watched: true, included: true, served: true},
+      {pattern: 'tests/room.test.js', watched: true, included: true, served: true},
     ],


diff --git a/tests/room.test.js b/tests/room.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..3100e80e784f010fb37f5f4fcd4e3238d5c559b2
--- /dev/null
+++ b/tests/room.test.js
@@ -0,0 +1,75 @@
+describe("JanusWeb Init", function() {
+  jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
+  var client, janusweb, canvas;
+  var resolution = '800x600';
+  var browser = 'chrome'; // FIXME - don't hardcode this
+
+  beforeEach(function(done) {
+    jasmine.addMatchers(imagediff.jasmine);
+    done();
+  });
+
+  it("should initialize client", function(done) {
+    try {
+      elation.janusweb.init({
+        homepage: 'http://www.janusvr.com/index.html', 
+        resolution: resolution,
+        autoload: false,
+        showchat: false,
+        networking: false
+      }).then(function(newclient) { 
+        client = newclient;
+        janusweb = client.janusweb;
+        expect(client).toBeDefined();
+        expect(janusweb).toBeDefined();
+        done();
+      });
+    } catch (e) {
+      console.log('exception happened!', e.stack);
+    }
+  });
+  it("added canvas to document", function(done) {
+    var canvases = document.getElementsByTagName('canvas');
+    expect(canvases.length).toEqual(1);
+    canvas = canvases[0];
+    done();
+  });
+
+  // Load a room.  It should fire events in tis order:
+  // - room_load_queued
+  // - room_load_start
+  // - room_load_progress
+  // - room_load_processing
+  // - room_load_processed
+  // - room_load_complete
+  it("should load a room", function(done) {
+    try {
+      var room = janusweb.load('http://assets.metacade.com/gearvr-landing', true);
+      var eventlog = {};
+      elation.events.add(room, 'room_load_queued,room_load_start,room_load_progress,room_load_processing,room_load_processed,room_load_complete', function(ev) {
+        console.log('got event:', ev.type);
+        if (!eventlog[ev.type]) eventlog[ev.type] = [];
+        eventlog[ev.type].push(ev);
+      });
+      elation.events.add(room, 'room_load_complete', function() {
+        console.log('room load complete');
+        //expect(eventlog.room_load_queued.length).toBe(1);
+        expect(eventlog.room_load_start.length).toBe(1);
+        expect(eventlog.room_load_progress.length).toBeGreaterThan(0);
+        expect(eventlog.room_load_processing.length).toBe(1);
+        expect(eventlog.room_load_processed.length).toBe(1);
+        expect(eventlog.room_load_complete.length).toBe(1);
+        done();
+      });
+    } catch (e) {
+      console.log('exception happened!', e.stack);
+    }
+  });
+  it("should stop when done", function(done) {
+    elation.events.add(client.engine, 'engine_stop', function() {
+      expect(client.engine.running).toBe(false);
+      done();
+    });
+    client.engine.stop();
+  });
+});
diff --git a/tests/screenshots.test.js b/tests/screenshots.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..03587f2aaa88f3eb2e98a28dbbd8996b4dee66da
--- /dev/null
+++ b/tests/screenshots.test.js
@@ -0,0 +1,101 @@
+/*
+describe("JanusWeb Init", function() {
+  jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
+  var client, janusweb, canvas;
+  var resolution = '800x600';
+  var browser = 'chrome'; // FIXME - don't hardcode this
+
+  beforeEach(function(done) {
+    jasmine.addMatchers(imagediff.jasmine);
+    done();
+  });
+
+  it("should initialize client", function(done) {
+    try {
+      elation.janusweb.init({homepage: 'http://www.janusvr.com/index.html', resolution: resolution}).then(function(newclient) { 
+        client = newclient;
+        janusweb = client.janusweb;
+        expect(client).toBeDefined();
+        expect(janusweb).toBeDefined();
+        done();
+      });
+    } catch (e) {
+      console.log('exception happened!', e.stack);
+    }
+  });
+
+  it("added canvas to document", function(done) {
+    var canvases = document.getElementsByTagName('canvas');
+    expect(canvases.length).toEqual(1);
+    canvas = canvases[0];
+    done();
+  });
+
+  var roomnames = Object.keys(rooms);
+  for (var i = 0; i < roomnames.length; i++) {
+    var roomname = roomnames[i];
+
+    function testRoom(roomname) {
+      var room = rooms[roomname];
+      it("should load a room: " + roomname, function(done) {
+        expect(janusweb).toBeDefined();
+        expect(roomname).toBeDefined();
+        expect(room).toBeDefined();
+        expect(room.url).toBeDefined();
+
+        var handleRoomChange = function(ev) {
+          elation.events.remove(janusweb, 'room_change', handleRoomChange);
+          expect(janusweb.currentroom).toBeDefined();
+
+          setTimeout(function() {
+            expect(canvas).toBeDefined();
+            var shotname = ['janusweb', roomname, browser, resolution].join('-') + '.png';
+            var shot = canvas.toDataURL('image/png');
+
+            elation.net.post('https://api.imgur.com/3/upload.json', 
+              {
+                type: 'base64',
+                name: shotname,
+                title: 'Test Screenshot - ' + roomname,
+                image: shot.split(',')[1]
+              }, 
+              {
+                headers: {
+                  Authorization: 'Client-ID 3c6bb1075f20701'
+                },
+                callback: function(data) {
+                  var json = JSON.parse(data);
+                  console.log('UPLOAD SUCCESS', roomname, shotname, json.data.link);
+                }
+              }
+            );
+
+            var newimg = new Image();
+            newimg.src = shot;
+            newimg.crossOrigin = '';
+            
+            var img = new Image();
+            img.crossOrigin = '';
+            img.src = "https://raw.githubusercontent.com/jbaicoianu/janusweb/screenshots/" + shotname;
+            img.addEventListener('load', function() {
+              var diff = imagediff.equal(newimg, img, 98);
+              expect(diff).toBe(true);
+              setTimeout( done, 1000);
+            });
+          }, 10000);
+        };
+        elation.events.add(janusweb, 'room_change', handleRoomChange);
+        janusweb.setActiveRoom(room.url);
+      });
+    } 
+    testRoom(roomname);
+  }
+  it("should stop when done", function(done) {
+    elation.events.add(client.engine, 'engine_stop', function() {
+      expect(client.running).toBe(false);
+      done();
+    });
+    client.engine.stop();
+  });
+});
+*/

-----END OF PAGE-----