mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-19 08:00:23 +00:00
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
|
|
describe('$updateView', function() {
|
||
|
|
var scope, browser, evalCount, $updateView;
|
||
|
|
|
||
|
|
beforeEach(function(){
|
||
|
|
browser = new MockBrowser();
|
||
|
|
// Pretend that you are real Browser so that we see the delays
|
||
|
|
browser.isMock = false;
|
||
|
|
browser.defer = jasmine.createSpy('defer');
|
||
|
|
|
||
|
|
scope = angular.scope(null, null, {$browser:browser});
|
||
|
|
$updateView = scope.$service('$updateView');
|
||
|
|
scope.$onEval(function(){ evalCount++; });
|
||
|
|
evalCount = 0;
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
afterEach(function(){
|
||
|
|
dealoc(scope);
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
it('should eval root scope after a delay', function(){
|
||
|
|
$updateView();
|
||
|
|
expect(evalCount).toEqual(0);
|
||
|
|
expect(browser.defer).toHaveBeenCalled();
|
||
|
|
expect(browser.defer.mostRecentCall.args[1]).toEqual(25);
|
||
|
|
browser.defer.mostRecentCall.args[0]();
|
||
|
|
expect(evalCount).toEqual(1);
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
it('should allow changing of delay time', function(){
|
||
|
|
var oldValue = angular.service('$updateView').delay;
|
||
|
|
angular.service('$updateView').delay = 50;
|
||
|
|
$updateView();
|
||
|
|
expect(evalCount).toEqual(0);
|
||
|
|
expect(browser.defer).toHaveBeenCalled();
|
||
|
|
expect(browser.defer.mostRecentCall.args[1]).toEqual(50);
|
||
|
|
angular.service('$updateView').delay = oldValue;
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
it('should ignore multiple requests for update', function(){
|
||
|
|
$updateView();
|
||
|
|
$updateView();
|
||
|
|
expect(evalCount).toEqual(0);
|
||
|
|
expect(browser.defer).toHaveBeenCalled();
|
||
|
|
expect(browser.defer.callCount).toEqual(1);
|
||
|
|
browser.defer.mostRecentCall.args[0]();
|
||
|
|
expect(evalCount).toEqual(1);
|
||
|
|
});
|
||
|
|
|
||
|
|
|
||
|
|
it('should update immediatelly in test/mock mode', function(){
|
||
|
|
scope = angular.scope();
|
||
|
|
scope.$onEval(function(){ evalCount++; });
|
||
|
|
expect(evalCount).toEqual(0);
|
||
|
|
scope.$service('$updateView')();
|
||
|
|
expect(evalCount).toEqual(1);
|
||
|
|
});
|
||
|
|
});
|