summaryrefslogtreecommitdiffstats
path: root/js/vendor/angular-mocks/angular-mocks.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/angular-mocks/angular-mocks.js')
-rw-r--r--js/vendor/angular-mocks/angular-mocks.js63
1 files changed, 51 insertions, 12 deletions
diff --git a/js/vendor/angular-mocks/angular-mocks.js b/js/vendor/angular-mocks/angular-mocks.js
index cbf36ffe2..6377f7b7f 100644
--- a/js/vendor/angular-mocks/angular-mocks.js
+++ b/js/vendor/angular-mocks/angular-mocks.js
@@ -1,5 +1,5 @@
/**
- * @license AngularJS v1.3.15
+ * @license AngularJS v1.3.19
* (c) 2010-2014 Google, Inc. http://angularjs.org
* License: MIT
*/
@@ -789,8 +789,8 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
};
});
- $provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser',
- function($delegate, $$asyncCallback, $timeout, $browser) {
+ $provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser', '$rootScope', '$$rAF',
+ function($delegate, $$asyncCallback, $timeout, $browser, $rootScope, $$rAF) {
var animate = {
queue: [],
cancel: $delegate.cancel,
@@ -810,6 +810,43 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
fn();
});
reflowQueue = [];
+ },
+ flush: function() {
+ $rootScope.$digest();
+ var doNextRun, somethingFlushed = false;
+ do {
+ doNextRun = false;
+ if (reflowQueue.length) {
+ doNextRun = somethingFlushed = true;
+ this.triggerReflow();
+ }
+ if ($$rAF.queue.length) {
+ doNextRun = somethingFlushed = true;
+ $$rAF.flush();
+ }
+ if ($$asyncCallback.queue.length) {
+ doNextRun = somethingFlushed = true;
+ this.triggerCallbackEvents();
+ }
+ if (timeoutsRemaining()) {
+ var oldValue = timeoutsRemaining();
+ this.triggerCallbackPromise();
+ var newValue = timeoutsRemaining();
+ if (newValue < oldValue) {
+ doNextRun = somethingFlushed = true;
+ }
+ }
+ } while (doNextRun);
+
+ if (!somethingFlushed) {
+ throw new Error('No pending animations ready to be closed or flushed');
+ }
+
+ $rootScope.$digest();
+
+ function timeoutsRemaining() {
+ return $browser.deferredFns.length;
+ }
}
};
@@ -1759,8 +1796,7 @@ angular.mock.$TimeoutDecorator = ['$delegate', '$browser', function($delegate, $
}];
angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
- var queue = [];
- var rafFn = function(fn) {
+ var queue, rafFn = function(fn) {
var index = queue.length;
queue.push(fn);
return function() {
@@ -1768,6 +1804,8 @@ angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
};
};
+ queue = rafFn.queue = [];
+
rafFn.supported = $delegate.supported;
rafFn.flush = function() {
@@ -1780,22 +1818,22 @@ angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
queue[i]();
}
- queue = [];
+ queue.length = 0;
};
return rafFn;
}];
angular.mock.$AsyncCallbackDecorator = ['$delegate', function($delegate) {
- var callbacks = [];
- var addFn = function(fn) {
- callbacks.push(fn);
+ var queue, addFn = function(fn) {
+ queue.push(fn);
};
+ queue = addFn.queue = [];
addFn.flush = function() {
- angular.forEach(callbacks, function(fn) {
+ angular.forEach(queue, function(fn) {
fn();
});
- callbacks = [];
+ queue.length = 0;
};
return addFn;
}];
@@ -2244,7 +2282,8 @@ if (window.jasmine || window.mocha) {
if (injector) {
injector.get('$rootElement').off();
- injector.get('$browser').pollFns.length = 0;
+ var $browser = injector.get('$browser');
+ if ($browser.pollFns) $browser.pollFns.length = 0;
}
// clean up jquery's fragment cache