Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
fix($http): allow empty responses to be cached
Browse files Browse the repository at this point in the history
Closes #3809
  • Loading branch information
jankuca authored and IgorMinar committed Sep 2, 2013
1 parent 44ad61e commit 8e48c4f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/ng/http.js
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ function $HttpProvider() {

if (cache) {
cachedResp = cache.get(url);
if (cachedResp) {
if (isDefined(cachedResp)) {
if (cachedResp.then) {
// cached request has already been sent, but there is no response yet
cachedResp.then(removePendingReq, removePendingReq);
Expand All @@ -912,7 +912,7 @@ function $HttpProvider() {
}

// if we won't have the response in cache, send the request to the backend
if (!cachedResp) {
if (isUndefined(cachedResp)) {
$httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout,
config.withCredentials, config.responseType);
}
Expand Down
14 changes: 14 additions & 0 deletions test/ng/httpSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -1248,6 +1248,20 @@ describe('$http', function() {
});


it('should allow the cached value to be an empty string', function () {
cache.put('/abc', '');

callback.andCallFake(function (response, status, headers) {
expect(response).toBe('');
expect(status).toBe(200);
});

$http({method: 'GET', url: '/abc', cache: cache}).success(callback);
$rootScope.$digest();
expect(callback).toHaveBeenCalled();
});


it('should default to status code 200 and empty headers if cache contains a non-array element',
inject(function($rootScope) {
cache.put('/myurl', 'simple response');
Expand Down

0 comments on commit 8e48c4f

Please sign in to comment.