@@ -244,16 +244,100 @@ describe('ReactDOMComponent', function() {
244
244
expect ( stubStyle . display ) . toEqual ( '' ) ;
245
245
} ) ;
246
246
247
- it ( 'should skip child object attribute on web components' , function ( ) {
247
+ it ( 'should skip reserved props on web components' , function ( ) {
248
248
var container = document . createElement ( 'div' ) ;
249
249
250
- // Test initial render to null
251
- ReactDOM . render ( < my-component children = { [ 'foo' ] } /> , container ) ;
250
+ ReactDOM . render (
251
+ < my-component
252
+ children = { [ 'foo' ] }
253
+ suppressContentEditableWarning = { true }
254
+ /> ,
255
+ container
256
+ ) ;
252
257
expect ( container . firstChild . hasAttribute ( 'children' ) ) . toBe ( false ) ;
258
+ expect (
259
+ container . firstChild . hasAttribute ( 'suppressContentEditableWarning' )
260
+ ) . toBe ( false ) ;
253
261
254
- // Test updates to null
255
- ReactDOM . render ( < my-component children = { [ 'foo' ] } /> , container ) ;
262
+ ReactDOM . render (
263
+ < my-component
264
+ children = { [ 'bar' ] }
265
+ suppressContentEditableWarning = { false }
266
+ /> ,
267
+ container
268
+ ) ;
256
269
expect ( container . firstChild . hasAttribute ( 'children' ) ) . toBe ( false ) ;
270
+ expect (
271
+ container . firstChild . hasAttribute ( 'suppressContentEditableWarning' )
272
+ ) . toBe ( false ) ;
273
+ } ) ;
274
+
275
+ it ( 'should skip dangerouslySetInnerHTML on web components' , function ( ) {
276
+ var container = document . createElement ( 'div' ) ;
277
+
278
+ ReactDOM . render (
279
+ < my-component dangerouslySetInnerHTML = { { __html : 'hi' } } /> ,
280
+ container
281
+ ) ;
282
+ expect (
283
+ container . firstChild . hasAttribute ( 'dangerouslySetInnerHTML' )
284
+ ) . toBe ( false ) ;
285
+
286
+ ReactDOM . render (
287
+ < my-component dangerouslySetInnerHTML = { { __html : 'bye' } } /> ,
288
+ container
289
+ ) ;
290
+ expect (
291
+ container . firstChild . hasAttribute ( 'dangerouslySetInnerHTML' )
292
+ ) . toBe ( false ) ;
293
+ } ) ;
294
+
295
+ it ( 'should skip reserved props on SVG components' , function ( ) {
296
+ var container = document . createElement ( 'div' ) ;
297
+
298
+ ReactDOM . render (
299
+ < svg
300
+ children = { [ 'foo' ] }
301
+ suppressContentEditableWarning = { true }
302
+ /> ,
303
+ container
304
+ ) ;
305
+ expect ( container . firstChild . hasAttribute ( 'children' ) ) . toBe ( false ) ;
306
+ expect (
307
+ container . firstChild . hasAttribute ( 'suppressContentEditableWarning' )
308
+ ) . toBe ( false ) ;
309
+
310
+ ReactDOM . render (
311
+ < svg
312
+ children = { [ 'bar' ] }
313
+ suppressContentEditableWarning = { false }
314
+ /> ,
315
+ container
316
+ ) ;
317
+ expect ( container . firstChild . hasAttribute ( 'children' ) ) . toBe ( false ) ;
318
+ expect (
319
+ container . firstChild . hasAttribute ( 'suppressContentEditableWarning' )
320
+ ) . toBe ( false ) ;
321
+ } ) ;
322
+
323
+ it ( 'should skip dangerouslySetInnerHTML on SVG components' , function ( ) {
324
+ var container = document . createElement ( 'div' ) ;
325
+
326
+ ReactDOM . render (
327
+ < svg dangerouslySetInnerHTML = { { __html : 'hi' } } /> ,
328
+ container
329
+ ) ;
330
+ expect (
331
+ container . firstChild . hasAttribute ( 'dangerouslySetInnerHTML' )
332
+ ) . toBe ( false ) ;
333
+
334
+ ReactDOM . render (
335
+ < svg dangerouslySetInnerHTML = { { __html : 'bye' } } /> ,
336
+ container
337
+ ) ;
338
+ expect (
339
+ container . firstChild . hasAttribute ( 'dangerouslySetInnerHTML' )
340
+ ) . toBe ( false ) ;
257
341
} ) ;
258
342
259
343
it ( 'should remove attributes' , function ( ) {
0 commit comments