Merge pull request #45 from mapbox/space-in-path-fix

fix error when mbtiles path contains a space
This commit is contained in:
Young Hahn
2014-11-13 10:53:12 -05:00
3 changed files with 19 additions and 2 deletions

View File

@@ -31,8 +31,11 @@ MBTiles.schema = fs.readFileSync(__dirname + '/schema.sql', 'utf8');
// - callback: Will be called when the resources have been acquired
// or acquisition failed.
require('util').inherits(MBTiles, require('events').EventEmitter)
function MBTiles(uri, callback) {
if (typeof uri === 'string') uri = url.parse(uri, true);
function MBTiles(uri, callback) {
if (typeof uri === 'string') {
uri = url.parse(uri, true);
uri.pathname = qs.unescape(uri.pathname);
}
else if (typeof uri.query === 'string') uri.query = qs.parse(uri.query);
if (!uri.pathname) {

BIN
test/fixtures/with spaces.mbtiles vendored Normal file

Binary file not shown.

14
test/spaces.test.js Normal file
View File

@@ -0,0 +1,14 @@
var tape = require('tape');
var MBTiles = require('..');
tape('opens mbtiles file with spaces', function(assert) {
new MBTiles(__dirname + '/fixtures/with spaces.mbtiles', function(err, mbtiles) {
assert.ifError(err);
mbtiles.getInfo(function(err, info) {
assert.ifError(err);
assert.deepEqual(info.level1, {level2:'property'});
assert.deepEqual(info.custom, ['custom list']);
assert.end();
});
});
});