obj2gltf/specs/lib/loadTextureSpec.js

100 lines
3.5 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);
});
});