@@ -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 = { true } ref = { c => ( BUTTON = c ) } { ...BUTTON_PROPS } />
90
93
</ div >
91
94
</ div > ,
92
95
container ,
@@ -110,6 +113,9 @@ describe('ReactBrowserEventEmitter', () => {
110
113
case GRANDPARENT :
111
114
GRANDPARENT_PROPS [ eventName ] = listener ;
112
115
break ;
116
+ case BUTTON :
117
+ BUTTON_PROPS [ eventName ] = listener ;
118
+ break ;
113
119
}
114
120
// Rerender with new event listeners
115
121
renderTree ( ) ;
@@ -125,6 +131,9 @@ describe('ReactBrowserEventEmitter', () => {
125
131
case GRANDPARENT :
126
132
GRANDPARENT_PROPS = { } ;
127
133
break ;
134
+ case BUTTON :
135
+ BUTTON_PROPS = { } ;
136
+ break ;
128
137
}
129
138
renderTree ( ) ;
130
139
} ;
@@ -149,6 +158,12 @@ describe('ReactBrowserEventEmitter', () => {
149
158
expect ( listener ) . toEqual ( LISTENER ) ;
150
159
} ) ;
151
160
161
+ it ( 'should not retrieve listeners on a disabled interactive element' , ( ) => {
162
+ putListener ( BUTTON , ON_MOUSE_ENTER_KEY , recordID . bind ( null , BUTTON ) ) ;
163
+ const listener = getListener ( BUTTON , ON_MOUSE_ENTER_KEY ) ;
164
+ expect ( listener ) . toBe ( null ) ;
165
+ } ) ;
166
+
152
167
it ( 'should clear all handlers when asked to' , ( ) => {
153
168
registerSimpleTestHandler ( ) ;
154
169
deleteAllListeners ( CHILD ) ;
0 commit comments