117 lines
2.6 KiB
JavaScript
117 lines
2.6 KiB
JavaScript
'use strict';
|
|
|
|
var mockfs = require('./../mockfs');
|
|
var mbgl = require('../../index');
|
|
var test = require('tape');
|
|
|
|
var options = {
|
|
request: function(req, callback) {
|
|
callback(null, { data: mockfs.dataForRequest(req) });
|
|
},
|
|
ratio: 1,
|
|
};
|
|
|
|
test('Cancel', function(t) {
|
|
t.test('sanity', function(t) {
|
|
var renderCount = 0;
|
|
var cancelCount = 0;
|
|
var map = new mbgl.Map(options);
|
|
|
|
var renderCallback = function(err, pixels) {
|
|
if (err) {
|
|
cancelCount++;
|
|
} else {
|
|
renderCount++;
|
|
}
|
|
};
|
|
|
|
map.load(mockfs.style_vector);
|
|
|
|
map.render({ zoom: 16 }, renderCallback);
|
|
map.cancel();
|
|
|
|
map.render({ zoom: 16 }, renderCallback);
|
|
map.cancel();
|
|
|
|
map.render({ zoom: 16 }, renderCallback);
|
|
map.cancel();
|
|
|
|
t.equal(renderCount, 0);
|
|
t.equal(cancelCount, 3);
|
|
|
|
t.end();
|
|
});
|
|
|
|
t.test('render after cancel', function(t) {
|
|
var map = new mbgl.Map(options);
|
|
var renderCallback = function(err, pixels) { if (!err) t.end(); };
|
|
|
|
map.load(mockfs.style_vector);
|
|
|
|
map.render({ zoom: 16 }, renderCallback);
|
|
map.cancel();
|
|
|
|
map.render({ zoom: 16 }, renderCallback);
|
|
});
|
|
|
|
t.test('cancel after cancel', function(t) {
|
|
var cancelCount = 0;
|
|
var map = new mbgl.Map(options);
|
|
|
|
map.load(mockfs.style_vector);
|
|
map.render({ zoom: 16 }, function(err, pixels) {
|
|
cancelCount++;
|
|
});
|
|
|
|
map.cancel();
|
|
|
|
t.throws(function() {
|
|
map.cancel();
|
|
}, 'already canceled');
|
|
|
|
t.equal(cancelCount, 1);
|
|
|
|
t.end();
|
|
});
|
|
|
|
t.test('cancel without rendering', function(t) {
|
|
var cancelCount = 0;
|
|
var map = new mbgl.Map(options);
|
|
|
|
map.load(mockfs.style_vector);
|
|
|
|
t.throws(function() {
|
|
map.cancel();
|
|
}, 'nothing to cancel');
|
|
|
|
t.end();
|
|
});
|
|
|
|
t.test('release after cancel', function(t) {
|
|
var map = new mbgl.Map(options);
|
|
|
|
map.load(mockfs.style_vector);
|
|
map.render({ zoom: 16 }, function(err, pixels) {});
|
|
|
|
map.cancel();
|
|
map.release();
|
|
|
|
t.end();
|
|
});
|
|
|
|
t.test('cancel after release', function(t) {
|
|
var map = new mbgl.Map(options);
|
|
|
|
map.load(mockfs.style_vector);
|
|
map.render({ zoom: 16 }, function(err, pixels) {});
|
|
|
|
map.release();
|
|
|
|
t.throws(function() {
|
|
map.cancel();
|
|
}, 'map resources already released');
|
|
|
|
t.end();
|
|
});
|
|
})
|