diff --git a/src/ng/jsonpCallbacks.js b/src/ng/jsonpCallbacks.js index fa71bdbcf92a..35699f6cb0e8 100644 --- a/src/ng/jsonpCallbacks.js +++ b/src/ng/jsonpCallbacks.js @@ -10,8 +10,8 @@ * how they vary compared to the requested url. */ var $jsonpCallbacksProvider = /** @this */ function() { - this.$get = ['$window', function($window) { - var callbacks = $window.angular.callbacks; + this.$get = function() { + var callbacks = angular.callbacks; var callbackMap = {}; function createCallback(callbackId) { @@ -78,5 +78,5 @@ var $jsonpCallbacksProvider = /** @this */ function() { delete callbackMap[callbackPath]; } }; - }]; + }; }; diff --git a/test/ng/jsonpCallbacksSpec.js b/test/ng/jsonpCallbacksSpec.js index f36f2aa2f900..260583f84d58 100644 --- a/test/ng/jsonpCallbacksSpec.js +++ b/test/ng/jsonpCallbacksSpec.js @@ -79,4 +79,17 @@ describe('$jsonpCallbacks', function() { expect($window.angular.callbacks._0).toBeUndefined(); })); }); + + describe('$window mocked', function() { + + beforeEach(module(function($provide) { + $provide.value('$window', {}); + })); + + it('should not throw when $window.angular does not exist', inject(function($injector) { + expect(function() { + $injector.get('$jsonpCallbacks'); + }).not.toThrow(); + })); + }); });