fix($http): pass event object to eventHandlers/uploadEventHandlers
Fixes #14436
This commit is contained in:
committed by
Peter Bacon Darwin
parent
0d55298b56
commit
ddac3b3348
+8
-4
@@ -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
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user