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

101 lines
3.1 KiB
JavaScript

defineSuite([
'Scene/GridImageryProvider',
'Core/Ellipsoid',
'Core/GeographicTilingScheme',
'Core/WebMercatorTilingScheme',
'Scene/ImageryProvider',
'Specs/pollToPromise',
'ThirdParty/when'
], function(
GridImageryProvider,
Ellipsoid,
GeographicTilingScheme,
WebMercatorTilingScheme,
ImageryProvider,
pollToPromise,
when) {
'use strict';
it('conforms to ImageryProvider interface', function() {
expect(GridImageryProvider).toConformToInterface(ImageryProvider);
});
it('resolves readyPromise', function() {
var provider = new GridImageryProvider();
return provider.readyPromise.then(function (result) {
expect(result).toBe(true);
expect(provider.ready).toBe(true);
});
});
it('returns valid value for hasAlphaChannel', function() {
var provider = new GridImageryProvider();
return pollToPromise(function() {
return provider.ready;
}).then(function() {
expect(typeof provider.hasAlphaChannel).toBe('boolean');
});
});
it('can use a custom ellipsoid', function() {
var ellipsoid = new Ellipsoid(1, 2, 3);
var provider = new GridImageryProvider({
ellipsoid : ellipsoid
});
return pollToPromise(function() {
return provider.ready;
}).then(function() {
expect(provider.tilingScheme.ellipsoid).toEqual(ellipsoid);
});
});
it('can provide a root tile', function() {
var provider = new GridImageryProvider();
return pollToPromise(function() {
return provider.ready;
}).then(function() {
expect(provider.tileWidth).toEqual(256);
expect(provider.tileHeight).toEqual(256);
expect(provider.maximumLevel).toBeUndefined();
expect(provider.tilingScheme).toBeInstanceOf(GeographicTilingScheme);
expect(provider.tileDiscardPolicy).toBeUndefined();
expect(provider.rectangle).toEqual(new GeographicTilingScheme().rectangle);
return when(provider.requestImage(0, 0, 0), function(image) {
expect(image).toBeDefined();
});
});
});
it('uses alternate tiling scheme if provided', function() {
var tilingScheme = new WebMercatorTilingScheme();
var provider = new GridImageryProvider({
tilingScheme : tilingScheme
});
return pollToPromise(function() {
return provider.ready;
}).then(function() {
expect(provider.tilingScheme).toBe(tilingScheme);
});
});
it('uses tile width and height if provided', function() {
var provider = new GridImageryProvider({
tileWidth : 123,
tileHeight : 456
});
return pollToPromise(function() {
return provider.ready;
}).then(function() {
expect(provider.tileWidth).toEqual(123);
expect(provider.tileHeight).toEqual(456);
});
});
});