Beispiel #1
0
        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());
        }
Beispiel #2
0
        public void TestOperatorString()
        {
            var attr = new HAttribute("name", "value");

            String val = (string)attr;

            Assert.Equal("value", attr.Value);
        }
Beispiel #3
0
        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());
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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());
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }