@@ -316,6 +316,92 @@ public void RenderComponentAsync_MarksSelectedOptionsAsSelected()
316
316
AssertHtmlContentEquals ( expectedHtml , result ) ;
317
317
}
318
318
319
+ [ Fact ]
320
+ public void RenderComponentAsync_RendersValueAttributeAsTextContentOfTextareaElement ( )
321
+ {
322
+ // Arrange
323
+ var expectedHtml = "<textarea rows=\" 10\" cols=\" 20\" >Hello <html>-encoded content!</textarea>" ;
324
+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
325
+ {
326
+ rtb . OpenElement ( 0 , "textarea" ) ;
327
+ rtb . AddAttribute ( 1 , "value" , "Hello <html>-encoded content!" ) ;
328
+ rtb . AddAttribute ( 2 , "rows" , "10" ) ;
329
+ rtb . AddAttribute ( 3 , "cols" , "20" ) ;
330
+ rtb . CloseElement ( ) ;
331
+ } ) ) . BuildServiceProvider ( ) ;
332
+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
333
+
334
+ // Act
335
+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
336
+
337
+ // Assert
338
+ AssertHtmlContentEquals ( expectedHtml , result ) ;
339
+ }
340
+
341
+ [ Fact ]
342
+ public void RenderComponentAsync_RendersTextareaElementWithoutValueAttribute ( )
343
+ {
344
+ // Arrange
345
+ var expectedHtml = "<textarea rows=\" 10\" cols=\" 20\" >Hello <html>-encoded content!</textarea>" ;
346
+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
347
+ {
348
+ rtb . OpenElement ( 0 , "textarea" ) ;
349
+ rtb . AddAttribute ( 1 , "rows" , "10" ) ;
350
+ rtb . AddAttribute ( 2 , "cols" , "20" ) ;
351
+ rtb . AddContent ( 3 , "Hello <html>-encoded content!" ) ;
352
+ rtb . CloseElement ( ) ;
353
+ } ) ) . BuildServiceProvider ( ) ;
354
+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
355
+
356
+ // Act
357
+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
358
+
359
+ // Assert
360
+ AssertHtmlContentEquals ( expectedHtml , result ) ;
361
+ }
362
+
363
+ [ Fact ]
364
+ public void RenderComponentAsync_RendersTextareaElementWithoutValueAttributeOrTextContent ( )
365
+ {
366
+ // Arrange
367
+ var expectedHtml = "<textarea rows=\" 10\" cols=\" 20\" ></textarea>" ;
368
+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
369
+ {
370
+ rtb . OpenElement ( 0 , "textarea" ) ;
371
+ rtb . AddAttribute ( 1 , "rows" , "10" ) ;
372
+ rtb . AddAttribute ( 2 , "cols" , "20" ) ;
373
+ rtb . CloseElement ( ) ;
374
+ } ) ) . BuildServiceProvider ( ) ;
375
+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
376
+
377
+ // Act
378
+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
379
+
380
+ // Assert
381
+ AssertHtmlContentEquals ( expectedHtml , result ) ;
382
+ }
383
+
384
+ [ Fact ]
385
+ public void RenderComponentAsync_ValueAttributeOfTextareaElementOverridesTextContent ( )
386
+ {
387
+ // Arrange
388
+ var expectedHtml = "<textarea>Hello World!</textarea>" ;
389
+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
390
+ {
391
+ rtb . OpenElement ( 0 , "textarea" ) ;
392
+ rtb . AddAttribute ( 1 , "value" , "Hello World!" ) ;
393
+ rtb . AddContent ( 3 , "Some content" ) ;
394
+ rtb . CloseElement ( ) ;
395
+ } ) ) . BuildServiceProvider ( ) ;
396
+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
397
+
398
+ // Act
399
+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
400
+
401
+ // Assert
402
+ AssertHtmlContentEquals ( expectedHtml , result ) ;
403
+ }
404
+
319
405
[ Fact ]
320
406
public void RenderComponentAsync_MarksSelectedOptionsAsSelected_WithOptGroups ( )
321
407
{
0 commit comments