From a7150f1256f2a97a931b3c0d16eab70f45e81cae Mon Sep 17 00:00:00 2001 From: bolasblack Date: Wed, 3 Jul 2013 15:51:05 +0800 Subject: feat($http): accept function as headers value So we can request with dynamic header value. module.factory('Res', [ '$resource' '$routeParams' 'globalConfig' function($resource, $routeParams, globalConfig) { resource('/url/:id', {id: "@id"}, { patch: { method: 'patch', headers: { 'Authorization': function() { return "token " + globalConfig.token; } } } }); }]); --- test/ng/httpSpec.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'test/ng/httpSpec.js') diff --git a/test/ng/httpSpec.js b/test/ng/httpSpec.js index 8f2642f3..c21c6c23 100644 --- a/test/ng/httpSpec.js +++ b/test/ng/httpSpec.js @@ -784,6 +784,28 @@ describe('$http', function() { $httpBackend.flush(); })); + + it('should send execute result if header value is function', inject(function() { + var headerConfig = {'Accept': function() { return 'Rewritten'; }}; + + function checkHeaders(headers) { + return headers['Accept'] == 'Rewritten'; + } + + $httpBackend.expect('GET', '/url', undefined, checkHeaders).respond(''); + $httpBackend.expect('POST', '/url', undefined, checkHeaders).respond(''); + $httpBackend.expect('PUT', '/url', undefined, checkHeaders).respond(''); + $httpBackend.expect('PATCH', '/url', undefined, checkHeaders).respond(''); + $httpBackend.expect('DELETE', '/url', undefined, checkHeaders).respond(''); + + $http({url: '/url', method: 'GET', headers: headerConfig}); + $http({url: '/url', method: 'POST', headers: headerConfig}); + $http({url: '/url', method: 'PUT', headers: headerConfig}); + $http({url: '/url', method: 'PATCH', headers: headerConfig}); + $http({url: '/url', method: 'DELETE', headers: headerConfig}); + + $httpBackend.flush(); + })); }); -- cgit v1.2.3