aboutsummaryrefslogtreecommitdiffstats
path: root/test/service/xhr.cacheSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/service/xhr.cacheSpec.js')
-rw-r--r--test/service/xhr.cacheSpec.js175
1 files changed, 0 insertions, 175 deletions
diff --git a/test/service/xhr.cacheSpec.js b/test/service/xhr.cacheSpec.js
deleted file mode 100644
index b6eeb6aa..00000000
--- a/test/service/xhr.cacheSpec.js
+++ /dev/null
@@ -1,175 +0,0 @@
-'use strict';
-
-describe('$xhr.cache', function() {
- var log;
-
- beforeEach(inject(function($provide) {
- $provide.value('$xhr.error', jasmine.createSpy('$xhr.error'));
- $provide.factory('$xhrError', ['$xhr.error', identity]);
- $provide.factory('$xhrBulk', ['$xhr.bulk', identity]);
- $provide.factory('$xhrCache', ['$xhr.cache', identity]);
- log = '';
- }));
-
-
- function callback(code, response) {
- expect(code).toEqual(200);
- log = log + toJson(response) + ';';
- }
-
-
- it('should cache requests', inject(function($browser, $xhrCache) {
- $browser.xhr.expectGET('/url').respond('first');
- $xhrCache('GET', '/url', null, callback);
- $browser.xhr.flush();
-
- $browser.xhr.expectGET('/url').respond('ERROR');
- $xhrCache('GET', '/url', null, callback);
- $browser.defer.flush();
- expect(log).toEqual('"first";"first";');
-
- $xhrCache('GET', '/url', null, callback, false);
- $browser.defer.flush();
- expect(log).toEqual('"first";"first";"first";');
- }));
-
-
- it('should first return cache request, then return server request', inject(function($browser, $xhrCache) {
- $browser.xhr.expectGET('/url').respond('first');
- $xhrCache('GET', '/url', null, callback, true);
- $browser.xhr.flush();
-
- $browser.xhr.expectGET('/url').respond('ERROR');
- $xhrCache('GET', '/url', null, callback, true);
- $browser.defer.flush();
- expect(log).toEqual('"first";"first";');
-
- $browser.xhr.flush();
- expect(log).toEqual('"first";"first";"ERROR";');
- }));
-
-
- it('should serve requests from cache', inject(function($browser, $xhrCache) {
- $xhrCache.data.url = {value:'123'};
- $xhrCache('GET', 'url', null, callback);
- $browser.defer.flush();
- expect(log).toEqual('"123";');
-
- $xhrCache('GET', 'url', null, callback, false);
- $browser.defer.flush();
- expect(log).toEqual('"123";"123";');
- }));
-
-
- it('should keep track of in flight requests and request only once', inject(function($browser, $xhrCache, $xhrBulk) {
- $xhrBulk.urls['/bulk'] = {
- match:function(url){
- return url == '/url';
- }
- };
- $browser.xhr.expectPOST('/bulk', {
- requests:[{method:'GET', url:'/url', data: null}]
- }).respond([
- {status:200, response:'123'}
- ]);
- $xhrCache('GET', '/url', null, callback);
- $xhrCache('GET', '/url', null, callback);
- $xhrCache.delegate.flush();
- $browser.xhr.flush();
- expect(log).toEqual('"123";"123";');
- }));
-
-
- it('should clear cache on non GET', inject(function($browser, $xhrCache) {
- $browser.xhr.expectPOST('abc', {}).respond({});
- $xhrCache.data.url = {value:123};
- $xhrCache('POST', 'abc', {});
- expect($xhrCache.data.url).toBeUndefined();
- }));
-
-
- it('should call callback asynchronously for both cache hit and cache miss', inject(function($browser, $xhrCache) {
- $browser.xhr.expectGET('/url').respond('+');
- $xhrCache('GET', '/url', null, callback);
- expect(log).toEqual(''); //callback hasn't executed
-
- $browser.xhr.flush();
- expect(log).toEqual('"+";'); //callback has executed
-
- $xhrCache('GET', '/url', null, callback);
- expect(log).toEqual('"+";'); //callback hasn't executed
-
- $browser.defer.flush();
- expect(log).toEqual('"+";"+";'); //callback has executed
- }));
-
-
- it('should call callback synchronously when sync flag is on', inject(function($browser, $xhrCache) {
- $browser.xhr.expectGET('/url').respond('+');
- $xhrCache('GET', '/url', null, callback, false, true);
- expect(log).toEqual(''); //callback hasn't executed
-
- $browser.xhr.flush();
- expect(log).toEqual('"+";'); //callback has executed
-
- $xhrCache('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',
- inject(function($browser, $xhrCache, $rootScope) {
- var flushSpy = this.spyOn($rootScope, '$digest').andCallThrough();
-
- $browser.xhr.expectGET('/url').respond('+');
- $xhrCache('GET', '/url', null, callback);
- expect(flushSpy).not.toHaveBeenCalled();
-
- $browser.xhr.flush();
- expect(flushSpy).toHaveBeenCalled();
-
- flushSpy.reset(); //reset the spy
-
- $xhrCache('GET', '/url', null, callback);
- expect(flushSpy).not.toHaveBeenCalled();
-
- $browser.defer.flush();
- expect(flushSpy).toHaveBeenCalled();
- }));
-
- it('should call the error callback on error if provided', inject(function($browser, $xhrCache) {
- var errorSpy = jasmine.createSpy('error'),
- successSpy = jasmine.createSpy('success');
-
- $browser.xhr.expectGET('/url').respond(500, 'error');
-
- $xhrCache('GET', '/url', null, successSpy, errorSpy, false, true);
- $browser.xhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
- expect(successSpy).not.toHaveBeenCalled();
-
- errorSpy.reset();
- $xhrCache('GET', '/url', successSpy, errorSpy, false, true);
- $browser.xhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
- expect(successSpy).not.toHaveBeenCalled();
- }));
-
- it('should call the $xhr.error on error if error callback not provided',
- inject(function($browser, $xhrCache, $xhrError) {
- var errorSpy = jasmine.createSpy('error'),
- successSpy = jasmine.createSpy('success');
-
- $browser.xhr.expectGET('/url').respond(500, 'error');
- $xhrCache('GET', '/url', null, successSpy, false, true);
- $browser.xhr.flush();
-
- expect(successSpy).not.toHaveBeenCalled();
- expect($xhrError).toHaveBeenCalledWith(
- {method: 'GET', url: '/url', data: null, success: successSpy},
- {status: 500, body: 'error'});
- }));
-});