Assert that ol.layer.Tile#getPreload is always set

This commit is contained in:
Frederic Junod
2015-01-07 16:48:15 +01:00
parent 06fe8288ce
commit df51e55781
3 changed files with 40 additions and 8 deletions

View File

@@ -30,18 +30,21 @@ ol.layer.TileProperty = {
ol.layer.Tile = function(opt_options) { ol.layer.Tile = function(opt_options) {
var options = goog.isDef(opt_options) ? opt_options : {}; var options = goog.isDef(opt_options) ? opt_options : {};
goog.base(this, /** @type {olx.layer.LayerOptions} */ (options)); goog.base(this, /** @type {olx.layer.LayerOptions} */ (options));
if (!goog.isDef(this.getPreload())) {
this.setPreload(0);
}
}; };
goog.inherits(ol.layer.Tile, ol.layer.Layer); goog.inherits(ol.layer.Tile, ol.layer.Layer);
/** /**
* @return {number|undefined} The level to preload tiles up to. * @return {number} The level to preload tiles up to.
* @observable * @observable
* @api * @api
*/ */
ol.layer.Tile.prototype.getPreload = function() { ol.layer.Tile.prototype.getPreload = function() {
return /** @type {number|undefined} */ ( return /** @type {number} */ (this.get(ol.layer.TileProperty.PRELOAD));
this.get(ol.layer.TileProperty.PRELOAD));
}; };
goog.exportProperty( goog.exportProperty(
ol.layer.Tile.prototype, ol.layer.Tile.prototype,

View File

@@ -246,8 +246,7 @@ ol.renderer.Layer.prototype.snapCenterToPixel =
* @param {ol.proj.Projection} projection Projection. * @param {ol.proj.Projection} projection Projection.
* @param {ol.Extent} extent Extent. * @param {ol.Extent} extent Extent.
* @param {number} currentZ Current Z. * @param {number} currentZ Current Z.
* @param {number|undefined} preload Load low resolution tiles up to 'preload' * @param {number} preload Load low resolution tiles up to 'preload' levels.
* levels.
* @param {function(this: T, ol.Tile)=} opt_tileCallback Tile callback. * @param {function(this: T, ol.Tile)=} opt_tileCallback Tile callback.
* @param {T=} opt_this Object to use as `this` in `opt_tileCallback`. * @param {T=} opt_this Object to use as `this` in `opt_tileCallback`.
* @protected * @protected
@@ -264,9 +263,6 @@ ol.renderer.Layer.prototype.manageTilePyramid = function(
var tileQueue = frameState.tileQueue; var tileQueue = frameState.tileQueue;
var minZoom = tileGrid.getMinZoom(); var minZoom = tileGrid.getMinZoom();
var tile, tileRange, tileResolution, x, y, z; var tile, tileRange, tileResolution, x, y, z;
if (!goog.isDef(preload)) {
preload = 0;
}
for (z = currentZ; z >= minZoom; --z) { for (z = currentZ; z >= minZoom; --z) {
tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, tileRange); tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, tileRange);
tileResolution = tileGrid.getResolution(z); tileResolution = tileGrid.getResolution(z);

View File

@@ -0,0 +1,33 @@
goog.provide('ol.test.layer.Tile');
describe('ol.layer.Tile', function() {
describe('constructor (defaults)', function() {
var layer;
beforeEach(function() {
layer = new ol.layer.Tile({
source: new ol.source.OSM()
});
});
afterEach(function() {
goog.dispose(layer);
});
it('creates an instance', function() {
expect(layer).to.be.a(ol.layer.Tile);
});
it('provides default preload', function() {
expect(layer.getPreload()).to.be(0);
});
});
});
goog.require('goog.dispose');
goog.require('ol.layer.Tile');
goog.require('ol.source.OSM');