Ejemplo n.º 1
0
        public void GivenACSSSource_WhenMergingAnotherCSSSource_AUnionOfRulesInBothSourcesShouldBeReturnedWhenRulesDoNotConflict()
        {
            const string css1 = @"#myDiv { font-family: Arial, Helvetica, sans-serif; }";
            var cssDocument1 = new CSSParser().ParseText(css1);
            var cssSource1 = new CSSSource(cssDocument1);

            const string css2 = @"div { font-family: Arial, Helvetica, sans-serif; }";
            var cssDocument2 = new CSSParser().ParseText(css2);
            var cssSource2 = new CSSSource(cssDocument2);

            var cssSource3 = cssSource1.Merge(cssSource2);

            Assert.Equal(cssSource3.Rulesets.Count(), 2);
            Assert.Equal(cssSource3.Rulesets.First().Selectors[0].ToString(), "#myDiv");
            Assert.Equal(cssSource3.Rulesets.First().Declarations[0].ToString(), "font-family: Arial, Helvetica, sans-serif");
            Assert.Equal(cssSource3.Rulesets.Last().Selectors[0].ToString(), "div");
            Assert.Equal(cssSource3.Rulesets.Last().Declarations[0].ToString(), "font-family: Arial, Helvetica, sans-serif");
        }
Ejemplo n.º 2
0
        public void GivenACSSSource_WhenMergingAnotherCssSource_RulesInTheOriginalCSSSourceShouldHavePrecedence()
        {
            const string css1 = @"
                #myDiv { font-family: Arial, Helvetica, sans-serif; }
                div { font-family: Times New Roman, sans-serif; }";
            var cssDocument1 = new CSSParser().ParseText(css1);
            var cssSource1 = new CSSSource(cssDocument1);

            const string css2 = @"
                #myDiv { font-family: Times New Roman, sans-serif; }
                div { font-family: Arial, Helvetica, sans-serif; }";
            var cssDocument2 = new CSSParser().ParseText(css2);
            var cssSource2 = new CSSSource(cssDocument2);

            var cssSource3 = cssSource1.Merge(cssSource2);

            Assert.Equal(cssSource3.Rulesets.Count(), 2);
            Assert.Equal(cssSource3.Rulesets.First().Selectors[0].ToString(), "#myDiv");
            Assert.Equal(cssSource3.Rulesets.First().Declarations[0].ToString(), "font-family: Arial, Helvetica, sans-serif");
            Assert.Equal(cssSource3.Rulesets.Last().Selectors[0].ToString(), "div");
            Assert.Equal(cssSource3.Rulesets.Last().Declarations[0].ToString(), "font-family: Times New Roman, sans-serif");
        }
Ejemplo n.º 3
0
        public void GivenACSSSource_WhenMergingAnotherCssSource_ShouldThrowAnArgumentNullExceptionIfTheOtherCSSSourceIsNull()
        {
            var cssSource = new CSSSource(new CSSParser().ParseText("{}"));

            Assert.Throws(typeof (ArgumentNullException), () => cssSource.Merge(null));
        }