The error event on `<source>` elements doesn't work. Looking at #4370, it seems like there is an `onError` for `<video>` but I can't tell if that's supposed to work for `<source>` too.

The error event is useful so I can deduce which format the browser is using.

expect(function() {
        ReactDOM.render(<X />, container);
      }).toThrowError(
        'input is a void element tag and must not have `children` ' +
        'or use `props.dangerouslySetInnerHTML`. Check the render method of X.'
      );
    });
    it('should support custom elements which extend native elements', function() {
      if (ReactDOMFeatureFlags.useCreateElement) {
        var container = document.createElement('div');
        spyOn(document, 'createElement').and.callThrough();
        ReactDOM.render(<div is="custom-div" />, container);
        expect(document.createElement).toHaveBeenCalledWith('div', 'custom-div');
      } else {
        expect(ReactDOMServer.renderToString(<div is="custom-div" />)).toContain('is="custom-div"');
      }
    });
  });
  describe('updateComponent', function() {
    var container;
    beforeEach(function() {
      container = document.createElement('div');
    });
    it('should warn against children for void elements', function() {
      ReactDOM.render(<input />, container);
      expect(function() {
        ReactDOM.render(<input>children</input>, container);
      }).toThrowError(
        'input is a void element tag and must not have `children` or use ' +
        '`props.dangerouslySetInnerHTML`.'