Merge pull request #4389 from elemoine/dynamic-params
Smooth transitions on parameter changes
This commit is contained in:
@@ -22,6 +22,75 @@ describe('ol.source.TileImage', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getTileInternal', function() {
|
||||
var source, tile;
|
||||
|
||||
beforeEach(function() {
|
||||
source = createSource();
|
||||
expect(source.getKeyParams()).to.be('');
|
||||
source.getTileInternal(0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(source.tileCache.getCount()).to.be(1);
|
||||
tile = source.tileCache.get(source.getKeyZXY(0, 0, -1));
|
||||
});
|
||||
|
||||
it('gets the tile from the cache', function() {
|
||||
var returnedTile = source.getTileInternal(
|
||||
0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(returnedTile).to.be(tile);
|
||||
});
|
||||
|
||||
describe('change a dynamic param', function() {
|
||||
|
||||
describe('tile is not loaded', function() {
|
||||
it('returns a tile with no interim tile', function() {
|
||||
source.getKeyParams = function() {
|
||||
return 'key0';
|
||||
};
|
||||
var returnedTile = source.getTileInternal(
|
||||
0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(returnedTile).not.to.be(tile);
|
||||
expect(returnedTile.key).to.be('key0');
|
||||
expect(returnedTile.interimTile).to.be(null);
|
||||
});
|
||||
});
|
||||
|
||||
describe('tile is loaded', function() {
|
||||
it('returns a tile with interim tile', function() {
|
||||
source.getKeyParams = function() {
|
||||
return 'key0';
|
||||
};
|
||||
tile.state = ol.TileState.LOADED;
|
||||
var returnedTile = source.getTileInternal(
|
||||
0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(returnedTile).not.to.be(tile);
|
||||
expect(returnedTile.key).to.be('key0');
|
||||
expect(returnedTile.interimTile).to.be(tile);
|
||||
});
|
||||
});
|
||||
|
||||
describe('tile is not loaded but interim tile is', function() {
|
||||
it('returns a tile with interim tile', function() {
|
||||
var dynamicParamsKey, returnedTile;
|
||||
source.getKeyParams = function() {
|
||||
return dynamicParamsKey;
|
||||
};
|
||||
dynamicParamsKey = 'key0';
|
||||
tile.state = ol.TileState.LOADED;
|
||||
returnedTile = source.getTileInternal(
|
||||
0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
dynamicParamsKey = 'key1';
|
||||
returnedTile = source.getTileInternal(
|
||||
0, 0, -1, 1, ol.proj.get('EPSG:3857'));
|
||||
expect(returnedTile).not.to.be(tile);
|
||||
expect(returnedTile.key).to.be('key1');
|
||||
expect(returnedTile.interimTile).to.be(tile);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#getTile', function() {
|
||||
it('does not do reprojection for identity', function() {
|
||||
var source3857 = createSource('EPSG:3857');
|
||||
|
||||
@@ -81,6 +81,16 @@ describe('ol.structs.LRUCache', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('replacing value of a key', function() {
|
||||
it('moves the key to newest position', function() {
|
||||
fillLRUCache(lruCache);
|
||||
lruCache.replace('b', 4);
|
||||
expect(lruCache.getCount()).to.eql(4);
|
||||
expect(lruCache.getKeys()).to.eql(['b', 'd', 'c', 'a']);
|
||||
expect(lruCache.getValues()).to.eql([4, 3, 2, 0]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('setting a new value', function() {
|
||||
it('adds it as the newest value', function() {
|
||||
fillLRUCache(lruCache);
|
||||
|
||||
Reference in New Issue
Block a user