As described on http://facebook.github.io/react/docs/forms.html, the onChange handler of an input should fire when the checked state changes.  However, it actually fires when the radio button is clicked,

In other words, it fails to fire when a checked radio button is unchecked (by checking a different radio button), and it fires even without a state change when a checked radio button is clicked.

In short, it's missing checked transtions true->false, and it's reporting spurious transitions true->true.

expect(stubStyle.lineHeight).toEqual('0.5');
      ReactDOM.render(<div style={undefined} />, container);
      expect(stubStyle.display).toBe('');
      expect(stubStyle.fontFamily).toBe('');
      expect(stubStyle.lineHeight).toBe('');
    });
    it('should warn when mutating style', function() {
      spyOn(console, 'error');
      var style = {border: '1px solid black'};
      var App = React.createClass({
        getInitialState: function() {
          return {style: style};
        },
        render: function() {
          return <div style={this.state.style}>asd</div>;
        },
      });
      var stub = ReactTestUtils.renderIntoDocument(<App />);
      style.position = 'absolute';
      stub.setState({style: style});
      expect(console.error.argsForCall.length).toBe(1);
      expect(console.error.argsForCall[0][0]).toEqual(
        'Warning: `div` was passed a style object that has previously been ' +
        'mutated. Mutating `style` is deprecated. Consider cloning it ' +
        'beforehand. Check the `render` of `App`. Previous style: ' +
        '{border: "1px solid black"}. Mutated style: ' +
        '{border: "1px solid black", position: "absolute"}.'
      );
      style = {background: 'red'};
      stub = ReactTestUtils.renderIntoDocument(<App />);