repo: janusweb action: commit revision: path_from: revision_from: a5486b0b3bb3076d2c1fb073441bf6b7beaf35a4: path_to: revision_to:
commit a5486b0b3bb3076d2c1fb073441bf6b7beaf35a4 Author: James BaicoianuDate: 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
--- 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
--- 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
--- 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
--- 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-----