aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorIgor Minar2011-03-30 09:35:59 -0700
committerIgor Minar2011-03-30 15:22:22 -0700
commitc06c5a36b108c6ad20776923d75eb6f32ace591b (patch)
treee9a7e52b37702f175cb01aaefd0955c06a8d6be8 /test
parent9985104dc0a2f96b1b318a8b662c0806a96f312b (diff)
downloadangular.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.js16
-rw-r--r--test/widgetsSpec.js4
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);