change tests to new interface
This commit is contained in:
@@ -4,9 +4,14 @@ var _ = require('underscore'),
|
|||||||
crypto = require('crypto'),
|
crypto = require('crypto'),
|
||||||
zlib = require('zlib'),
|
zlib = require('zlib'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
|
url = require('url'),
|
||||||
sm = new (require('sphericalmercator')),
|
sm = new (require('sphericalmercator')),
|
||||||
sqlite3 = require('sqlite3');
|
sqlite3 = require('sqlite3');
|
||||||
|
|
||||||
|
function noop(err) {
|
||||||
|
if (err) throw err;
|
||||||
|
}
|
||||||
|
|
||||||
// MBTiles
|
// MBTiles
|
||||||
// -------
|
// -------
|
||||||
// MBTiles class for doing common operations (schema setup, tile reading,
|
// MBTiles class for doing common operations (schema setup, tile reading,
|
||||||
@@ -18,6 +23,9 @@ module.exports = MBTiles;
|
|||||||
// - callback: Will be called when the resources have been acquired
|
// - callback: Will be called when the resources have been acquired
|
||||||
// or acquisition failed.
|
// or acquisition failed.
|
||||||
function MBTiles(uri, callback) {
|
function MBTiles(uri, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
if (typeof uri === 'string') uri = url.parse(uri);
|
||||||
|
|
||||||
this.filename = uri.pathname;
|
this.filename = uri.pathname;
|
||||||
this.db = new sqlite3.cached.Database(uri.pathname, function(err) {
|
this.db = new sqlite3.cached.Database(uri.pathname, function(err) {
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
@@ -27,6 +35,10 @@ function MBTiles(uri, callback) {
|
|||||||
|
|
||||||
// Finds all mbtiles file in the filepath and returns their tilesource URI.
|
// Finds all mbtiles file in the filepath and returns their tilesource URI.
|
||||||
MBTiles.list = function(filepath, callback) {
|
MBTiles.list = function(filepath, callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new Error('Callback required as second argument');
|
||||||
|
}
|
||||||
|
|
||||||
filepath = path.resolve(filepath);
|
filepath = path.resolve(filepath);
|
||||||
fs.readdir(filepath, function(err, files) {
|
fs.readdir(filepath, function(err, files) {
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
@@ -41,6 +53,10 @@ MBTiles.list = function(filepath, callback) {
|
|||||||
// Finds an mbtiles file with the given ID in the filepath and returns a
|
// Finds an mbtiles file with the given ID in the filepath and returns a
|
||||||
// tilesource URI.
|
// tilesource URI.
|
||||||
MBTiles.findID = function(filepath, id, callback) {
|
MBTiles.findID = function(filepath, id, callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new Error('Callback required as third argument');
|
||||||
|
}
|
||||||
|
|
||||||
filepath = path.resolve(filepath);
|
filepath = path.resolve(filepath);
|
||||||
var file = path.join(filepath, id + '.mbtiles');
|
var file = path.join(filepath, id + '.mbtiles');
|
||||||
fs.stat(file, function(err, stats) {
|
fs.stat(file, function(err, stats) {
|
||||||
@@ -52,6 +68,10 @@ MBTiles.findID = function(filepath, id, callback) {
|
|||||||
// Retrieve the schema of the current mbtiles database and inform the caller of
|
// Retrieve the schema of the current mbtiles database and inform the caller of
|
||||||
// whether the specified table exists.
|
// whether the specified table exists.
|
||||||
MBTiles.prototype.exists = function(table, callback) {
|
MBTiles.prototype.exists = function(table, callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new Error('Callback required as second argument');
|
||||||
|
}
|
||||||
|
|
||||||
if (this.schema) {
|
if (this.schema) {
|
||||||
return callback(null, _(this.schema).include(table));
|
return callback(null, _(this.schema).include(table));
|
||||||
} else {
|
} else {
|
||||||
@@ -71,6 +91,10 @@ MBTiles.prototype.exists = function(table, callback) {
|
|||||||
|
|
||||||
// DB integrity check.
|
// DB integrity check.
|
||||||
MBTiles.prototype.integrity = function(callback) {
|
MBTiles.prototype.integrity = function(callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new Error('Callback required as first argument');
|
||||||
|
}
|
||||||
|
|
||||||
this.db.get('PRAGMA quick_check(1)', function(err, row) {
|
this.db.get('PRAGMA quick_check(1)', function(err, row) {
|
||||||
if (!(row && row.integrity_check && row.integrity_check === 'ok')) {
|
if (!(row && row.integrity_check && row.integrity_check === 'ok')) {
|
||||||
callback(new Error('Corrupted database.'));
|
callback(new Error('Corrupted database.'));
|
||||||
@@ -84,6 +108,10 @@ MBTiles.prototype.integrity = function(callback) {
|
|||||||
// Sets the synchronous flag to OFF for (much) faster inserts.
|
// Sets the synchronous flag to OFF for (much) faster inserts.
|
||||||
// See http://www.sqlite3.org/pragma.html#pragma_synchronous
|
// See http://www.sqlite3.org/pragma.html#pragma_synchronous
|
||||||
MBTiles.prototype.setup = function(callback) {
|
MBTiles.prototype.setup = function(callback) {
|
||||||
|
if (typeof callback !== 'function') {
|
||||||
|
throw new Error('Callback required as second argument');
|
||||||
|
}
|
||||||
|
|
||||||
fs.readFile(__dirname + '/schema.sql', 'utf8', function(err, sql) {
|
fs.readFile(__dirname + '/schema.sql', 'utf8', function(err, sql) {
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
this.db.serialize(function() {
|
this.db.serialize(function() {
|
||||||
@@ -100,6 +128,8 @@ MBTiles.prototype.setup = function(callback) {
|
|||||||
// has key/value pairs as a hash corresponding to column name and row value.
|
// has key/value pairs as a hash corresponding to column name and row value.
|
||||||
// - `callback` Function.
|
// - `callback` Function.
|
||||||
MBTiles.prototype.insert = function(table, objects, callback) {
|
MBTiles.prototype.insert = function(table, objects, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
if (!objects.length) return callback(null);
|
if (!objects.length) return callback(null);
|
||||||
var keys = _(objects[0]).keys();
|
var keys = _(objects[0]).keys();
|
||||||
var placeholders = [];
|
var placeholders = [];
|
||||||
@@ -120,6 +150,8 @@ MBTiles.prototype.insert = function(table, objects, callback) {
|
|||||||
// - @param {Object} metadata key, value hash of metadata to be inserted.
|
// - @param {Object} metadata key, value hash of metadata to be inserted.
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.insertMetadata = function(data, callback) {
|
MBTiles.prototype.insertMetadata = function(data, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var metadata = _(data).map(function(value, key) {
|
var metadata = _(data).map(function(value, key) {
|
||||||
return { name: key, value: value};
|
return { name: key, value: value};
|
||||||
});
|
});
|
||||||
@@ -168,6 +200,8 @@ MBTiles.prototype.insertTiles = function(data, callback) {
|
|||||||
// be an object of the form { z: z, x: x, y: y, data: [Image buffer], keys: [] }.
|
// be an object of the form { z: z, x: x, y: y, data: [Image buffer], keys: [] }.
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.insertGrids = function(data, callback) {
|
MBTiles.prototype.insertGrids = function(data, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var that = this,
|
var that = this,
|
||||||
map = [],
|
map = [],
|
||||||
grids = [],
|
grids = [],
|
||||||
@@ -221,6 +255,8 @@ MBTiles.prototype.insertGrids = function(data, callback) {
|
|||||||
// - @param {Object} tile tile object to be inserted.
|
// - @param {Object} tile tile object to be inserted.
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.insertGridTiles = function(map, callback) {
|
MBTiles.prototype.insertGridTiles = function(map, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var stmt = this.db.prepare('UPDATE OR REPLACE map SET grid_id = ? WHERE ' +
|
var stmt = this.db.prepare('UPDATE OR REPLACE map SET grid_id = ? WHERE ' +
|
||||||
' zoom_level = ? AND tile_column = ? AND tile_row = ?');
|
' zoom_level = ? AND tile_column = ? AND tile_row = ?');
|
||||||
|
|
||||||
@@ -243,6 +279,8 @@ MBTiles.prototype.insertGridTiles = function(map, callback) {
|
|||||||
// - @param {Number} z tile z coordinate.
|
// - @param {Number} z tile z coordinate.
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.getTile = function(x, y, z, callback) {
|
MBTiles.prototype.getTile = function(x, y, z, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var mbtiles = this;
|
var mbtiles = this;
|
||||||
this.db.get('SELECT tile_data FROM tiles WHERE ' +
|
this.db.get('SELECT tile_data FROM tiles WHERE ' +
|
||||||
'zoom_level = ? AND tile_column = ? AND tile_row = ?',
|
'zoom_level = ? AND tile_column = ? AND tile_row = ?',
|
||||||
@@ -261,6 +299,8 @@ MBTiles.prototype.getTile = function(x, y, z, callback) {
|
|||||||
// - @param {Number} z tile z coordinate
|
// - @param {Number} z tile z coordinate
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.getGrid = function(x, y, z, callback) {
|
MBTiles.prototype.getGrid = function(x, y, z, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var that = this;
|
var that = this;
|
||||||
Step(
|
Step(
|
||||||
function() {
|
function() {
|
||||||
@@ -276,7 +316,9 @@ MBTiles.prototype.getGrid = function(x, y, z, callback) {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
function(err, row, rows) {
|
function(err, row, rows) {
|
||||||
if ((!row || !row.grid) || (err && err.errno == 1)) return callback('Grid does not exist');
|
if ((!row || !row.grid) || (err && err.errno == 1)) {
|
||||||
|
return callback(new Error('Grid does not exist'));
|
||||||
|
}
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -301,6 +343,8 @@ MBTiles.prototype.getGrid = function(x, y, z, callback) {
|
|||||||
//
|
//
|
||||||
// - @param {Function} callback
|
// - @param {Function} callback
|
||||||
MBTiles.prototype.metadata = function(key, callback) {
|
MBTiles.prototype.metadata = function(key, callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
this.db.get('SELECT value FROM metadata WHERE name = ?',
|
this.db.get('SELECT value FROM metadata WHERE name = ?',
|
||||||
key,
|
key,
|
||||||
function(err, row) {
|
function(err, row) {
|
||||||
@@ -314,6 +358,8 @@ MBTiles.prototype.metadata = function(key, callback) {
|
|||||||
// performing fallback queries if certain keys (like `bounds`, `minzoom`,
|
// performing fallback queries if certain keys (like `bounds`, `minzoom`,
|
||||||
// `maxzoom`) have not been provided.
|
// `maxzoom`) have not been provided.
|
||||||
MBTiles.prototype.getInfo = function(callback) {
|
MBTiles.prototype.getInfo = function(callback) {
|
||||||
|
if (typeof callback !== 'function') callback = noop;
|
||||||
|
|
||||||
var that = this;
|
var that = this;
|
||||||
var info = {};
|
var info = {};
|
||||||
info.basename = path.basename(that.filename);
|
info.basename = path.basename(that.filename);
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
var assert = require('assert');
|
|
||||||
var MBTiles = require('..').MBTiles;
|
|
||||||
|
|
||||||
var fixture = __dirname + '/fixtures/online.mbtiles';
|
|
||||||
|
|
||||||
exports['get online metadata'] = function(beforeExit) {
|
|
||||||
var completion = {};
|
|
||||||
|
|
||||||
var mbtiles = new MBTiles(fixture);
|
|
||||||
mbtiles.metadata('name', function(err, value) { if (err) throw err; completion.name = value; });
|
|
||||||
mbtiles.metadata('type', function(err, value) { if (err) throw err; completion.type = value; });
|
|
||||||
mbtiles.metadata('description', function(err, value) { if (err) throw err; completion.description = value; });
|
|
||||||
mbtiles.metadata('version', function(err, value) { if (err) throw err; completion.version = value; });
|
|
||||||
mbtiles.metadata('formatter', function(err, value) { if (err) throw err; completion.formatter = value; });
|
|
||||||
mbtiles.metadata('bounds', function(err, value) { if (err) throw err; completion.bounds = value; });
|
|
||||||
mbtiles.metadata('online', function(err, value) { if (err) throw err; completion.online = value; });
|
|
||||||
mbtiles.metadata('invalid', function(err, value) { completion.invalid = err.message; });
|
|
||||||
|
|
||||||
beforeExit(function() {
|
|
||||||
assert.deepEqual(completion, {
|
|
||||||
name: 'MapQuest streets',
|
|
||||||
type: 'baselayer',
|
|
||||||
description: 'MapQuest’s OpenStreetMap based street level tiles.',
|
|
||||||
version: '1.0.0',
|
|
||||||
formatter: null,
|
|
||||||
bounds: '-180,-90,180,90',
|
|
||||||
online: 'http://otile1.mqcdn.com/tiles/1.0.0/osm/%z/%x/%y.png',
|
|
||||||
invalid: 'Key does not exist'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
exports['get online tiles'] = function(beforeExit) {
|
|
||||||
var status = {
|
|
||||||
success: 0,
|
|
||||||
error: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
var mbtiles = new MBTiles(fixture);
|
|
||||||
|
|
||||||
mbtiles.db.serialize(function() {
|
|
||||||
mbtiles.db.run("DELETE FROM map");
|
|
||||||
mbtiles.db.run("DELETE FROM images");
|
|
||||||
});
|
|
||||||
|
|
||||||
mbtiles.tile(0, 0, 0, function(err, tile) {
|
|
||||||
if (err) throw new Error(err);
|
|
||||||
status.success++;
|
|
||||||
});
|
|
||||||
|
|
||||||
mbtiles.tile(0, 0, 18, function(err, tile) {
|
|
||||||
if (err) throw new Error(err);
|
|
||||||
status.success++;
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeExit(function() {
|
|
||||||
assert.equal(status.success, 2);
|
|
||||||
assert.equal(status.error, 0);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var MBTiles = require('..').MBTiles;
|
var MBTiles = require('..');
|
||||||
|
|
||||||
var fixtures = {
|
var fixtures = {
|
||||||
plain_1: __dirname + '/fixtures/plain_1.mbtiles',
|
plain_1: __dirname + '/fixtures/plain_1.mbtiles',
|
||||||
@@ -36,6 +36,7 @@ exports['get metadata'] = function(beforeExit) {
|
|||||||
|
|
||||||
function yieldsError(status, error, msg) {
|
function yieldsError(status, error, msg) {
|
||||||
return function(err) {
|
return function(err) {
|
||||||
|
assert.ok(err);
|
||||||
assert.equal(err.message, msg);
|
assert.equal(err.message, msg);
|
||||||
status[error]++;
|
status[error]++;
|
||||||
};
|
};
|
||||||
@@ -51,7 +52,7 @@ exports['get tiles'] = function(beforeExit) {
|
|||||||
fs.readdirSync(__dirname + '/fixtures/images/').forEach(function(file) {
|
fs.readdirSync(__dirname + '/fixtures/images/').forEach(function(file) {
|
||||||
var coords = file.match(/^plain_1_(\d+)_(\d+)_(\d+).png$/);
|
var coords = file.match(/^plain_1_(\d+)_(\d+)_(\d+).png$/);
|
||||||
if (coords) {
|
if (coords) {
|
||||||
mbtiles.tile(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, tile) {
|
mbtiles.getTile(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, tile) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.deepEqual(tile, fs.readFileSync(__dirname + '/fixtures/images/' + file));
|
assert.deepEqual(tile, fs.readFileSync(__dirname + '/fixtures/images/' + file));
|
||||||
status.success++;
|
status.success++;
|
||||||
@@ -59,13 +60,13 @@ exports['get tiles'] = function(beforeExit) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mbtiles.tile(1, 0, 0, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(1, 0, 0, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(0, 0, -1, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(0, 0, -1, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(0, -1, 0, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(0, -1, 0, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(1, 8, 3, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(1, 8, 3, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(-3, 0, 2, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(-3, 0, 2, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(2, 3, 18, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(2, 3, 18, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
mbtiles.tile(0, 0, 4, yieldsError(status, 'error', 'Tile does not exist'));
|
mbtiles.getTile(0, 0, 4, yieldsError(status, 'error', 'Tile does not exist'));
|
||||||
|
|
||||||
beforeExit(function() {
|
beforeExit(function() {
|
||||||
assert.equal(status.success, 285);
|
assert.equal(status.success, 285);
|
||||||
@@ -83,7 +84,7 @@ exports['get grids'] = function(beforeExit) {
|
|||||||
fs.readdirSync(__dirname + '/fixtures/grids/').forEach(function(file) {
|
fs.readdirSync(__dirname + '/fixtures/grids/').forEach(function(file) {
|
||||||
var coords = file.match(/^plain_2_(\d+)_(\d+)_(\d+).json$/);
|
var coords = file.match(/^plain_2_(\d+)_(\d+)_(\d+).json$/);
|
||||||
if (coords) {
|
if (coords) {
|
||||||
mbtiles.grid(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, grid) {
|
mbtiles.getGrid(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, grid) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.deepEqual(JSON.stringify(grid), fs.readFileSync(__dirname + '/fixtures/grids/' + file, 'utf8'));
|
assert.deepEqual(JSON.stringify(grid), fs.readFileSync(__dirname + '/fixtures/grids/' + file, 'utf8'));
|
||||||
status.success++;
|
status.success++;
|
||||||
@@ -91,21 +92,21 @@ exports['get grids'] = function(beforeExit) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mbtiles.grid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
|
|
||||||
mbtiles.grid(3, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(3, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(4, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(4, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(5, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(5, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(13, 4, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(13, 4, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(0, 14, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(0, 14, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(0, 7, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(0, 7, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(6, 2, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(6, 2, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
|
|
||||||
beforeExit(function() {
|
beforeExit(function() {
|
||||||
assert.equal(status.success, 241);
|
assert.equal(status.success, 241);
|
||||||
@@ -121,20 +122,20 @@ exports['get grids from file without interaction'] = function(beforeExit) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var mbtiles = new MBTiles(fixtures.plain_1);
|
var mbtiles = new MBTiles(fixtures.plain_1);
|
||||||
mbtiles.grid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(3, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(3, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(4, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(4, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(5, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(5, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(13, 4, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(13, 4, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 14, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 14, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 7, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 7, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(6, 2, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(6, 2, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
|
|
||||||
beforeExit(function() {
|
beforeExit(function() {
|
||||||
assert.equal(status.success, 0);
|
assert.equal(status.success, 0);
|
||||||
@@ -152,7 +153,7 @@ exports['get grids with different schema'] = function(beforeExit) {
|
|||||||
fs.readdirSync(__dirname + '/fixtures/grids/').forEach(function(file) {
|
fs.readdirSync(__dirname + '/fixtures/grids/').forEach(function(file) {
|
||||||
var coords = file.match(/^plain_2_(\d+)_(\d+)_(\d+).json$/);
|
var coords = file.match(/^plain_2_(\d+)_(\d+)_(\d+).json$/);
|
||||||
if (coords) {
|
if (coords) {
|
||||||
mbtiles.grid(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, grid) {
|
mbtiles.getGrid(coords[1] | 0, coords[2] | 0, coords[3] | 0, function(err, grid) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
assert.deepEqual(JSON.stringify(grid), fs.readFileSync(__dirname + '/fixtures/grids/' + file, 'utf8'));
|
assert.deepEqual(JSON.stringify(grid), fs.readFileSync(__dirname + '/fixtures/grids/' + file, 'utf8'));
|
||||||
status.success++;
|
status.success++;
|
||||||
@@ -160,21 +161,21 @@ exports['get grids with different schema'] = function(beforeExit) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mbtiles.grid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
|
|
||||||
mbtiles.grid(3, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(3, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(4, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(4, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(5, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(5, 8, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(13, 4, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(13, 4, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(0, 14, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(0, 14, 4, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(0, 7, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(0, 7, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
mbtiles.grid(6, 2, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
mbtiles.getGrid(6, 2, 3, yieldsError(status, 'error', 'Grid is invalid'));
|
||||||
|
|
||||||
beforeExit(function() {
|
beforeExit(function() {
|
||||||
assert.equal(status.success, 241);
|
assert.equal(status.success, 241);
|
||||||
@@ -190,20 +191,20 @@ exports['get grids from file without interaction'] = function(beforeExit) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var mbtiles = new MBTiles(fixtures.plain_1);
|
var mbtiles = new MBTiles(fixtures.plain_1);
|
||||||
mbtiles.grid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 0, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, -1, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, -1, 0, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(1, 8, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(-3, 0, 2, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(2, 3, 18, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 0, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(3, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(3, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(4, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(4, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(5, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(5, 8, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(13, 4, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(13, 4, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 14, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 14, 4, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(0, 7, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(0, 7, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
mbtiles.grid(6, 2, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
mbtiles.getGrid(6, 2, 3, yieldsError(status, 'error', 'Grid does not exist'));
|
||||||
|
|
||||||
beforeExit(function() {
|
beforeExit(function() {
|
||||||
assert.equal(status.success, 0);
|
assert.equal(status.success, 0);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var assert = require('assert');
|
var assert = require('assert');
|
||||||
var MBTiles = require('..').MBTiles;
|
var MBTiles = require('..');
|
||||||
|
|
||||||
var fixtureDir = __dirname + '/fixtures/output';
|
var fixtureDir = __dirname + '/fixtures/output';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user