aboutsummaryrefslogtreecommitdiffstats
path: root/src/ngMock/angular-mocks.js
diff options
context:
space:
mode:
authorMatias Niemelä2014-02-24 18:14:29 -0500
committerMatias Niemelä2014-02-24 21:23:05 -0500
commit04d7317cdd95ba00783389f89f6e9a7e1fc418f8 (patch)
treec0eff0f1d143a3340c40b532a3ffd4149787d0a0 /src/ngMock/angular-mocks.js
parent2cd87dbb93497e38ffad016c1f5766c2bb56e604 (diff)
downloadangular.js-04d7317cdd95ba00783389f89f6e9a7e1fc418f8.tar.bz2
chore(core): introduce a wrapper for requestAnimationFrame
Diffstat (limited to 'src/ngMock/angular-mocks.js')
-rw-r--r--src/ngMock/angular-mocks.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js
index 9a45939c..efde0f3a 100644
--- a/src/ngMock/angular-mocks.js
+++ b/src/ngMock/angular-mocks.js
@@ -1656,6 +1656,34 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
return $delegate;
};
+angular.mock.$RAFDecorator = function($delegate) {
+ var queue = [];
+ var rafFn = function(fn) {
+ var index = queue.length;
+ queue.push(fn);
+ return function() {
+ queue.splice(index, 1);
+ };
+ };
+
+ rafFn.supported = $delegate.supported;
+
+ rafFn.flush = function() {
+ if(queue.length === 0) {
+ throw new Error('No rAF callbacks present');
+ }
+
+ var length = queue.length;
+ for(var i=0;i<length;i++) {
+ queue[i]();
+ }
+
+ queue = [];
+ };
+
+ return rafFn;
+};
+
/**
*
*/
@@ -1689,6 +1717,7 @@ angular.module('ngMock', ['ng']).provider({
$rootElement: angular.mock.$RootElementProvider
}).config(['$provide', function($provide) {
$provide.decorator('$timeout', angular.mock.$TimeoutDecorator);
+ $provide.decorator('$$rAF', angular.mock.$RAFDecorator);
}]);
/**