示例#1
0
        public void CtorTest()
        {
            var selector = new CSSSelector("TEST");

            Assert.AreEqual(selector.Id, "TEST");
            Assert.AreEqual(selector.Position, ElementPositions.position_relative);
        }
示例#2
0
        public void BottomMethod()
        {
            var hasFired     = false;
            var length       = new LengthDescriptor(33.3, LengthUnits.Percent);
            var selector     = new CSSSelector("TEST");
            var expectedText = String.Format("TEST {{{0}position : relative;{0}bottom : {1};{0}}}{0}", Environment.NewLine, length.ToString());

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "bottom";
            };
            selector.Bottom = length;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(length, selector.Bottom);
            Assert.AreEqual(selector.HtmlCode, expectedText);
        }
示例#3
0
        public void LeftTest()
        {
            var hasFired = false;
            var length   = new LengthDescriptor(33.3, LengthUnits.Percent);
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "left";
            };
            selector.Left = length;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(length, selector.Left);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
left : " + length.ToString() + @"
}
");
        }
示例#4
0
        public void TopMethod()
        {
            var hasFired = false;
            var top      = new LengthDescriptor(33.3, LengthUnits.Percent);
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "top";
            };
            selector.Top = top;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(top, selector.Top);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
top : " + top.ToString() + @"
}
");
        }
示例#5
0
        public void HeightTest()
        {
            var hasFired = false;
            var size     = new LengthDescriptor(33.3, LengthUnits.Percent);
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "heigth";
            };
            selector.Height = size;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(size, selector.Height);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
height : " + size.ToString() + @"
}
");
        }
示例#6
0
        public void VisibilityTest()
        {
            var hasFired   = false;
            var visibility = Visibility.visible;
            var selector   = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "visibility";
            };
            selector.Visibility = visibility;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(visibility, selector.Visibility);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
visibility : " + visibility.ToString() + @"
}
");
        }
示例#7
0
        public void DisplayTest()
        {
            var hasFired = false;
            var display  = NativeWebView.HTML.CSS.Attributes.Display.flex;
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "display";
            };
            selector.Display = display;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(display, selector.Display);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
display : " + display.ToString() + @"
}
");
        }
示例#8
0
        public void PositionMethod()
        {
            var hasFired = false;
            var position = ElementPositions.position_initial;
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "position";
            };
            Assert.AreEqual(selector.Position, ElementPositions.position_relative);
            selector.Position = position;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(position, selector.Position);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : " + ElementPositions.position_initial.CSSText() + @";
}
");
        }
示例#9
0
        public void TextAlignmentTest()
        {
            var hasFired = false;
            var align    = TextAlign.center;
            var selector = new CSSSelector("TEST");

            selector.PropertyChanged += (sender, e) =>
            {
                hasFired = e.PropertyName == "text-align";
            };
            selector.TextAlignment = align;
            Assert.IsTrue(hasFired);
            Assert.AreEqual(align, selector.TextAlignment);
            Assert.AreEqual(selector.HtmlCode, @"#TEST {
position : relative;
text-align : " + align.ToString() + @"
}
");
        }
示例#10
0
        public DisplayElement(String id, String tag)
        {
            _tag = tag;
            if (String.IsNullOrWhiteSpace(id))
            {
                if (string.IsNullOrEmpty(_tag))
                {
                    Id = "u" + Guid.NewGuid().ToString();
                }
                else
                {
                    Id = _tag + Guid.NewGuid().ToString();
                }
            }
            else
            {
                Id = id;
            }

            Style = new CSSSelector(Id);
            Style.PropertyChanged += Style_PropertyChanged;
            //Generate a list of the all of the properties
            var type = this.GetType();

            foreach (var property in type.GetProperties())
            {
                foreach (var attribute in property.GetCustomAttributes(false))
                {
                    if (attribute.GetType() == typeof(InnerTextAttribute))
                    {
                        _innerText = property; break;
                    }
                    else if (attribute.GetType() == typeof(ChildrenAttribute))
                    {
                        _children = property; break;
                    }
                    else if (attribute.GetType() == typeof(TagAttributeAttribute))
                    {
                        _attributes.Add(property, (attribute as TagAttributeAttribute));
                    }
                }
            }
        }