@@ -402,6 +402,69 @@ public void RenderComponentAsync_ValueAttributeOfTextareaElementOverridesTextCon
402402 AssertHtmlContentEquals ( expectedHtml , result ) ;
403403 }
404404
405+ [ Fact ]
406+ public void RenderComponentAsync_RendersSelfClosingElement ( )
407+ {
408+ // Arrange
409+ var expectedHtml = "<input value=\" Hello <html>-encoded content!\" id=\" Test\" />" ;
410+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
411+ {
412+ rtb . OpenElement ( 0 , "input" ) ;
413+ rtb . AddAttribute ( 1 , "value" , "Hello <html>-encoded content!" ) ;
414+ rtb . AddAttribute ( 2 , "id" , "Test" ) ;
415+ rtb . CloseElement ( ) ;
416+ } ) ) . BuildServiceProvider ( ) ;
417+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
418+
419+ // Act
420+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
421+
422+ // Assert
423+ AssertHtmlContentEquals ( expectedHtml , result ) ;
424+ }
425+
426+ [ Fact ]
427+ public void RenderComponentAsync_RendersSelfClosingElementWithTextComponentAsNormalElement ( )
428+ {
429+ // Arrange
430+ var expectedHtml = "<meta>Something</meta>" ;
431+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
432+ {
433+ rtb . OpenElement ( 0 , "meta" ) ;
434+ rtb . AddContent ( 1 , "Something" ) ;
435+ rtb . CloseElement ( ) ;
436+ } ) ) . BuildServiceProvider ( ) ;
437+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
438+
439+ // Act
440+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
441+
442+ // Assert
443+ AssertHtmlContentEquals ( expectedHtml , result ) ;
444+ }
445+
446+ [ Fact ]
447+ public void RenderComponentAsync_RendersSelfClosingElementBySkippingElementReferenceCapture ( )
448+ {
449+ // Arrange
450+ var expectedHtml = "<input value=\" Hello <html>-encoded content!\" id=\" Test\" />" ;
451+ var serviceProvider = new ServiceCollection ( ) . AddSingleton ( new RenderFragment ( rtb =>
452+ {
453+ rtb . OpenElement ( 0 , "input" ) ;
454+ rtb . AddAttribute ( 1 , "value" , "Hello <html>-encoded content!" ) ;
455+ rtb . AddAttribute ( 2 , "id" , "Test" ) ;
456+ rtb . AddElementReferenceCapture ( 3 , inputReference => _ = inputReference ) ;
457+ rtb . CloseElement ( ) ;
458+ } ) ) . BuildServiceProvider ( ) ;
459+ var htmlRenderer = GetHtmlRenderer ( serviceProvider ) ;
460+
461+ // Act
462+ var result = GetResult ( htmlRenderer . Dispatcher . InvokeAsync ( ( ) => htmlRenderer . RenderComponentAsync < TestComponent > ( ParameterView . Empty ) ) ) ;
463+
464+ // Assert
465+ AssertHtmlContentEquals ( expectedHtml , result ) ;
466+ }
467+
405468 [ Fact ]
406469 public void RenderComponentAsync_MarksSelectedOptionsAsSelected_WithOptGroups ( )
407470 {
0 commit comments