DSDSServer2024/build/build.20240805/static/js/Cesium-1.53/Specs/Widgets/InfoBox/InfoBoxSpec.js

78 lines
2.5 KiB
JavaScript
Raw Normal View History

defineSuite([
'Widgets/InfoBox/InfoBox',
'Core/defined',
'Specs/pollToPromise'
], function(
InfoBox,
defined,
pollToPromise) {
'use strict';
var testContainer;
var infoBox;
beforeEach(function() {
testContainer = document.createElement('span');
testContainer.id = 'testContainer';
document.body.appendChild(testContainer);
});
afterEach(function() {
if (defined(infoBox) && !infoBox.isDestroyed()) {
infoBox = infoBox.destroy();
}
document.body.removeChild(testContainer);
});
it('constructor sets expected values', function() {
infoBox = new InfoBox(testContainer);
expect(infoBox.container).toBe(testContainer);
expect(infoBox.viewModel).toBeDefined();
expect(infoBox.isDestroyed()).toEqual(false);
infoBox.destroy();
expect(infoBox.isDestroyed()).toEqual(true);
});
it('can set description body', function() {
var infoBox = new InfoBox(testContainer);
var node;
var infoElement = testContainer.firstChild;
infoBox.viewModel.description = 'Please do not crash';
return pollToPromise(function() {
node = infoBox.frame.contentDocument.body.firstChild;
return node !== null;
}).then(function() {
expect(infoElement.style['background-color']).toEqual('');
return pollToPromise(function() {
return node.innerHTML === infoBox.viewModel.description;
});
}).then(function() {
infoBox.viewModel.description = '<div style="background-color: rgb(255, 255, 255);">Please do not crash</div>';
expect(infoElement.style['background-color']).toEqual('rgb(255, 255, 255)');
return pollToPromise(function() {
return node.innerHTML === infoBox.viewModel.description;
});
}).then(function() {
expect(infoElement['background-color']).toBeUndefined();
});
});
it('constructor works with string id container', function() {
infoBox = new InfoBox('testContainer');
expect(infoBox.container.id).toBe(testContainer.id);
});
it('throws if container is undefined', function() {
expect(function() {
return new InfoBox(undefined);
}).toThrowDeveloperError();
});
it('throws if container string is undefined', function() {
expect(function() {
return new InfoBox('foo');
}).toThrowDeveloperError();
});
});