DSDSWeb/static/js/Cesium-1.53/Specs/Scene/SkyBoxSpec.js

362 lines
11 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
defineSuite([
'Scene/SkyBox',
'Core/Resource',
'Scene/SceneMode',
'Specs/createScene'
], function(
SkyBox,
Resource,
SceneMode,
createScene) {
'use strict';
var scene;
var skyBox;
var loadedImage;
beforeAll(function() {
scene = createScene();
return Resource.fetchImage('./Data/Images/Blue.png').then(function(image) {
loadedImage = image;
});
});
afterAll(function() {
scene.destroyForSpecs();
});
beforeEach(function() {
scene.mode = SceneMode.SCENE3D;
});
afterEach(function() {
skyBox = skyBox && skyBox.destroy();
scene.skyBox = undefined;
});
it('draws a sky box from Images', function() {
skyBox = new SkyBox({
sources : {
positiveX : loadedImage,
negativeX : loadedImage,
positiveY : loadedImage,
negativeY : loadedImage,
positiveZ : loadedImage,
negativeZ : loadedImage
}
});
expect(scene).toRender([0, 0, 0, 255]);
scene.skyBox = skyBox;
expect(scene).toRender([0, 0, 255, 255]);
});
it('does not render when show is false', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
},
show : false
});
expect(scene).toRender([0, 0, 0, 255]);
scene.skyBox = skyBox;
expect(scene).toRender([0, 0, 0, 255]);
});
it('does not render in 2D', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.mode = SceneMode.SCENE2D;
expect(scene).toRender([0, 0, 0, 255]);
scene.skyBox = skyBox;
expect(scene).toRender([0, 0, 0, 255]);
});
it('does not render without a render pass', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.frameState.passes.render = false;
scene.skyBox = skyBox;
var command = skyBox.update(scene.frameState);
expect(command).not.toBeDefined();
});
it('gets constructor options', function() {
skyBox = new SkyBox({
sources : {
positiveX : 'positiveX.png',
negativeX : 'negativeX.png',
positiveY : 'positiveY.png',
negativeY : 'negativeY.png',
positiveZ : 'positiveZ.png',
negativeZ : 'negativeZ.png'
},
show : false
});
expect(skyBox.sources.positiveX).toEqual('positiveX.png');
expect(skyBox.sources.negativeX).toEqual('negativeX.png');
expect(skyBox.sources.positiveY).toEqual('positiveY.png');
expect(skyBox.sources.negativeY).toEqual('negativeY.png');
expect(skyBox.sources.positiveZ).toEqual('positiveZ.png');
expect(skyBox.sources.negativeZ).toEqual('negativeZ.png');
expect(skyBox.show).toEqual(false);
});
it('isDestroyed', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
expect(skyBox.isDestroyed()).toEqual(false);
skyBox.destroy();
expect(skyBox.isDestroyed()).toEqual(true);
skyBox = undefined;
});
it('throws when constructed without positiveX', function() {
skyBox = new SkyBox({
sources : {
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed without negativeX', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed without positiveY', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed without negativeY', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed without positiveZ', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed without negativeZ', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when positiveX is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : loadedImage,
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when negativeX is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : loadedImage,
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when positiveY is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : loadedImage,
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when negativeY is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : loadedImage,
positiveZ : './Data/Images/Blue.png',
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when positiveZ is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : loadedImage,
negativeZ : './Data/Images/Blue.png'
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
it('throws when constructed when negativeZ is a different type', function() {
skyBox = new SkyBox({
sources : {
positiveX : './Data/Images/Blue.png',
negativeX : './Data/Images/Blue.png',
positiveY : './Data/Images/Blue.png',
negativeY : './Data/Images/Blue.png',
positiveZ : './Data/Images/Blue.png',
negativeZ : loadedImage
}
});
scene.skyBox = skyBox;
expect(function() {
return scene.render();
}).toThrowDeveloperError();
});
}, 'WebGL');