Fix handling nonvoid elements in markup blocks (#1190)
* Fix empty nonvoid elements in markup blocks. Fixes #1186 * Also update another test
This commit is contained in:
parent
0f8fdad593
commit
4e892e74da
|
|
@ -200,7 +200,7 @@ namespace Microsoft.AspNetCore.Blazor.Razor
|
||||||
}
|
}
|
||||||
|
|
||||||
// If for some reason a void element contains body, then treat it as a
|
// If for some reason a void element contains body, then treat it as a
|
||||||
// start/end tag. Treat non-void elements without body content as self-closing.
|
// start/end tag.
|
||||||
if (!hasBodyContent && isVoid)
|
if (!hasBodyContent && isVoid)
|
||||||
{
|
{
|
||||||
// void
|
// void
|
||||||
|
|
@ -209,8 +209,11 @@ namespace Microsoft.AspNetCore.Blazor.Razor
|
||||||
}
|
}
|
||||||
else if (!hasBodyContent)
|
else if (!hasBodyContent)
|
||||||
{
|
{
|
||||||
// self-closing
|
// In HTML5, we can't have self-closing non-void elements, so explicitly
|
||||||
Builder.Append("/>");
|
// add a close tag
|
||||||
|
Builder.Append("></");
|
||||||
|
Builder.Append(node.TagName);
|
||||||
|
Builder.Append(">");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -147,12 +147,12 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||||
public void SupportsSelfClosingElementsAsStaticBlock()
|
public void SupportsSelfClosingElementsAsStaticBlock()
|
||||||
{
|
{
|
||||||
// Arrange/Act
|
// Arrange/Act
|
||||||
var component = CompileToComponent("Some text so elem isn't at position 0 <myelem />");
|
var component = CompileToComponent("Some text so elem isn't at position 0 <input attr='123' />");
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Collection(GetRenderTree(component),
|
Assert.Collection(GetRenderTree(component),
|
||||||
frame => AssertFrame.Text(frame, "Some text so elem isn't at position 0 ", 0),
|
frame => AssertFrame.Text(frame, "Some text so elem isn't at position 0 ", 0),
|
||||||
frame => AssertFrame.Markup(frame, "<myelem/>", 1));
|
frame => AssertFrame.Markup(frame, "<input attr=\"123\">", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
|
||||||
|
|
@ -109,12 +109,12 @@ namespace Microsoft.AspNetCore.Blazor.Razor
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Execute_RewritesHtml_SelfClosing()
|
public void Execute_RewritesHtml_EmptyNonvoid()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var document = CreateDocument(@"<a href=""...""></a>");
|
var document = CreateDocument(@"<a href=""...""></a>");
|
||||||
|
|
||||||
var expected = NormalizeContent(@"<a href=""...""/>");
|
var expected = NormalizeContent(@"<a href=""...""></a>");
|
||||||
|
|
||||||
var documentNode = Lower(document);
|
var documentNode = Lower(document);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue