diff options
| author | Igor Minar | 2011-05-28 01:48:14 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-07-18 14:14:19 -0700 | 
| commit | 2b2df4754d8ee212741a78c068ba320d962556ba (patch) | |
| tree | 0a11ccedacf00fa3f7b987185bb912960ca4bf78 /src/angular-mocks.js | |
| parent | 120701b9d9ebdd9352c7fca2b8a381597a808362 (diff) | |
| download | angular.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.js | 19 | 
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; | 
