fix($http): pass event object to eventHandlers/uploadEventHandlers

Fixes #14436
This commit is contained in:
Georgios Kalpakas
2016-04-14 23:14:26 +03:00
committed by Peter Bacon Darwin
parent 0d55298b56
commit ddac3b3348
2 changed files with 13 additions and 8 deletions
+8 -4
View File
@@ -1276,13 +1276,17 @@ function $HttpProvider() {
if (eventHandlers) {
var applyHandlers = {};
forEach(eventHandlers, function(eventHandler, key) {
applyHandlers[key] = function() {
applyHandlers[key] = function(event) {
if (useApplyAsync) {
$rootScope.$applyAsync(eventHandler);
$rootScope.$applyAsync(callEventHandler);
} else if ($rootScope.$$phase) {
eventHandler();
callEventHandler();
} else {
$rootScope.$apply(eventHandler);
$rootScope.$apply(callEventHandler);
}
function callEventHandler() {
eventHandler(event);
}
};
});
+5 -4
View File
@@ -1066,14 +1066,15 @@ describe('$http', function() {
expect(mockXHR.$$events.progress).toEqual(jasmine.any(Function));
expect(mockXHR.upload.$$events.progress).toEqual(jasmine.any(Function));
var eventObj = {};
spyOn($rootScope, '$digest');
mockXHR.$$events.progress();
expect(progressFn).toHaveBeenCalledOnce();
mockXHR.$$events.progress(eventObj);
expect(progressFn).toHaveBeenCalledOnceWith(eventObj);
expect($rootScope.$digest).toHaveBeenCalledTimes(1);
mockXHR.upload.$$events.progress();
expect(uploadProgressFn).toHaveBeenCalledOnce();
mockXHR.upload.$$events.progress(eventObj);
expect(uploadProgressFn).toHaveBeenCalledOnceWith(eventObj);
expect($rootScope.$digest).toHaveBeenCalledTimes(2);
});
});