obj2gltf/specs/lib/loadMtlSpec.js

50 lines
2.6 KiB
JavaScript
Raw Normal View History

2017-03-13 15:28:51 -04:00
'use strict';
var path = require('path');
2017-04-12 16:55:03 -04:00
var loadMtl = require('../../lib/loadMtl');
2017-05-04 17:58:13 -04:00
var obj2gltf = require('../../lib/obj2gltf');
2017-03-13 15:28:51 -04:00
var complexMaterialUrl = 'specs/data/box-complex-material/box-complex-material.mtl';
var multipleMaterialsUrl = 'specs/data/box-multiple-materials/box-multiple-materials.mtl';
function getImagePath(objPath, relativePath) {
2017-04-10 17:57:56 -04:00
return path.resolve(path.dirname(objPath), relativePath);
2017-03-13 15:28:51 -04:00
}
2017-05-04 17:58:13 -04:00
var defaultOptions = obj2gltf.defaults;
2017-04-18 11:56:08 -04:00
describe('loadMtl', function() {
2017-03-13 15:28:51 -04:00
it('loads complex material', function(done) {
2017-05-04 17:58:13 -04:00
expect(loadMtl(complexMaterialUrl, defaultOptions)
2017-03-13 15:28:51 -04:00
.then(function(materials) {
2017-05-04 17:58:13 -04:00
var material = materials[0];
expect(material.name).toBe('Material');
2017-03-13 15:28:51 -04:00
expect(material.ambientColor).toEqual([0.2, 0.2, 0.2, 1.0]);
2017-04-18 11:56:08 -04:00
expect(material.emissiveColor).toEqual([0.1, 0.1, 0.1, 1.0]);
2017-03-13 15:28:51 -04:00
expect(material.diffuseColor).toEqual([0.64, 0.64, 0.64, 1.0]);
expect(material.specularColor).toEqual([0.5, 0.5, 0.5, 1.0]);
expect(material.specularShininess).toEqual(96.078431);
expect(material.alpha).toEqual(0.9);
2017-04-10 17:57:56 -04:00
expect(material.ambientTexture).toEqual(getImagePath(complexMaterialUrl, 'ambient.gif'));
2017-04-18 11:56:08 -04:00
expect(material.emissiveTexture).toEqual(getImagePath(complexMaterialUrl, 'emission.jpg'));
2017-04-10 17:57:56 -04:00
expect(material.diffuseTexture).toEqual(getImagePath(complexMaterialUrl, 'diffuse.png'));
expect(material.specularTexture).toEqual(getImagePath(complexMaterialUrl, 'specular.jpeg'));
2017-04-18 11:56:08 -04:00
expect(material.specularShininessTexture).toEqual(getImagePath(complexMaterialUrl, 'shininess.png'));
expect(material.normalTexture).toEqual(getImagePath(complexMaterialUrl, 'bump.png'));
expect(material.alphaTexture).toEqual(getImagePath(complexMaterialUrl, 'alpha.png'));
2017-03-13 15:28:51 -04:00
}), done).toResolve();
});
it('loads mtl with multiple materials', function(done) {
2017-05-04 17:58:13 -04:00
expect(loadMtl(multipleMaterialsUrl, defaultOptions)
2017-03-13 15:28:51 -04:00
.then(function(materials) {
2017-05-04 17:58:13 -04:00
expect(materials.length).toBe(3);
expect(materials[0].name).toBe('Blue');
expect(materials[0].diffuseColor).toEqual([0.0, 0.0, 0.64, 1.0]);
expect(materials[1].name).toBe('Green');
expect(materials[1].diffuseColor).toEqual([0.0, 0.64, 0.0, 1.0]);
expect(materials[2].name).toBe('Red');
expect(materials[2].diffuseColor).toEqual([0.64, 0.0, 0.0, 1.0]);
2017-03-13 15:28:51 -04:00
}), done).toResolve();
});
});