-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: janusweb
action: commit
revision:
path_from:
revision_from: faa29d397a1c9743bf0c6aecd5cf8c492125d9eb:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit faa29d397a1c9743bf0c6aecd5cf8c492125d9eb
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Thu Dec 22 03:21:03 2016 -0800

    Added model loading tests

diff --git a/tests/assets/models.test.js b/tests/assets/models.test.js

index a6f13780a2675b352d85dd8d1a60e55923a0331e..

index ..d5606271b54780dd01cdf2f67b388a4911c5076c 100644

--- a/tests/assets/models.test.js
+++ b/tests/assets/models.test.js
@@ -1,27 +1,36 @@
 describe("Elation Engine Assets", function() {
   jasmine.DEFAULT_TIMEOUT_INTERVAL = 30000;
-  elation.config.set('dependencies.rootdir', '/base/build/');
+console.log('now test models');
+  elation.config.set('dependencies.path', document.origin);
+  elation.config.set('dependencies.rootdir', 'base/build/');
   elation.config.set('dependencies.main', 'janusweb.js');
   elation.engine.assets.loadJSON([
     { "assettype": "model", "name": "model_obj",                    "src": "media/assets/primitives/cube.obj" },
     { "assettype": "model", "name": "model_obj_mtl",                "src": "media/assets/translator/web/screensingle.obj", "mtl": "screensingle.mtl" },
-    { "assettype": "model", "name": "model_obj_textures",           "src": "http://vrsites.com/assets/Alt/2/index.obj", "mtl": "http://vrsites.com/assets/Alt/2/index.mtl" },
+    { "assettype": "model", "name": "model_obj_textures",           "src": "media/tests/models/monkey-material-smooth.obj", "mtl": "monkey-material-smooth.mtl" },
     { "assettype": "model", "name": "model_obj_textures_normalmap", "src": "", "mtl": "" },
-    { "assettype": "model", "name": "model_dae_gz", "src": "http://www.janusvr.com/newlobby/room/V1/V1.dae.gz" },
+    { "assettype": "model", "name": "model_dae_gz", "src": "https://janusweb.lnq.to:8089/www.janusvr.com/newlobby/room/V1/V1.dae.gz" },
   ], self.location.origin + "/base/build/");

   beforeEach(function(done) {
     done();
   });

-  function loadAsset(type, name) {
+  function loadAsset(type, name, eventlog) {
     var asset = elation.engine.assets.find(type, name, true);
+    elation.events.add(asset, 'asset_load_queued,asset_load_start,asset_load_progress,asset_load_processing,asset_load_processed,asset_load_complete', function(ev) {
+      if (!eventlog[ev.type]) {
+        eventlog[ev.type] = [];
+      }
+      eventlog[ev.type].push(ev);
+    });
+    if (!eventlog) eventlog = {};
     if (asset) {
       var tex = asset.getInstance();
     }
     return new Promise(function(succeed, fail) {
       if (!tex) fail(asset);
-      elation.events.add(asset, 'asset_load', function() {
+      elation.events.add(asset, 'asset_load_complete', function() {
         //console.log(type + ' loaded!', tex);
         succeed(asset);
       });
@@ -36,8 +45,9 @@ describe("Elation Engine Assets", function() {
       done();
     });
     var mesh;
+    var eventlog = {};
     it("should load an OBJ", function(done) {
-      loadAsset('model', 'model_obj').then(function(asset) {
+      loadAsset('model', 'model_obj', eventlog).then(function(asset) {
         expect(asset).toBeDefined();
         expect(asset.loaded).toBe(true);
         var group = asset.getInstance();
@@ -59,6 +69,13 @@ describe("Elation Engine Assets", function() {
       expect(mesh.geometry.attributes.uv.count).toBe(36);
       done();
     });
+    it('fired all expected events', function(done) {
+      expect(eventlog.asset_load_queued.length).toBe(1);
+      expect(eventlog.asset_load_processing.length).toBe(1);
+      expect(eventlog.asset_load_processed.length).toBe(1);
+      expect(eventlog.asset_load_complete.length).toBe(1);
+      done();
+    });
   });

   describe('OBJ+MTL', function() {
@@ -66,12 +83,13 @@ describe("Elation Engine Assets", function() {
       done();
     });
     var mesh;
+    var eventlog = {};
     it("should load an OBJ", function(done) {
-      loadAsset('model', 'model_obj_mtl').then(function(asset) {
+      loadAsset('model', 'model_obj_mtl', eventlog).then(function(asset) {
         expect(asset).toBeDefined();
         expect(asset.loaded).toBe(true);
         var group = asset.getInstance();
-        mesh = group.children[0].children[0].children[0].children[0]; // FIXME - why is this differemt from just OBJ?
+        mesh = group.children[0].children[0].children[0];
         expect(mesh).toBeDefined();
         done();
       }, function(asset) {
@@ -90,10 +108,16 @@ describe("Elation Engine Assets", function() {
       done();
     });
     it('has the right materials', function(done) {
-      expect(mesh.material.type).toBe('MultiMaterial');
-      expect(mesh.material.materials.length).toBe(2);
-      expect(mesh.material.materials[0].type).toBe('MeshLambertMaterial');
-      expect(mesh.material.materials[1].type).toBe('MeshPhongMaterial');
+      expect(mesh.material.type).toBe('MeshPhongMaterial');
+      done();
+    });
+    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_processing.length).toBe(1);
+      expect(eventlog.asset_load_processed.length).toBe(1);
+      expect(eventlog.asset_load_complete.length).toBe(1);
       done();
     });
   });
@@ -103,8 +127,9 @@ describe("Elation Engine Assets", function() {
       done();
     });
     var mesh;
+    var eventlog = {};
     it("should load an OBJ+MTL with textures", function(done) {
-      loadAsset('model', 'model_obj_textures').then(function(asset) {
+      loadAsset('model', 'model_obj_textures', eventlog).then(function(asset) {
         expect(asset).toBeDefined();
         expect(asset.loaded).toBe(true);
         var group = asset.getInstance();
@@ -120,31 +145,44 @@ describe("Elation Engine Assets", function() {
       expect(mesh.geometry.type).toBe('BufferGeometry');
       done();
     });
-    it('has 36 vertices', function(done) {
-      expect(mesh.geometry.attributes.position.count).toBe(36);
-      expect(mesh.geometry.attributes.normal.count).toBe(36);
-      expect(mesh.geometry.attributes.uv.count).toBe(36);
+    it('has 2904 vertices', function(done) {
+      expect(mesh.geometry.attributes.position.count).toBe(2904);
+      expect(mesh.geometry.attributes.normal.count).toBe(2904);
+      expect(mesh.geometry.attributes.uv.count).toBe(2904);
       done();
     });
     it('has the right materials', function(done) {
-      expect(mesh.material.type).toBe('MultiMaterial');
-      expect(mesh.material.materials.length).toBe(4);
-      expect(mesh.material.materials[0].type).toBe('MeshLambertMaterial');
-      expect(mesh.material.materials[1].type).toBe('MeshPhongMaterial');
-      expect(mesh.material.materials[2].type).toBe('MeshPhongMaterial');
-      expect(mesh.material.materials[3].type).toBe('MeshPhongMaterial');
+      expect(mesh.material.type).toBe('MeshPhongMaterial');
+
+      expect(mesh.material.map).toBeDefined();
+      expect(mesh.material.map.image).toBeDefined();
+console.log(mesh.material.map.image);
+      expect(mesh.material.bumpMap).toBeDefined();
+      expect(mesh.material.bumpMap.image).toBeDefined();
+     console.log(mesh);
+      done();
+    });
+    it('fired all expected events', function(done) {
+      expect(eventlog.asset_load_queued).toBeDefined();
+      expect(eventlog.asset_load_queued.length).toBe(1);
+      expect(eventlog.asset_load_processing).toBeDefined();
+      expect(eventlog.asset_load_processing.length).toBe(1);
+      expect(eventlog.asset_load_processed).toBeDefined();
+      expect(eventlog.asset_load_processed.length).toBe(1);
+      expect(eventlog.asset_load_complete).toBeDefined();
+      expect(eventlog.asset_load_complete.length).toBe(1);
       done();
     });
   });

-/*
   describe('DAE (gzipped)', function() {
     beforeEach(function(done) {
       done();
     });
     var mesh;
+    var eventlog = {};
     it("should load a gzipped DAE", function(done) {
-      loadAsset('model', 'model_dae_gz').then(function(asset) {
+      loadAsset('model', 'model_dae_gz', eventlog).then(function(asset) {
         expect(asset).toBeDefined();
         expect(asset.loaded).toBe(true);
         var group = asset.getInstance();
@@ -158,9 +196,10 @@ console.log('derrr', asset, group);
       });
     });
     it('is a buffergeometry', function(done) {
-      expect(mesh.geometry.type).toBe('BufferGeometry');
+      //expect(mesh.geometry.type).toBe('BufferGeometry');
       done();
     });
+/*
     it('has 132 vertices', function(done) {
       expect(mesh.geometry.attributes.position.count).toBe(132);
       expect(mesh.geometry.attributes.normal.count).toBe(132);
@@ -174,8 +213,15 @@ console.log('derrr', asset, group);
       expect(mesh.material.materials[1].type).toBe('MeshPhongMaterial');
       done();
     });
-  });
 */
+    it('fired all expected events', function(done) {
+      expect(eventlog.asset_load_queued.length).toBe(1);
+      expect(eventlog.asset_load_processing.length).toBe(1);
+      expect(eventlog.asset_load_processed.length).toBe(1);
+      expect(eventlog.asset_load_complete.length).toBe(1);
+      done();
+    });
+  });
 /*
   it("should load an OBJ with material+color", function(done) {
   });
diff --git a/tests/karma.conf.js b/tests/karma.conf.js

index e83e8860e6ec232a67e7db2f175babac942df63f..

index ..cbfbe96016a39eb13f3f378e936484fdbd0c94db 100644

--- a/tests/karma.conf.js
+++ b/tests/karma.conf.js
@@ -22,7 +22,8 @@ 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/*.test.js', watched: true, included: true, served: true},
+      {pattern: 'tests/assets/models.test.js', watched: true, included: true, served: true},
     ],


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

-- Response ended

-- Page fetched on Sun Jun 2 14:51:57 2024