diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js index 269db9227a3b..1716ee8a4151 100644 --- a/src/ngAnimate/animate.js +++ b/src/ngAnimate/animate.js @@ -1112,7 +1112,7 @@ angular.module('ngAnimate', ['ng']) //but it may not need to cancel out the existing timeout //if the timestamp is less than the previous one - var futureTimestamp = Date.now() + (totalTime * 1000); + var futureTimestamp = Date.now() + totalTime; if(futureTimestamp <= closingTimestamp) { return; } diff --git a/test/ngAnimate/animateSpec.js b/test/ngAnimate/animateSpec.js index 69cb657336fb..87e7620e1e23 100644 --- a/test/ngAnimate/animateSpec.js +++ b/test/ngAnimate/animateSpec.js @@ -1332,13 +1332,20 @@ describe("ngAnimate", function() { })); it("should intelligently cancel former timeouts and close off a series of elements a final timeout", function() { + var currentTimestamp = Date.now(); + spyOn(Date,'now').andCallFake(function() { + return currentTimestamp; + }); + var cancellations = 0; module(function($provide) { $provide.decorator('$timeout', function($delegate) { var _cancel = $delegate.cancel; - $delegate.cancel = function() { - cancellations++; - return _cancel.apply($delegate, arguments); + $delegate.cancel = function(timer) { + if(timer) { + cancellations++; + return _cancel.apply($delegate, arguments); + } }; return $delegate; }); @@ -1346,10 +1353,22 @@ describe("ngAnimate", function() { inject(function($animate, $rootScope, $compile, $sniffer, $timeout) { if (!$sniffer.transitions) return; - ss.addRule('.animate-me', '-webkit-transition:1s linear all;' + + ss.addRule('.animate-me div', '-webkit-transition:1s linear all;' + 'transition:1s linear all;'); - element = $compile(html('