aboutsummaryrefslogtreecommitdiffstats
path: root/src/angular-mocks.js
diff options
context:
space:
mode:
authorIgor Minar2011-05-28 01:48:14 -0700
committerIgor Minar2011-07-18 14:14:19 -0700
commit2b2df4754d8ee212741a78c068ba320d962556ba (patch)
tree0a11ccedacf00fa3f7b987185bb912960ca4bf78 /src/angular-mocks.js
parent120701b9d9ebdd9352c7fca2b8a381597a808362 (diff)
downloadangular.js-2b2df4754d8ee212741a78c068ba320d962556ba.tar.bz2
feat($browser.$defer.cancel): support canceling defered tasks
Diffstat (limited to 'src/angular-mocks.js')
-rw-r--r--src/angular-mocks.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/angular-mocks.js b/src/angular-mocks.js
index a4941288..20423f05 100644
--- a/src/angular-mocks.js
+++ b/src/angular-mocks.js
@@ -281,15 +281,32 @@ function MockBrowser() {
self.cookieHash = {};
self.lastCookieHash = {};
self.deferredFns = [];
+ self.deferredNextId = 0;
self.defer = function(fn, delay) {
delay = delay || 0;
- self.deferredFns.push({time:(self.defer.now + delay), fn:fn});
+ self.deferredFns.push({time:(self.defer.now + delay), fn:fn, id: self.deferredNextId});
self.deferredFns.sort(function(a,b){ return a.time - b.time;});
+ return self.deferredNextId++;
};
+
self.defer.now = 0;
+
+ self.defer.cancel = function(deferId) {
+ var fnIndex;
+
+ forEach(self.deferredFns, function(fn, index) {
+ if (fn.id === deferId) fnIndex = index;
+ });
+
+ if (fnIndex) {
+ self.deferredFns.splice(fnIndex, 1);
+ }
+ }
+
+
self.defer.flush = function(delay) {
if (angular.isDefined(delay)) {
self.defer.now += delay;