Support onLoad and onError on <link> (#11825)
* Support link event on Fiber component * Update unit test * prettier format * Update test description * Update ReactDOMComponent-test.js
This commit is contained in:
parent
4e044f553f
commit
e74f3ce565
|
@ -1310,6 +1310,42 @@ describe('ReactDOMComponent', () => {
|
|||
expect(console.log.calls.argsFor(1)[0]).toContain('onLoad called');
|
||||
}
|
||||
});
|
||||
|
||||
it('should receive a load event on <link> elements', () => {
|
||||
const container = document.createElement('div');
|
||||
const onLoad = jest.fn();
|
||||
|
||||
ReactDOM.render(
|
||||
<link href="http://example.org/link" onLoad={onLoad} />,
|
||||
container,
|
||||
);
|
||||
|
||||
const loadEvent = document.createEvent('Event');
|
||||
const link = container.getElementsByTagName('link')[0];
|
||||
|
||||
loadEvent.initEvent('load', false, false);
|
||||
link.dispatchEvent(loadEvent);
|
||||
|
||||
expect(onLoad).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should receive an error event on <link> elements', () => {
|
||||
const container = document.createElement('div');
|
||||
const onError = jest.fn();
|
||||
|
||||
ReactDOM.render(
|
||||
<link href="http://example.org/link" onError={onError} />,
|
||||
container,
|
||||
);
|
||||
|
||||
const errorEvent = document.createEvent('Event');
|
||||
const link = container.getElementsByTagName('link')[0];
|
||||
|
||||
errorEvent.initEvent('error', false, false);
|
||||
link.dispatchEvent(errorEvent);
|
||||
|
||||
expect(onError).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('updateComponent', () => {
|
||||
|
|
|
@ -485,6 +485,7 @@ export function setInitialProperties(
|
|||
break;
|
||||
case 'img':
|
||||
case 'image':
|
||||
case 'link':
|
||||
trapBubbledEvent('topError', 'error', domElement);
|
||||
trapBubbledEvent('topLoad', 'load', domElement);
|
||||
props = rawProps;
|
||||
|
@ -870,6 +871,7 @@ export function diffHydratedProperties(
|
|||
break;
|
||||
case 'img':
|
||||
case 'image':
|
||||
case 'link':
|
||||
trapBubbledEvent('topError', 'error', domElement);
|
||||
trapBubbledEvent('topLoad', 'load', domElement);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue