obj2gltf/specs/lib/loadTextureSpec.js

100 lines
3.8 KiB
JavaScript

'use strict';
const loadTexture = require('../../lib/loadTexture');
const pngTexturePath = 'specs/data/box-complex-material/shininess.png';
const jpgTexturePath = 'specs/data/box-complex-material/emission.jpg';
const jpegTexturePath = 'specs/data/box-complex-material/specular.jpeg';
const gifTexturePath = 'specs/data/box-complex-material/ambient.gif';
const grayscaleTexturePath = 'specs/data/box-complex-material-alpha/alpha.png';
const transparentTexturePath = 'specs/data/box-complex-material/diffuse.png';
describe('loadTexture', () => {
it('loads png texture', async () => {
const texture = await loadTexture(pngTexturePath);
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();
});
it('loads jpg texture', async () => {
const texture = await loadTexture(jpgTexturePath);
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();
});
it('loads jpeg texture', async () => {
const texture = await loadTexture(jpegTexturePath);
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();
});
it('loads gif texture', async () => {
const texture = await loadTexture(gifTexturePath);
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();
});
it('loads grayscale texture', async () => {
const texture = await loadTexture(grayscaleTexturePath);
expect(texture.transparent).toBe(false);
expect(texture.source).toBeDefined();
expect(texture.extension).toBe('.png');
});
it('loads texture with alpha channel', async () => {
const texture = await loadTexture(transparentTexturePath);
expect(texture.transparent).toBe(false);
});
it('loads texture with checkTransparency flag', async () => {
const options = {
checkTransparency : true
};
const texture = await loadTexture(transparentTexturePath, options);
expect(texture.transparent).toBe(true);
});
it('loads and decodes png', async () => {
const options = {
decode : true
};
const texture = await loadTexture(pngTexturePath, options);
expect(texture.pixels).toBeDefined();
expect(texture.width).toBe(211);
expect(texture.height).toBe(211);
});
it('loads and decodes jpeg', async () => {
const options = {
decode : true
};
const texture = await loadTexture(jpegTexturePath, options);
expect(texture.pixels).toBeDefined();
expect(texture.width).toBe(211);
expect(texture.height).toBe(211);
});
});