diff options
| author | Igor Minar | 2011-03-30 09:35:59 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-03-30 15:22:22 -0700 | 
| commit | c06c5a36b108c6ad20776923d75eb6f32ace591b (patch) | |
| tree | e9a7e52b37702f175cb01aaefd0955c06a8d6be8 /test | |
| parent | 9985104dc0a2f96b1b318a8b662c0806a96f312b (diff) | |
| download | angular.js-c06c5a36b108c6ad20776923d75eb6f32ace591b.tar.bz2 | |
make xhr.cache optionally synchronous
- add `sync` flag xhr.cache
- change ng:include to use the sync flag
- change ng:view to use the sync flag
The end result is that there are fewer repaints in the browser,
which means less "blinking" that user sees.
Diffstat (limited to 'test')
| -rw-r--r-- | test/service/xhr.cacheSpec.js | 16 | ||||
| -rw-r--r-- | test/widgetsSpec.js | 4 | 
2 files changed, 16 insertions, 4 deletions
diff --git a/test/service/xhr.cacheSpec.js b/test/service/xhr.cacheSpec.js index 82b33b72..0a0140a6 100644 --- a/test/service/xhr.cacheSpec.js +++ b/test/service/xhr.cacheSpec.js @@ -107,6 +107,22 @@ describe('$xhr.cache', function() {    }); +  it('should call callback synchronously when sync flag is on', function() { +    $browserXhr.expectGET('/url').respond('+'); +    cache('GET', '/url', null, callback, false, true); +    expect(log).toEqual(''); //callback hasn't executed + +    $browserXhr.flush(); +    expect(log).toEqual('"+";'); //callback has executed + +    cache('GET', '/url', null, callback, false, true); +    expect(log).toEqual('"+";"+";'); //callback has executed + +    $browser.defer.flush(); +    expect(log).toEqual('"+";"+";'); //callback was not called again any more +  }); + +    it('should call eval after callbacks for both cache hit and cache miss execute', function() {      var eval = this.spyOn(scope, '$eval').andCallThrough(); diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 58cc33d8..4fb85c36 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -610,7 +610,6 @@ describe("widget", function(){        scope.url = 'myUrl';        scope.$service('$xhr.cache').data.myUrl = {value:'{{name}}'};        scope.$eval(); -      scope.$service('$browser').defer.flush();        expect(element.text()).toEqual('misko');        dealoc(scope);      }); @@ -623,7 +622,6 @@ describe("widget", function(){        scope.url = 'myUrl';        scope.$service('$xhr.cache').data.myUrl = {value:'{{name}}'};        scope.$eval(); -      scope.$service('$browser').defer.flush();        expect(element.text()).toEqual('igor'); @@ -640,7 +638,6 @@ describe("widget", function(){        scope.url = 'myUrl';        scope.$service('$xhr.cache').data.myUrl = {value:'{{c=c+1}}'};        scope.$eval(); -      scope.$service('$browser').defer.flush();        // this one should really be just '1', but due to lack of real events things are not working        // properly. see discussion at: http://is.gd/ighKk @@ -657,7 +654,6 @@ describe("widget", function(){        scope.url = 'myUrl';        scope.$service('$xhr.cache').data.myUrl = {value:'my partial'};        scope.$eval(); -      scope.$service('$browser').defer.flush();        expect(element.text()).toEqual('my partial');        expect(scope.loaded).toBe(true);        dealoc(element);  | 
