public void TestRemoveAll() { HNode node1 = new HText("node 1"); HNode node2 = new HElement("node2", "value2"); HNode node3 = new HText("node 3"); HNode node4 = new HElement("node4", "value4"); var attr1 = new HAttribute("attr1", "value1"); var attr2 = new HAttribute("attr2", "value2"); var attr3 = new HAttribute("attr3", "value3"); var attr4 = new HAttribute("attr4", "value4"); // Create parent var elm = new HElement("test", attr1, node1, attr2, node2, node3, node4, attr3, attr4); Assert.Equal(4, elm.Attributes().Count()); Assert.Equal(4, elm.Nodes().Count()); // Remove all elm.RemoveAll(); Assert.Equal(0, elm.Attributes().Count()); Assert.Equal(0, elm.Nodes().Count()); // Check no exception elm.RemoveAll(); Assert.Equal(0, elm.Attributes().Count()); Assert.Equal(0, elm.Nodes().Count()); }
public void TestOperatorString() { var attr = new HAttribute("name", "value"); String val = (string)attr; Assert.Equal("value", attr.Value); }
public void TestRemoveAttributes() { var attr1 = new HAttribute("attr1", "value1"); var attr2 = new HAttribute("attr2", "value2"); var attr3 = new HAttribute("attr3", "value3"); var attr4 = new HAttribute("attr4", "value4"); // Create parent var elm = new HElement("test", attr1, attr2, attr3, attr4); Assert.Same(attr1, elm.FirstAttribute); Assert.Same(attr4, elm.LastAttribute); Assert.Same(elm, attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Same(attr2, attr1.NextAttribute); Assert.Same(elm, attr2.Parent); Assert.Same(attr1, attr2.PreviousAttribute); Assert.Same(attr3, attr2.NextAttribute); Assert.Same(elm, attr3.Parent); Assert.Same(attr2, attr3.PreviousAttribute); Assert.Same(attr4, attr3.NextAttribute); Assert.Same(elm, attr4.Parent); Assert.Same(attr3, attr4.PreviousAttribute); Assert.Null(attr4.NextAttribute); // Remove all attributes elm.RemoveAttributes(); Assert.Null(elm.FirstAttribute); Assert.Null(elm.LastAttribute); Assert.Null(attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Null(attr1.NextAttribute); Assert.Null(attr2.Parent); Assert.Null(attr2.PreviousAttribute); Assert.Null(attr2.NextAttribute); Assert.Null(attr3.Parent); Assert.Null(attr3.PreviousAttribute); Assert.Null(attr3.NextAttribute); Assert.Null(attr4.Parent); Assert.Null(attr4.PreviousAttribute); Assert.Null(attr4.NextAttribute); Assert.Equal(0, elm.Attributes().Count()); // Check no exception elm.RemoveAttributes(); Assert.Equal(0, elm.Attributes().Count()); }
public void TestCreateFromOther() { var source = new HAttribute("name", "value"); var attr = new HAttribute(source); Assert.Equal("name", attr.Name); Assert.Equal("value", attr.Value); Assert.Throws <ArgumentNullException>(() => new HAttribute((HAttribute)null)); }
public void TestCreate() { var attr = new HAttribute("name", "value"); Assert.Equal("name", attr.Name); Assert.Equal("value", attr.Value); attr = new HAttribute("name"); Assert.Equal("name", attr.Name); Assert.Equal("", attr.Value); Assert.Throws <ArgumentNullException>(() => new HAttribute(" ", null)); Assert.Throws <ArgumentNullException>(() => new HAttribute(null, null)); }
public void TestValue() { var attr = new HAttribute("name"); Assert.Equal("", attr.Value); String value = "test"; attr.Value = value; Assert.Equal(value, attr.Value); value = ""; attr.Value = value; Assert.Equal(value, attr.Value); attr.Value = null; Assert.Null(attr.Value); }
public void TestGetClasses() { Assert.Equal(new String[] { }, ClassAttributeExtensions.GetClasses(null)); var element = new HElement("div"); Assert.Equal(new String[] { }, element.GetClasses()); var clsAttr = new HAttribute("class"); element.Add(clsAttr); Assert.Equal(new String[] { }, element.GetClasses()); clsAttr.Value = " "; Assert.Equal(new String[] { }, element.GetClasses()); clsAttr.Value = " class1 "; Assert.Equal(new String[] { "class1" }, element.GetClasses()); clsAttr.Value = " class1 class-2 "; Assert.Equal(new String[] { "class1", "class-2" }, element.GetClasses()); }
public void TestNextAttribute() { var attr = new HAttribute("name", "value"); Assert.Null(attr.NextAttribute); var elm = new HElement("parent"); elm.Add(attr); Assert.Null(attr.NextAttribute); var attr2 = new HAttribute("attr1", "val1"); elm.Add(attr2); Assert.Same(attr2, attr.NextAttribute); Assert.Null(attr2.NextAttribute); var attr3 = new HAttribute("attr2", "val2"); elm.Add(attr3); Assert.Same(attr2, attr.NextAttribute); Assert.Same(attr3, attr2.NextAttribute); Assert.Null(attr3.NextAttribute); }
public void TestRemove() { var attr1 = new HAttribute("attr1", "value1"); // Create parent var elm = new HElement("test", attr1); Assert.Same(attr1, elm.FirstAttribute); Assert.Same(attr1, elm.LastAttribute); Assert.Same(elm, attr1.Parent); Assert.Equal(1, elm.Attributes().Count()); // Remove attribute attr1.Remove(); Assert.Null(elm.FirstAttribute); Assert.Null(elm.LastAttribute); Assert.Null(attr1.Parent); Assert.Equal(0, elm.Attributes().Count()); // Fail to remove a detached attribute var ioe = Assert.Throws <InvalidOperationException>(() => attr1.Remove()); Assert.Equal("No parent found.", ioe.Message); }
public void TestRemoveAttribute() { var attr1 = new HAttribute("attr1", "value1"); var attr2 = new HAttribute("attr2", "value2"); var attr3 = new HAttribute("attr3", "value3"); var attr4 = new HAttribute("attr4", "value4"); // Create parent var elm = new HElement("test", attr1, attr2, attr3, attr4); Assert.Same(attr1, elm.FirstAttribute); Assert.Same(attr4, elm.LastAttribute); Assert.Same(elm, attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Same(attr2, attr1.NextAttribute); Assert.Same(elm, attr2.Parent); Assert.Same(attr1, attr2.PreviousAttribute); Assert.Same(attr3, attr2.NextAttribute); Assert.Same(elm, attr3.Parent); Assert.Same(attr2, attr3.PreviousAttribute); Assert.Same(attr4, attr3.NextAttribute); Assert.Same(elm, attr4.Parent); Assert.Same(attr3, attr4.PreviousAttribute); Assert.Null(attr4.NextAttribute); // Remove attr2 attr2.Remove(); Assert.Same(attr1, elm.FirstAttribute); Assert.Same(attr4, elm.LastAttribute); Assert.Same(elm, attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Same(attr3, attr1.NextAttribute); Assert.Null(attr2.Parent); Assert.Null(attr2.PreviousAttribute); Assert.Null(attr2.NextAttribute); Assert.Same(elm, attr3.Parent); Assert.Same(attr1, attr3.PreviousAttribute); Assert.Same(attr4, attr3.NextAttribute); Assert.Same(elm, attr4.Parent); Assert.Same(attr3, attr4.PreviousAttribute); Assert.Null(attr4.NextAttribute); var attrs = elm.Attributes().ToArray(); Assert.Equal(new HAttribute[] { attr1, attr3, attr4 }, attrs); // Remove attr4 attr4.Remove(); Assert.Same(attr1, elm.FirstAttribute); Assert.Same(attr3, elm.LastAttribute); Assert.Same(elm, attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Same(attr3, attr1.NextAttribute); Assert.Same(elm, attr3.Parent); Assert.Same(attr1, attr3.PreviousAttribute); Assert.Null(attr3.NextAttribute); Assert.Null(attr4.Parent); Assert.Null(attr4.PreviousAttribute); Assert.Null(attr4.NextAttribute); attrs = elm.Attributes().ToArray(); Assert.Equal(new HAttribute[] { attr1, attr3 }, attrs); // Remove attr1 attr1.Remove(); Assert.Same(attr3, elm.FirstAttribute); Assert.Same(attr3, elm.LastAttribute); Assert.Null(attr1.Parent); Assert.Null(attr1.PreviousAttribute); Assert.Null(attr1.NextAttribute); Assert.Same(elm, attr3.Parent); Assert.Null(attr3.PreviousAttribute); Assert.Null(attr3.NextAttribute); attrs = elm.Attributes().ToArray(); Assert.Equal(new HAttribute[] { attr3 }, attrs); // Remove attr3 attr3.Remove(); Assert.Null(elm.FirstAttribute); Assert.Null(elm.LastAttribute); Assert.Null(attr3.Parent); Assert.Null(attr3.PreviousAttribute); Assert.Null(attr3.NextAttribute); attrs = elm.Attributes().ToArray(); Assert.Equal(new HAttribute[] { }, attrs); // Fail to remove a detached attribute var ioe = Assert.Throws <InvalidOperationException>(() => attr1.Remove()); Assert.Equal("No parent found.", ioe.Message); }