diff options
| author | Misko Hevery | 2013-03-20 16:24:23 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2013-04-02 14:05:06 -0700 | 
| commit | 0b6f1ce5f89f47f9302ff1e8cd8f4b92f837c413 (patch) | |
| tree | 8cbc0c86024dd4f97d0aa54e0c9b7df9b0d56b86 /src/ngMock/angular-mocks.js | |
| parent | 4bfb66ce0be46d3a0e9da2f80f3e1d0c2b559828 (diff) | |
| download | angular.js-0b6f1ce5f89f47f9302ff1e8cd8f4b92f837c413.tar.bz2 | |
feat(ngAnimate): add support for animation
Diffstat (limited to 'src/ngMock/angular-mocks.js')
| -rw-r--r-- | src/ngMock/angular-mocks.js | 51 | 
1 files changed, 51 insertions, 0 deletions
| diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index 8c5686ac..1f96c1e5 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -587,6 +587,57 @@ angular.mock.$LogProvider = function() {    angular.mock.TzDate.prototype = Date.prototype;  })(); +/** + * @ngdoc function + * @name angular.mock.createMockWindow + * @description + * + * This function creates a mock window object useful for controlling access ot setTimeout, but mocking out + * sufficient window's properties to allow Angular to execute. + * + * @example + * + * <pre> +    beforeEach(module(function($provide) { +      $provide.value('$window', window = angular.mock.createMockWindow()); +    })); + +    it('should do something', inject(function($window) { +      var val = null; +      $window.setTimeout(function() { val = 123; }, 10); +      expect(val).toEqual(null); +      window.setTimeout.expect(10).process(); +      expect(val).toEqual(123); +    }); + * </pre> + * + */ +angular.mock.createMockWindow = function() { +  var mockWindow = {}; +  var setTimeoutQueue = []; + +  mockWindow.document = window.document; +  mockWindow.getComputedStyle = angular.bind(window, window.getComputedStyle); +  mockWindow.scrollTo = angular.bind(window, window.scrollTo); +  mockWindow.navigator = window.navigator; +  mockWindow.setTimeout = function(fn, delay) { +    setTimeoutQueue.push({fn: fn, delay: delay}); +  }; +  mockWindow.setTimeout.queue = setTimeoutQueue; +  mockWindow.setTimeout.expect = function(delay) { +    if (setTimeoutQueue.length > 0) { +      return { +        process: function() { +          setTimeoutQueue.shift().fn(); +        } +      }; +    } else { +      expect('SetTimoutQueue empty. Expecting delay of ').toEqual(delay); +    } +  }; + +  return mockWindow; +};  /**   * @ngdoc function | 
