diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2017-04-10 20:34:39 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2017-04-20 18:46:35 +0300 |
commit | 51ebb96b1da5217d6742ba05ea67a66c7787f0da (patch) | |
tree | 1871a944f7abd6bc35db4a8126e704f8981ef87d /platform/node/test/js/cancel.test.js | |
parent | d767545f72e5a3e05d37e1d71b2c1f9a86522ca9 (diff) | |
download | qtlocation-mapboxgl-51ebb96b1da5217d6742ba05ea67a66c7787f0da.tar.gz |
[node] Add map.cancel()
Cancels an ongoing rendering.
Diffstat (limited to 'platform/node/test/js/cancel.test.js')
-rw-r--r-- | platform/node/test/js/cancel.test.js | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/platform/node/test/js/cancel.test.js b/platform/node/test/js/cancel.test.js new file mode 100644 index 0000000000..17525fb863 --- /dev/null +++ b/platform/node/test/js/cancel.test.js @@ -0,0 +1,116 @@ +'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(); + }); +}) |