'use strict'; var loadTexture = require('../../lib/loadTexture'); var pngTexturePath = 'specs/data/box-complex-material/shininess.png'; var jpgTexturePath = 'specs/data/box-complex-material/emission.jpg'; var jpegTexturePath = 'specs/data/box-complex-material/specular.jpeg'; var gifTexturePath = 'specs/data/box-complex-material/ambient.gif'; var grayscaleTexturePath = 'specs/data/box-complex-material-alpha/alpha.png'; var transparentTexturePath = 'specs/data/box-complex-material/diffuse.png'; describe('loadTexture', function() { it('loads png texture', function(done) { expect(loadTexture(pngTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); expect(texture.source).toBeDefined(); expect(texture.name).toBe('shininess'); expect(texture.extension).toBe('.png'); expect(texture.path).toBe(pngTexturePath); expect(texture.pixels).toBeUndefined(); expect(texture.width).toBeUndefined(); expect(texture.height).toBeUndefined(); }), done).toResolve(); }); it('loads jpg texture', function(done) { expect(loadTexture(jpgTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); expect(texture.source).toBeDefined(); expect(texture.name).toBe('emission'); expect(texture.extension).toBe('.jpg'); expect(texture.path).toBe(jpgTexturePath); expect(texture.pixels).toBeUndefined(); expect(texture.width).toBeUndefined(); expect(texture.height).toBeUndefined(); }), done).toResolve(); }); it('loads jpeg texture', function(done) { expect(loadTexture(jpegTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); expect(texture.source).toBeDefined(); expect(texture.name).toBe('specular'); expect(texture.extension).toBe('.jpeg'); expect(texture.path).toBe(jpegTexturePath); expect(texture.pixels).toBeUndefined(); expect(texture.width).toBeUndefined(); expect(texture.height).toBeUndefined(); }), done).toResolve(); }); it('loads gif texture', function(done) { expect(loadTexture(gifTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); expect(texture.source).toBeDefined(); expect(texture.name).toBe('ambient'); expect(texture.extension).toBe('.gif'); expect(texture.path).toBe(gifTexturePath); expect(texture.pixels).toBeUndefined(); expect(texture.width).toBeUndefined(); expect(texture.height).toBeUndefined(); }), done).toResolve(); }); it('loads grayscale texture', function(done) { expect(loadTexture(grayscaleTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); expect(texture.source).toBeDefined(); expect(texture.extension).toBe('.png'); }), done).toResolve(); }); it('loads texture with alpha channel', function(done) { expect(loadTexture(transparentTexturePath) .then(function(texture) { expect(texture.transparent).toBe(false); }), done).toResolve(); }); it('loads texture with checkTransparency flag', function(done) { var options = { checkTransparency : true }; expect(loadTexture(transparentTexturePath, options) .then(function(texture) { expect(texture.transparent).toBe(true); }), done).toResolve(); }); it('loads and decodes png', function(done) { var options = { decode : true }; expect(loadTexture(pngTexturePath, options) .then(function(texture) { expect(texture.pixels).toBeDefined(); expect(texture.width).toBe(211); expect(texture.height).toBe(211); }), done).toResolve(); }); it('loads and decodes jpeg', function(done) { var options = { decode : true }; expect(loadTexture(jpegTexturePath, options) .then(function(texture) { expect(texture.pixels).toBeDefined(); expect(texture.width).toBe(211); expect(texture.height).toBe(211); }), done).toResolve(); }); });