Skip to content

Commit

Permalink
Merge pull request #26 from am11/master
Browse files Browse the repository at this point in the history
ImplicitTag: Descendant of "td" should be "div"
  • Loading branch information
madskristensen committed Dec 22, 2013
2 parents cb1b4d5 + 745b447 commit b0b21c9
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 101 deletions.
220 changes: 120 additions & 100 deletions ZenCoding.Test/Html/ImplicitTags.cs
Original file line number Diff line number Diff line change
@@ -1,101 +1,101 @@
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace ZenCoding.Test.Html
{
[TestClass]
public class ImplicitTags
{
private ZenCoding.Parser _parser;

[TestInitialize]
public void Initialize()
{
_parser = new ZenCoding.Parser();
}

[TestMethod]
public void SimpleImplicitTag()
{
string result = _parser.Parse(".footer>.copy", ZenType.HTML);
string expected = "<div class=\"footer\">" +
"<div class=\"copy\">" +
"</div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void UnsortedListsAndListItems()
{
string result = _parser.Parse("ul>.class-name", ZenType.HTML);
string expected = "<ul>" +
"<li class=\"class-name\">" +
"</li>" +
"</ul>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void UnsortedListsAndListItemsComplex()
{
string result = _parser.Parse("ul>.class-name*3+#print8+div+.point^div", ZenType.HTML);
string expected = "<ul>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li id=\"print8\">" +
"</li>" +
"<div>" +
"</div>" +
"<li class=\"point\">" +
"</li>" +
"</ul>" +
"<div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void SortedListsAndListItems()
{
string result = _parser.Parse("ol>.class-name", ZenType.HTML);
string expected = "<ol>" +
"<li class=\"class-name\">" +
"</li>" +
"</ol>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void SortedListsAndListItemsComplex()
{
string result = _parser.Parse("ol>.class-name*3+#print8+div+.point^div", ZenType.HTML);
string expected = "<ol>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li id=\"print8\">" +
"</li>" +
"<div>" +
"</div>" +
"<li class=\"point\">" +
"</li>" +
"</ol>" +
"<div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace ZenCoding.Test.Html
{
[TestClass]
public class ImplicitTags
{
private ZenCoding.Parser _parser;

[TestInitialize]
public void Initialize()
{
_parser = new ZenCoding.Parser();
}

[TestMethod]
public void SimpleImplicitTag()
{
string result = _parser.Parse(".footer>.copy", ZenType.HTML);
string expected = "<div class=\"footer\">" +
"<div class=\"copy\">" +
"</div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void UnsortedListsAndListItems()
{
string result = _parser.Parse("ul>.class-name", ZenType.HTML);
string expected = "<ul>" +
"<li class=\"class-name\">" +
"</li>" +
"</ul>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void UnsortedListsAndListItemsComplex()
{
string result = _parser.Parse("ul>.class-name*3+#print8+div+.point^div", ZenType.HTML);
string expected = "<ul>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li id=\"print8\">" +
"</li>" +
"<div>" +
"</div>" +
"<li class=\"point\">" +
"</li>" +
"</ul>" +
"<div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void SortedListsAndListItems()
{
string result = _parser.Parse("ol>.class-name", ZenType.HTML);
string expected = "<ol>" +
"<li class=\"class-name\">" +
"</li>" +
"</ol>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
public void SortedListsAndListItemsComplex()
{
string result = _parser.Parse("ol>.class-name*3+#print8+div+.point^div", ZenType.HTML);
string expected = "<ol>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li class=\"class-name\">" +
"</li>" +
"<li id=\"print8\">" +
"</li>" +
"<div>" +
"</div>" +
"<li class=\"point\">" +
"</li>" +
"</ol>" +
"<div>" +
"</div>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}

[TestMethod]
Expand Down Expand Up @@ -147,5 +147,25 @@ public void TableAndRowAndData()

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}
}
}

[TestMethod]
public void TableAndRowColumnsAndNestedMarkup()
{
string result = _parser.Parse("table>.a>.b>.c>.d>.e.f.g", ZenType.HTML);
string expected = "<table>" +
"<tr class=\"a\">" +
"<td class=\"b\">" +
"<div class=\"c\">" +
"<div class=\"d\">" +
"<div class=\"e f g\">" +
"</div>" +
"</div>" +
"</div>" +
"</td>" +
"</tr>" +
"</table>";

Assert.AreEqual(expected, result.Replace(Environment.NewLine, string.Empty));
}
}
}
2 changes: 1 addition & 1 deletion ZenCoding/Html/HtmlParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ private static void AdjustImplicitTagNames(List<string> parts)
currentDefault = "tr";
else if (i != 0 && (parts[i - 1] == "tr" || parts[i - 1].StartsWith(">tr")) && parts[i][0] == '>')
currentDefault = "td";
else if (currentDefault != "div" && parts[i][0] == '^')
else if ((parts[i][0] == '>' && currentDefault == "td") || (currentDefault != "div" && parts[i][0] == '^'))
currentDefault = "div";

if (parts[i][0] == '#' || parts[i][0] == '.')
Expand Down

0 comments on commit b0b21c9

Please sign in to comment.