Merge pull request #433 from twpayne/clean-up-xyz-tests

Move ol.tilegrid.XYZ tests to their proper place
This commit is contained in:
Tom Payne
2013-03-25 04:04:48 -07:00
2 changed files with 69 additions and 55 deletions

View File

@@ -1,5 +1,6 @@
goog.provide('ol.test.source.XYZ');
describe('ol.source.XYZ', function() {
describe('tileUrlFunction', function() {
@@ -15,6 +16,7 @@ describe('ol.source.XYZ', function() {
});
it('return the expected URL', function() {
var coordinate = new ol.Coordinate(829330.2064098881, 5933916.615134273);
var tileUrl;
@@ -45,9 +47,11 @@ describe('ol.source.XYZ', function() {
tileUrl = xyzTileSource.tileUrlFunction(
tileGrid.getTileCoordForCoordAndZ(coordinate, 6));
expect(tileUrl).to.eql('6/33/22');
});
describe('wrap x', function() {
it('returns the expected URL', function() {
var tileUrl = xyzTileSource.tileUrlFunction(
new ol.TileCoord(6, -31, -23));
@@ -59,9 +63,11 @@ describe('ol.source.XYZ', function() {
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 97, -23));
expect(tileUrl).to.eql('6/33/22');
});
});
describe('crop y', function() {
it('returns the expected URL', function() {
var tileUrl = xyzTileSource.tileUrlFunction(
new ol.TileCoord(6, 33, -87));
@@ -73,64 +79,13 @@ describe('ol.source.XYZ', function() {
tileUrl = xyzTileSource.tileUrlFunction(new ol.TileCoord(6, 33, 41));
expect(tileUrl).to.be(undefined);
});
});
});
describe('forEachTileCoordParentTileRange', function() {
it('iterates as expected', function() {
var xyzTileGrid = new ol.tilegrid.XYZ({maxZoom: 6});
var tileCoord = new ol.TileCoord(5, 11, 21);
var zs = [], tileRanges = [];
xyzTileGrid.forEachTileCoordParentTileRange(
tileCoord,
function(z, tileRange) {
zs.push(z);
tileRanges.push(new ol.TileRange(
tileRange.minX, tileRange.minY,
tileRange.maxX, tileRange.maxY));
return false;
});
expect(zs.length).to.eql(5);
expect(tileRanges.length).to.eql(5);
expect(zs[0]).to.eql(4);
expect(tileRanges[0].minX).to.eql(5);
expect(tileRanges[0].minY).to.eql(10);
expect(tileRanges[0].maxX).to.eql(5);
expect(tileRanges[0].maxY).to.eql(10);
expect(zs[1]).to.eql(3);
expect(tileRanges[1].minX).to.eql(2);
expect(tileRanges[1].minY).to.eql(5);
expect(tileRanges[1].maxX).to.eql(2);
expect(tileRanges[1].maxY).to.eql(5);
expect(zs[2]).to.eql(2);
expect(tileRanges[2].minX).to.eql(1);
expect(tileRanges[2].minY).to.eql(2);
expect(tileRanges[2].maxX).to.eql(1);
expect(tileRanges[2].maxY).to.eql(2);
expect(zs[3]).to.eql(1);
expect(tileRanges[3].minX).to.eql(0);
expect(tileRanges[3].minY).to.eql(1);
expect(tileRanges[3].maxX).to.eql(0);
expect(tileRanges[3].maxY).to.eql(1);
expect(zs[4]).to.eql(0);
expect(tileRanges[4].minX).to.eql(0);
expect(tileRanges[4].minY).to.eql(0);
expect(tileRanges[4].maxX).to.eql(0);
expect(tileRanges[4].maxY).to.eql(0);
});
});
});
goog.require('ol.Coordinate');
goog.require('ol.TileCoord');
goog.require('ol.TileRange');
goog.require('ol.tilegrid.XYZ');
goog.require('ol.source.XYZ');

View File

@@ -3,13 +3,70 @@ goog.provide('ol.test.tilegrid.XYZ');
describe('ol.tilegrid.XYZ', function() {
var xyzTileGrid;
beforeEach(function() {
xyzTileGrid = new ol.tilegrid.XYZ({
maxZoom: 22
});
});
describe('forEachTileCoordParentTileRange', function() {
it('iterates as expected', function() {
var tileCoord = new ol.TileCoord(5, 11, 21);
var zs = [], tileRanges = [];
xyzTileGrid.forEachTileCoordParentTileRange(
tileCoord,
function(z, tileRange) {
zs.push(z);
tileRanges.push(new ol.TileRange(
tileRange.minX, tileRange.minY,
tileRange.maxX, tileRange.maxY));
return false;
});
expect(zs.length).to.eql(5);
expect(tileRanges.length).to.eql(5);
expect(zs[0]).to.eql(4);
expect(tileRanges[0].minX).to.eql(5);
expect(tileRanges[0].minY).to.eql(10);
expect(tileRanges[0].maxX).to.eql(5);
expect(tileRanges[0].maxY).to.eql(10);
expect(zs[1]).to.eql(3);
expect(tileRanges[1].minX).to.eql(2);
expect(tileRanges[1].minY).to.eql(5);
expect(tileRanges[1].maxX).to.eql(2);
expect(tileRanges[1].maxY).to.eql(5);
expect(zs[2]).to.eql(2);
expect(tileRanges[2].minX).to.eql(1);
expect(tileRanges[2].minY).to.eql(2);
expect(tileRanges[2].maxX).to.eql(1);
expect(tileRanges[2].maxY).to.eql(2);
expect(zs[3]).to.eql(1);
expect(tileRanges[3].minX).to.eql(0);
expect(tileRanges[3].minY).to.eql(1);
expect(tileRanges[3].maxX).to.eql(0);
expect(tileRanges[3].maxY).to.eql(1);
expect(zs[4]).to.eql(0);
expect(tileRanges[4].minX).to.eql(0);
expect(tileRanges[4].minY).to.eql(0);
expect(tileRanges[4].maxX).to.eql(0);
expect(tileRanges[4].maxY).to.eql(0);
});
});
describe('getResolution', function() {
it('returns the correct resolution at the equator', function() {
// @see http://msdn.microsoft.com/en-us/library/aa940990.aspx
var xyzTileGrid = new ol.tilegrid.XYZ({
maxZoom: 22
});
expect(xyzTileGrid.getResolution(0)).to.roughlyEqual(156543.04, 1e-2);
expect(xyzTileGrid.getResolution(1)).to.roughlyEqual(78271.52, 1e-2);
expect(xyzTileGrid.getResolution(2)).to.roughlyEqual(39135.76, 1e-2);
@@ -37,4 +94,6 @@ describe('ol.tilegrid.XYZ', function() {
});
goog.require('ol.TileCoord');
goog.require('ol.TileRange');
goog.require('ol.tilegrid.XYZ');