66 lines
1.8 KiB
JavaScript
66 lines
1.8 KiB
JavaScript
defineSuite([
|
|
'Widgets/HomeButton/HomeButtonViewModel',
|
|
'Core/Ellipsoid',
|
|
'Scene/Globe',
|
|
'Specs/createScene'
|
|
], function(
|
|
HomeButtonViewModel,
|
|
Ellipsoid,
|
|
Globe,
|
|
createScene) {
|
|
'use strict';
|
|
|
|
var scene;
|
|
var ellipsoid = Ellipsoid.WGS84;
|
|
var globe = new Globe(ellipsoid);
|
|
beforeAll(function() {
|
|
scene = createScene();
|
|
scene.globe = globe;
|
|
});
|
|
|
|
afterAll(function() {
|
|
scene.destroyForSpecs();
|
|
});
|
|
|
|
it('constructor sets default values', function() {
|
|
var viewModel = new HomeButtonViewModel(scene);
|
|
expect(viewModel.scene).toBe(scene);
|
|
});
|
|
|
|
it('throws if scene is undefined', function() {
|
|
expect(function() {
|
|
return new HomeButtonViewModel(undefined);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
//These remaining tests are sanity checks to make sure the code executes
|
|
//The actual position of the camera at the end of the command is
|
|
//tied to the implementation of various camera features.
|
|
it('works in 3D', function() {
|
|
scene.render();
|
|
var viewModel = new HomeButtonViewModel(scene);
|
|
viewModel.command();
|
|
});
|
|
|
|
it('works in 2D', function() {
|
|
scene.render();
|
|
var viewModel = new HomeButtonViewModel(scene);
|
|
scene.morphTo2D();
|
|
viewModel.command();
|
|
});
|
|
|
|
it('works in Columbus View', function() {
|
|
scene.render();
|
|
var viewModel = new HomeButtonViewModel(scene);
|
|
scene.morphToColumbusView();
|
|
viewModel.command();
|
|
});
|
|
|
|
it('works while morphing', function() {
|
|
scene.render();
|
|
var viewModel = new HomeButtonViewModel(scene);
|
|
scene.morphToColumbusView(2000);
|
|
viewModel.command();
|
|
});
|
|
}, 'WebGL');
|