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.

ReactDOM.render(<div>adieu</div>, container);
      expect(container.firstChild.innerHTML).toEqual('adieu');
    });
    it('should transition from innerHTML to children in nested el', function() {
      var container = document.createElement('div');
      ReactDOM.render(
        <div><div dangerouslySetInnerHTML={{__html: 'bonjour'}} /></div>,
        container
      );
      expect(container.textContent).toEqual('bonjour');
      ReactDOM.render(<div><div><span>adieu</span></div></div>, container);
      expect(container.textContent).toEqual('adieu');
    });
    it('should transition from children to innerHTML in nested el', function() {
      var container = document.createElement('div');
      ReactDOM.render(<div><div><span>adieu</span></div></div>, container);
      expect(container.textContent).toEqual('adieu');
      ReactDOM.render(
        <div><div dangerouslySetInnerHTML={{__html: 'bonjour'}} /></div>,
        container
      );
      expect(container.textContent).toEqual('bonjour');
    });
    it('should not incur unnecessary DOM mutations for attributes', function() {
      var container = document.createElement('div');
      ReactDOM.render(<div id="" />, container);
      var node = container.firstChild;
      var nodeSetAttribute = node.setAttribute;
      node.setAttribute = jest.fn();
      node.setAttribute.mockImpl(nodeSetAttribute);