@@ -37,6 +37,7 @@ const ON_MOUSE_ENTER_KEY = 'onMouseEnter';
37
37
let GRANDPARENT ;
38
38
let PARENT ;
39
39
let CHILD ;
40
+ let BUTTON ;
40
41
41
42
let getListener ;
42
43
let putListener ;
@@ -71,6 +72,7 @@ describe('ReactBrowserEventEmitter', () => {
71
72
let GRANDPARENT_PROPS = { } ;
72
73
let PARENT_PROPS = { } ;
73
74
let CHILD_PROPS = { } ;
75
+ let BUTTON_PROPS = { } ;
74
76
75
77
function Child ( props ) {
76
78
return < div ref = { c => ( CHILD = c ) } { ...props } /> ;
@@ -87,6 +89,7 @@ describe('ReactBrowserEventEmitter', () => {
87
89
< div ref = { c => ( GRANDPARENT = c ) } { ...GRANDPARENT_PROPS } >
88
90
< div ref = { c => ( PARENT = c ) } { ...PARENT_PROPS } >
89
91
< ChildWrapper { ...CHILD_PROPS } />
92
+ < button disabled ref = { c => ( BUTTON = c ) } { ...BUTTON_PROPS } > </ button >
90
93
</ div >
91
94
</ div > ,
92
95
container ,
@@ -109,6 +112,8 @@ describe('ReactBrowserEventEmitter', () => {
109
112
break ;
110
113
case GRANDPARENT :
111
114
GRANDPARENT_PROPS [ eventName ] = listener ;
115
+ case BUTTON :
116
+ BUTTON_PROPS [ eventName ] = listener ;
112
117
break ;
113
118
}
114
119
// Rerender with new event listeners
@@ -124,6 +129,8 @@ describe('ReactBrowserEventEmitter', () => {
124
129
break ;
125
130
case GRANDPARENT :
126
131
GRANDPARENT_PROPS = { } ;
132
+ case BUTTON :
133
+ BUTTON_PROPS = { } ;
127
134
break ;
128
135
}
129
136
renderTree ( ) ;
@@ -149,6 +156,12 @@ describe('ReactBrowserEventEmitter', () => {
149
156
expect ( listener ) . toEqual ( LISTENER ) ;
150
157
} ) ;
151
158
159
+ it ( 'should not retrieve a listener for disabled interactive elements' , ( ) => {
160
+ putListener ( BUTTON , ON_MOUSE_ENTER_KEY , recordID . bind ( null , BUTTON ) ) ;
161
+ const listener = getListener ( BUTTON , ON_MOUSE_ENTER_KEY ) ;
162
+ expect ( listener ) . toBe ( null ) ;
163
+ } ) ;
164
+
152
165
it ( 'should clear all handlers when asked to' , ( ) => {
153
166
registerSimpleTestHandler ( ) ;
154
167
deleteAllListeners ( CHILD ) ;
0 commit comments