summaryrefslogtreecommitdiff
path: root/platform/node/test/js/cancel.test.js
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2017-04-10 20:34:39 +0300
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2017-04-20 18:46:35 +0300
commit51ebb96b1da5217d6742ba05ea67a66c7787f0da (patch)
tree1871a944f7abd6bc35db4a8126e704f8981ef87d /platform/node/test/js/cancel.test.js
parentd767545f72e5a3e05d37e1d71b2c1f9a86522ca9 (diff)
downloadqtlocation-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.js116
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();
+ });
+})