diff --git a/test/ol.html b/test/ol.html index f3c74e6edf..b907173fb1 100644 --- a/test/ol.html +++ b/test/ol.html @@ -87,6 +87,7 @@ + diff --git a/test/spec/ol/tilerange.test.js b/test/spec/ol/tilerange.test.js new file mode 100644 index 0000000000..630308e9e7 --- /dev/null +++ b/test/spec/ol/tilerange.test.js @@ -0,0 +1,94 @@ +goog.require('ol.TileRange'); + +describe('ol.TileRange', function() { + + describe('contains', function() { + it('returns the expected value', function() { + var tileRange = new ol.TileRange(1, 1, 3, 3); + expect(tileRange.contains(new ol.TileCoord(0, 0, 0))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 0, 1))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 0, 2))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 0, 3))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 0, 4))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 1, 0))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 1, 1))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 1, 2))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 1, 3))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 1, 4))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 2, 0))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 2, 1))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 2, 2))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 2, 3))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 2, 4))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 3, 0))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 3, 1))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 3, 2))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 3, 3))).toBeTruthy(); + expect(tileRange.contains(new ol.TileCoord(0, 3, 4))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 4, 0))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 4, 1))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 4, 2))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 4, 3))).toBeFalsy(); + expect(tileRange.contains(new ol.TileCoord(0, 4, 4))).toBeFalsy(); + }); + }); + + describe('boundingTileRange', function() { + it('returns the expected TileRange', function() { + var tileRange = new ol.TileRange.boundingTileRange( + new ol.TileCoord(3, 1, 3), + new ol.TileCoord(3, 2, 0)); + expect(tileRange.minX).toEqual(1); + expect(tileRange.minY).toEqual(0); + expect(tileRange.maxX).toEqual(2); + expect(tileRange.maxY).toEqual(3); + }); + + describe('with mixed z', function() { + expect(function() { + var tileRange = new ol.TileRange.boundingTileRange( + new ol.TileCoord(3, 1, 3), + new ol.TileCoord(4, 2, 0)); + }).toThrow(); + }); + }); + + describe('forEachTileCoord', function() { + it('iterates as expected', function() { + var tileRange = new ol.TileRange(0, 2, 1, 3); + + var tileCoords = []; + tileRange.forEachTileCoord(5, function(tileCoord) { + tileCoords.push(new ol.TileCoord(tileCoord.z, tileCoord.x, tileCoord.y)); + }); + + expect(tileCoords.length).toEqual(4); + + expect(tileCoords[0].z).toEqual(5); + expect(tileCoords[0].x).toEqual(0); + expect(tileCoords[0].y).toEqual(2); + + expect(tileCoords[1].z).toEqual(5); + expect(tileCoords[1].x).toEqual(0); + expect(tileCoords[1].y).toEqual(3); + + expect(tileCoords[2].z).toEqual(5); + expect(tileCoords[2].x).toEqual(1); + expect(tileCoords[2].y).toEqual(2); + + expect(tileCoords[3].z).toEqual(5); + expect(tileCoords[3].x).toEqual(1); + expect(tileCoords[3].y).toEqual(3); + }); + }); + + describe('getSize', function() { + it('returns the expected size', function() { + var tileRange = new ol.TileRange(0, 1, 2, 4); + var size = tileRange.getSize(); + expect(size.width).toEqual(3); + expect(size.height).toEqual(4); + }); + }); + +});