Exemple #1
0
        public CssValue Parse(string cssValue)
        {
            var parser = new CssValueParser();

            parser.SetContext(cssValue);
            var val = parser.DoParse();

            return(val);
        }
        public void Addition()
        {
            var parser = new CssValueParser();

            parser.SetContext("30%+10%");
            var arg = parser.DoParse();

            Assert.IsTrue(parser.End);
            Assert.AreEqual(0, parser.Errors.Count);
            Assert.IsTrue(arg.IsValid);
            Assert.IsInstanceOfType(arg, typeof(CssArithmeticOperation));
            Assert.AreEqual("30%+10%", arg.ToString());

            parser.SetContext("(30%+10%)");
            arg = parser.DoParse();
            Assert.IsTrue(parser.End);
            Assert.AreEqual(0, parser.Errors.Count);
            Assert.IsTrue(arg.IsValid);
            Assert.IsInstanceOfType(arg, typeof(CssArithmeticOperation));
            Assert.AreEqual("(30%+10%)", arg.ToString());
        }
        public void SubArg()
        {
            var parser = new CssValueParser();

            parser.SetContext("fn(#fff)");
            var arg = parser.DoParse();

            Assert.IsTrue(parser.End);
            Assert.AreEqual(0, parser.Errors.Count);
            Assert.IsTrue(arg.IsValid);
            Assert.IsInstanceOfType(arg, typeof(CssSimpleValue));
            Assert.AreEqual("fn(#fff)", arg.ToString());
        }
        public void Priority()
        {
            var parser = new CssValueParser();

            parser.SetContext("30%/fn(2,3)+10%*1.4+2*3");
            var arg = parser.DoParse();

            Assert.IsTrue(parser.End);
            Assert.AreEqual(0, parser.Errors.Count);
            Assert.IsTrue(arg.IsValid);
            Assert.IsInstanceOfType(arg, typeof(CssArithmeticOperation));
            Assert.AreEqual("30%/fn(2,3)+10%*1.4+2*3", arg.ToString());

            Assert.AreEqual("30%/fn(2,3)", ((CssArithmeticOperation)arg).Left.ToString());
            Assert.AreEqual("10%*1.4+2*3", ((CssArithmeticOperation)arg).Right.ToString());

            var o = ((CssArithmeticOperation)arg).Right;

            Assert.IsInstanceOfType(o, typeof(CssArithmeticOperation));
            Assert.AreEqual("10%*1.4", ((CssArithmeticOperation)o).Left.ToString());
            Assert.AreEqual("2*3", ((CssArithmeticOperation)o).Right.ToString());
        }