diff options
Diffstat (limited to 'js/vendor/angular-mocks/angular-mocks.js')
-rw-r--r-- | js/vendor/angular-mocks/angular-mocks.js | 63 |
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 |