DSDSWeb/static/js/Cesium-1.53/Specs/Widgets/NavigationHelpButton/NavigationHelpButtonSpec.js

105 lines
3.3 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
defineSuite([
'Widgets/NavigationHelpButton/NavigationHelpButton',
'Core/FeatureDetection',
'Specs/DomEventSimulator'
], function(
NavigationHelpButton,
FeatureDetection,
DomEventSimulator) {
'use strict';
it('can create and destroy', function() {
var container = document.createElement('span');
container.id = 'testContainer';
document.body.appendChild(container);
var widget = new NavigationHelpButton({
container : 'testContainer'
});
expect(widget.container.id).toBe(container.id);
expect(widget.isDestroyed()).toEqual(false);
widget.destroy();
expect(widget.isDestroyed()).toEqual(true);
document.body.removeChild(container);
});
it('does not show instructions by default', function() {
var widget = new NavigationHelpButton({
container : document.body
});
expect(widget.viewModel.showInstructions).toBe(false);
widget.destroy();
});
it('shows instructions by default if told to do so in the constructor', function() {
var widget = new NavigationHelpButton({
container : document.body,
instructionsInitiallyVisible : true
});
expect(widget.viewModel.showInstructions).toBe(true);
widget.destroy();
});
function addCloseOnInputSpec(name, func) {
it(name + ' event closes dropdown if target is not inside container', function() {
var container = document.createElement('span');
container.id = 'testContainer';
document.body.appendChild(container);
var widget = new NavigationHelpButton({
container : 'testContainer'
});
widget.viewModel.showInstructions = true;
func(document.body);
expect(widget.viewModel.showInstructions).toEqual(false);
widget.viewModel.showInstructions = true;
func(container.firstChild);
expect(widget.viewModel.showInstructions).toEqual(true);
widget.destroy();
document.body.removeChild(container);
});
}
if (FeatureDetection.supportsPointerEvents()) {
addCloseOnInputSpec('pointerDown', DomEventSimulator.firePointerDown);
} else {
addCloseOnInputSpec('mousedown', DomEventSimulator.fireMouseDown);
addCloseOnInputSpec('touchstart', DomEventSimulator.fireTouchStart);
}
it('throws if container is undefined', function() {
expect(function() {
return new NavigationHelpButton({
container : undefined
});
}).toThrowDeveloperError();
});
it('throws if options is undefined', function() {
expect(function() {
return new NavigationHelpButton(undefined);
}).toThrowDeveloperError();
});
it('throws if options.container is undefined', function() {
expect(function() {
return new NavigationHelpButton({
container : undefined
});
}).toThrowDeveloperError();
});
it('constructor throws with string element that does not exist', function() {
expect(function() {
return new NavigationHelpButton({
container : 'does not exist'
});
}).toThrowDeveloperError();
});
});