diff --git a/.travis.yml b/.travis.yml index 1ab0bcd..036dc72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,11 @@ -before_install: - - sudo apt-get install -y pkg-config libcairo2-dev libjpeg8-dev libgif-dev - language: node_js node_js: - "0.10" +addons: + apt: + packages: + - pkg-config + - libcairo2-dev + - libjpeg8-dev + - libgif-dev +sudo: false diff --git a/lib/torque/animator.js b/lib/torque/animator.js index f908bc6..3ea8da0 100644 --- a/lib/torque/animator.js +++ b/lib/torque/animator.js @@ -83,7 +83,7 @@ var cancelAnimationFrame = global.cancelAnimationFrame this.range = torque.math.linear(0, this.options.steps); this.rangeInv = this.range.invert(); this.time(this._time); - this.start(); + this.running? this.start(): this.pause(); return this; }, diff --git a/lib/torque/gmaps/torque.js b/lib/torque/gmaps/torque.js index deb8deb..bee897c 100644 --- a/lib/torque/gmaps/torque.js +++ b/lib/torque/gmaps/torque.js @@ -270,7 +270,7 @@ GMapsTorqueLayer.prototype = torque.extend({}, * set the cartocss for the current renderer */ setCartoCSS: function(cartocss) { - if (this.provider.options.named_map) throw new Error("CartoCSS style on named maps is read-only"); + if (this.provider && this.provider.options.named_map) throw new Error("CartoCSS style on named maps is read-only"); var shader = new carto.RendererJS().render(cartocss); this.shader = shader; if (this.renderer) { diff --git a/test/animator.js b/test/animator.js index d77e858..4c6eeaf 100644 --- a/test/animator.js +++ b/test/animator.js @@ -2,45 +2,51 @@ var torque = require('../lib/torque'); var sinon = require('sinon'); require('phantomjs-polyfill'); -var animator; +QUnit.module('animator'); -QUnit.module('animator', { - beforeEach: function() { - animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 10}); - } -}); - -asyncTest('time moves', function(assert) { - animator.start(); +test('time moves', function(assert) { + var done = assert.async(); + var animatora = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); + animatora.start(); setTimeout(function(){ - assert.notEqual(animator._time, 0); - QUnit.start(); - }, 100) - animator.pause(); + assert.notEqual(animatora._time, 0); + done(); + }, 20) + animatora.pause(); }); test("rescale should resume animation if previously playing", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); animator.toggle(); animator.rescale(); assert.ok(animator.running); animator.pause() }); -asyncTest("onStart runs properly", function(assert){ - animator.options.onStart = function(){ +test("rescale shouldn't resume animation if previously paused", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); + animator.pause(); + animator.rescale(); + assert.notOk(animator.running); +}); + +test("onStart runs properly", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); + animator.options.onStop = function(){ assert.ok(true); animator.pause(); - QUnit.start(); }; - animator.start(); + animator.stop(); }); test("stop should take the pointer to position zero", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); animator.stop() assert.equal(animator._time, 0); }); test("stop should call onStop", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); animator.options.onStop = function(){ assert.ok(true); animator.pause(); @@ -49,29 +55,30 @@ test("stop should call onStop", function(assert){ }); test("altering steps should rescale", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); sinon.spy(animator, "rescale"); animator.steps(600); assert.ok(animator.rescale.calledOnce); }); -asyncTest("tick should set time to zero if steps are bigger than range", function(assert){ - animator.start(); +test("tick should set time to zero if steps are bigger than range", function(assert){ + var done = assert.async(); + var animatorb = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); + animatorb.start(); + animatorb.step(800); setTimeout(function(){ - animator._time = 0; - animator.step(800); - assert.ok(animator.step() < 800); - QUnit.start(); - }, 200); - animator.pause(); + console.log(animatorb.step()); + assert.ok(animatorb.step() < 800); + done(); + }, 20); + animatorb.pause(); }); -QUnit.test("tick should pause animation on end if loop is disabled", function(assert){ +test("tick should pause animation on end if loop is disabled", function(assert){ + var animator = new torque.Animator(function(){}, {steps: 500, animationDuration: 2}); animator.options.loop = false; - var done = assert.async(); animator.toggle(); - setTimeout(function(){ - assert.notEqual(animator._time, 0); - done(); - }, 100) - animator.pause(); + animator.step(600); + assert.equal(animator._time,animator.options.animationDuration); + });