aboutsummaryrefslogtreecommitdiffstats
path: root/test/service
diff options
context:
space:
mode:
authorKarl Seamon2011-07-29 18:32:30 -0400
committerIgor Minar2011-08-19 01:20:45 -0700
commit4ec1d8ee86e3138fb91543ca0dca28463895c090 (patch)
tree9f7fff13f177317ff15f8804789a44576a151908 /test/service
parentc37bfde9eb31556ee1eb146795b0c1f1504a4a26 (diff)
downloadangular.js-4ec1d8ee86e3138fb91543ca0dca28463895c090.tar.bz2
feat($xhr,$resource): expose response headers in callbacks
all $xhr*, $resource and related mocks now have access to headers from their callbacks
Diffstat (limited to 'test/service')
-rw-r--r--test/service/xhr.bulkSpec.js7
-rw-r--r--test/service/xhr.cacheSpec.js35
-rw-r--r--test/service/xhrSpec.js37
3 files changed, 53 insertions, 26 deletions
diff --git a/test/service/xhr.bulkSpec.js b/test/service/xhr.bulkSpec.js
index adcb61fa..c278fa50 100644
--- a/test/service/xhr.bulkSpec.js
+++ b/test/service/xhr.bulkSpec.js
@@ -18,8 +18,9 @@ describe('$xhr.bulk', function() {
});
- function callback(code, response) {
+ function callback(code, response, responseHeaders) {
expect(code).toEqual(200);
+ expect(responseHeaders()).toEqual({});
log = log + toJson(response) + ';';
}
@@ -81,6 +82,8 @@ describe('$xhr.bulk', function() {
$browserXhr.flush();
expect($xhrError).not.toHaveBeenCalled();
- expect(callback).toHaveBeenCalledWith(404, 'NotFound');
+ expect(callback.mostRecentCall.args[0]).toEqual(404);
+ expect(callback.mostRecentCall.args[1]).toEqual('NotFound');
+ expect(callback.mostRecentCall.args[2]()).toEqual({});
});
});
diff --git a/test/service/xhr.cacheSpec.js b/test/service/xhr.cacheSpec.js
index f4654cd4..cd42153f 100644
--- a/test/service/xhr.cacheSpec.js
+++ b/test/service/xhr.cacheSpec.js
@@ -1,7 +1,7 @@
'use strict';
describe('$xhr.cache', function() {
- var scope, $browser, $browserXhr, $xhrErr, cache, log;
+ var scope, $browser, $browserXhr, $xhrErr, cache, log, rHeaders;
beforeEach(function() {
scope = angular.scope({}, null, {'$xhr.error': $xhrErr = jasmine.createSpy('$xhr.error')});
@@ -9,6 +9,7 @@ describe('$xhr.cache', function() {
$browserXhr = $browser.xhr;
cache = scope.$service('$xhr.cache');
log = '';
+ rHeaders = {};
});
@@ -17,18 +18,21 @@ describe('$xhr.cache', function() {
});
- function callback(code, response) {
+ function callback(code, response, responseHeaders) {
expect(code).toEqual(200);
+ expect(responseHeaders()).toEqual(rHeaders);
log = log + toJson(response) + ';';
}
it('should cache requests', function(){
- $browserXhr.expectGET('/url').respond('first');
+ rHeaders = {foo: 'bar'};
+
+ $browserXhr.expectGET('/url').respond('first', rHeaders);
cache('GET', '/url', null, callback);
$browserXhr.flush();
- $browserXhr.expectGET('/url').respond('ERROR');
+ $browserXhr.expectGET('/url').respond('ERROR', rHeaders);
cache('GET', '/url', null, callback);
$browser.defer.flush();
expect(log).toEqual('"first";"first";');
@@ -40,11 +44,13 @@ describe('$xhr.cache', function() {
it('should first return cache request, then return server request', function(){
- $browserXhr.expectGET('/url').respond('first');
+ rHeaders = {foo: 'bar'};
+
+ $browserXhr.expectGET('/url').respond('first', rHeaders);
cache('GET', '/url', null, callback, true);
$browserXhr.flush();
- $browserXhr.expectGET('/url').respond('ERROR');
+ $browserXhr.expectGET('/url').respond('ERROR', rHeaders);
cache('GET', '/url', null, callback, true);
$browser.defer.flush();
expect(log).toEqual('"first";"first";');
@@ -55,7 +61,14 @@ describe('$xhr.cache', function() {
it('should serve requests from cache', function(){
- cache.data.url = {value:'123'};
+ rHeaders = {foo: 'bar'};
+
+ cache.data.url = {
+ value: '123',
+ headers: function() {
+ return rHeaders;
+ }
+ };
cache('GET', 'url', null, callback);
$browser.defer.flush();
expect(log).toEqual('"123";');
@@ -152,13 +165,17 @@ describe('$xhr.cache', function() {
cache('GET', '/url', null, successSpy, errorSpy, false, true);
$browserXhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
+ expect(errorSpy.mostRecentCall.args[0]).toEqual(500);
+ expect(errorSpy.mostRecentCall.args[1]).toEqual('error');
+ expect(errorSpy.mostRecentCall.args[2]()).toEqual({});
expect(successSpy).not.toHaveBeenCalled();
errorSpy.reset();
cache('GET', '/url', successSpy, errorSpy, false, true);
$browserXhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
+ expect(errorSpy.mostRecentCall.args[0]).toEqual(500);
+ expect(errorSpy.mostRecentCall.args[1]).toEqual('error');
+ expect(errorSpy.mostRecentCall.args[2]()).toEqual({});
expect(successSpy).not.toHaveBeenCalled();
});
diff --git a/test/service/xhrSpec.js b/test/service/xhrSpec.js
index 9f496535..12ee614d 100644
--- a/test/service/xhrSpec.js
+++ b/test/service/xhrSpec.js
@@ -18,15 +18,16 @@ describe('$xhr', function() {
});
- function callback(code, response) {
- log = log + '{code=' + code + '; response=' + toJson(response) + '}';
+ function callback(code, response, responseHeader) {
+ log = log + '{code=' + code + '; response=' + toJson(response) + '; responseHeaders=' +
+ toJson(responseHeader()) + '}';
}
it('should forward the request to $browser and decode JSON', function(){
- $browserXhr.expectGET('/reqGET').respond('first');
- $browserXhr.expectGET('/reqGETjson').respond('["second"]');
- $browserXhr.expectPOST('/reqPOST', {post:'data'}).respond('third');
+ $browserXhr.expectGET('/reqGET').respond('first', {h: 'first'});
+ $browserXhr.expectGET('/reqGETjson').respond('["second"]', {h: 'second'});
+ $browserXhr.expectPOST('/reqPOST', {post:'data'}).respond('third', {h: 'third'});
$xhr('GET', '/reqGET', null, callback);
$xhr('GET', '/reqGETjson', null, callback);
@@ -35,23 +36,23 @@ describe('$xhr', function() {
$browserXhr.flush();
expect(log).toEqual(
- '{code=200; response="third"}' +
- '{code=200; response=["second"]}' +
- '{code=200; response="first"}');
+ '{code=200; response="third"; responseHeaders={"h":"third"}}' +
+ '{code=200; response=["second"]; responseHeaders={"h":"second"}}' +
+ '{code=200; response="first"; responseHeaders={"h":"first"}}');
});
it('should allow all 2xx requests', function(){
- $browserXhr.expectGET('/req1').respond(200, '1');
+ $browserXhr.expectGET('/req1').respond(200, '1', {h: '1'});
$xhr('GET', '/req1', null, callback);
$browserXhr.flush();
- $browserXhr.expectGET('/req2').respond(299, '2');
+ $browserXhr.expectGET('/req2').respond(299, '2', {h: '2'});
$xhr('GET', '/req2', null, callback);
$browserXhr.flush();
expect(log).toEqual(
- '{code=200; response="1"}' +
- '{code=299; response="2"}');
+ '{code=200; response="1"; responseHeaders={"h":"1"}}' +
+ '{code=299; response="2"; responseHeaders={"h":"2"}}');
});
@@ -120,18 +121,24 @@ describe('$xhr', function() {
var errorSpy = jasmine.createSpy('error'),
successSpy = jasmine.createSpy('success');
- $browserXhr.expectGET('/url').respond(500, 'error');
+ $browserXhr.expectGET('/url').respond(500, 'error', {foo: 'bar'});
$xhr('GET', '/url', null, successSpy, errorSpy);
$browserXhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
+ expect(errorSpy.mostRecentCall.args[0]).toEqual(500);
+ expect(errorSpy.mostRecentCall.args[1]).toEqual('error');
+ expect(errorSpy.mostRecentCall.args[2]('foo')).toEqual('bar');
+ expect(errorSpy.mostRecentCall.args[2]()).toEqual({foo: 'bar'});
expect(successSpy).not.toHaveBeenCalled();
errorSpy.reset();
$xhr('GET', '/url', successSpy, errorSpy);
$browserXhr.flush();
- expect(errorSpy).toHaveBeenCalledWith(500, 'error');
+ expect(errorSpy.mostRecentCall.args[0]).toEqual(500);
+ expect(errorSpy.mostRecentCall.args[1]).toEqual('error');
+ expect(errorSpy.mostRecentCall.args[2]('foo')).toEqual('bar');
+ expect(errorSpy.mostRecentCall.args[2]()).toEqual({foo: 'bar'});
expect(successSpy).not.toHaveBeenCalled();
});