DSDSWeb/static/js/Cesium-1.53/Specs/Widgets/VRButton/VRButtonViewModelSpec.js

75 lines
2.4 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
defineSuite([
'Widgets/VRButton/VRButtonViewModel',
'Core/Fullscreen',
'Specs/createScene'
], function(
VRButtonViewModel,
Fullscreen,
createScene) {
'use strict';
var scene;
beforeEach(function() {
scene = createScene();
});
afterEach(function() {
scene.destroyForSpecs();
});
it('constructor sets default values', function() {
var viewModel = new VRButtonViewModel(scene);
expect(viewModel.vrElement).toBe(document.body);
expect(viewModel.isDestroyed()).toEqual(false);
viewModel.destroy();
expect(viewModel.isDestroyed()).toEqual(true);
});
it('constructor sets expected values', function() {
var testElement = document.createElement('span');
var viewModel = new VRButtonViewModel(scene, testElement);
expect(viewModel.vrElement).toBe(testElement);
viewModel.destroy();
});
it('constructor can take an element id', function() {
var testElement = document.createElement('span');
testElement.id = 'testElement';
document.body.appendChild(testElement);
var viewModel = new VRButtonViewModel(scene, 'testElement');
expect(viewModel.vrElement).toBe(testElement);
viewModel.destroy();
document.body.removeChild(testElement);
});
it('isVREnabled work as expected', function() {
var viewModel = new VRButtonViewModel(scene);
expect(viewModel.isVREnabled).toEqual(Fullscreen.enabled);
viewModel.isVREnabled = false;
expect(viewModel.isVREnabled).toEqual(false);
viewModel.destroy();
});
it('can get and set vrElement', function() {
var testElement = document.createElement('span');
var viewModel = new VRButtonViewModel(scene);
expect(viewModel.vrElement).not.toBe(testElement);
viewModel.vrElement = testElement;
expect(viewModel.vrElement).toBe(testElement);
});
it('throws when constructed without a scene', function() {
expect(function() {
return new VRButtonViewModel();
}).toThrowDeveloperError();
});
it('throws is setting vrElement is not an Element', function() {
var viewModel = new VRButtonViewModel(scene);
expect(function() {
viewModel.vrElement = {};
}).toThrowDeveloperError();
});
});