Exemplo n.º 1
0
        public virtual void MediaExpressionTestTest03()
        {
            MediaExpression        orientation       = new MediaExpression("orientation", "landscape");
            MediaExpression        resolution        = new MediaExpression("resolution", "150dpi");
            MediaExpression        grid              = new MediaExpression("grid", "0");
            MediaExpression        colorIndex        = new MediaExpression("max-color-index", "15000");
            MediaExpression        monochrome        = new MediaExpression("monochrome", "0");
            MediaExpression        scan              = new MediaExpression("scan", "interlace");
            MediaExpression        color             = new MediaExpression("color", "15000");
            MediaExpression        minAspectRatio    = new MediaExpression("max-aspect-ratio", "8/5");
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetOrientation("landscape");
            deviceDescription.SetResolution(150);
            deviceDescription.SetGrid(false);
            deviceDescription.SetColorIndex(15000);
            deviceDescription.SetMonochrome(0);
            deviceDescription.SetScan("interlace");
            deviceDescription.SetBitsPerComponent(15000);
            deviceDescription.SetWidth(32);
            deviceDescription.SetHeight(20);
            NUnit.Framework.Assert.IsTrue(resolution.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(orientation.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(grid.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(colorIndex.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(monochrome.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(scan.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(color.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(minAspectRatio.Matches(deviceDescription));
        }
Exemplo n.º 2
0
        public virtual void Test06()
        {
            String        htmlFileName = sourceFolder + "html06.html";
            String        cssFileName  = sourceFolder + "css06.css";
            IXmlParser    htmlParser   = new JsoupHtmlParser();
            IDocumentNode document     = htmlParser.Parse(new FileStream(htmlFileName, FileMode.Open, FileAccess.Read), "UTF-8"
                                                          );
            CssStyleSheet css     = CssStyleSheetParser.Parse(new FileStream(cssFileName, FileMode.Open, FileAccess.Read));
            IElementNode  element = new JsoupElementNode(((JsoupDocumentNode)document).GetDocument().GetElementsByTag("p"
                                                                                                                      ).First());
            MediaDeviceDescription deviceDescription1 = new MediaDeviceDescription(MediaType.PRINT).SetBitsPerComponent
                                                            (2);
            MediaDeviceDescription deviceDescription2 = new MediaDeviceDescription(MediaType.HANDHELD).SetBitsPerComponent
                                                            (2);
            MediaDeviceDescription deviceDescription3 = new MediaDeviceDescription(MediaType.SCREEN).SetBitsPerComponent
                                                            (1);
            IList <CssDeclaration> declarations1 = css.GetCssDeclarations(element, deviceDescription1);
            IList <CssDeclaration> declarations2 = css.GetCssDeclarations(element, deviceDescription2);
            IList <CssDeclaration> declarations3 = css.GetCssDeclarations(element, deviceDescription3);

            NUnit.Framework.Assert.IsTrue(Enumerable.SequenceEqual(declarations1, declarations2));
            NUnit.Framework.Assert.AreEqual(0, declarations3.Count);
            NUnit.Framework.Assert.AreEqual(1, declarations1.Count);
            NUnit.Framework.Assert.AreEqual("color: red", declarations1[0].ToString());
        }
Exemplo n.º 3
0
        public virtual void MediaExpressionTestTest06()
        {
            MediaExpression        minColorIndex     = new MediaExpression("min-color-index", null);
            MediaExpression        minColor          = new MediaExpression("min-color", null);
            MediaExpression        colorIndex        = new MediaExpression("color-index", "1500");
            MediaExpression        minMonochrome     = new MediaExpression("min-monochrome", "0");
            MediaExpression        resolution        = new MediaExpression("resolution", "150dpi");
            MediaExpression        defaultExpression = new MediaExpression("none", "none");
            MediaExpression        aspectRatio       = new MediaExpression("aspect-ratio", "8/8");
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetColorIndex(15000);
            deviceDescription.SetBitsPerComponent(8);
            deviceDescription.SetMonochrome(0);
            deviceDescription.SetWidth(1.99999999f);
            deviceDescription.SetHeight(2.00000000f);
            deviceDescription.SetColorIndex(15000);
            NUnit.Framework.Assert.IsTrue(aspectRatio.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(minMonochrome.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(minColorIndex.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(minColor.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(resolution.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(defaultExpression.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(colorIndex.Matches(deviceDescription));
        }
Exemplo n.º 4
0
        public virtual void GetCssRuleSetsTest()
        {
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");
            String             html     = "<a id=\"123\" class=\"baz = 'bar'\" style = media= all and (min-width: 600px) />";
            IDocumentNode      node     = new JsoupHtmlParser().Parse(html);
            IList <CssRuleSet> ruleSets = new CssMediaRule("only all and (min-width: 600px) and (min-height: 600px)").GetCssRuleSets
                                              (node, deviceDescription);

            NUnit.Framework.Assert.IsNotNull(ruleSets);
        }
Exemplo n.º 5
0
        public virtual void MatchMediaDeviceTest()
        {
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetHeight(450);
            deviceDescription.SetWidth(600);
            CssMediaRule rule = new CssMediaRule("@media all and (min-width: 600px) and (min-height: 600px)");

            NUnit.Framework.Assert.IsTrue(rule.MatchMediaDevice(deviceDescription));
        }
Exemplo n.º 6
0
        public virtual void MatchTest()
        {
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");
            MediaQuery             query             = MediaQueryParser.ParseMediaQuery("not all and (min-width: 600px)");
            IList <MediaQuery>     queries           = MediaQueryParser.ParseMediaQueries("not all and (min-width: 600px), not all and (min-width: 500px)"
                                                                                          );

            NUnit.Framework.Assert.IsTrue(query.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(queries[0].Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(queries[1].Matches(deviceDescription));
        }
Exemplo n.º 7
0
 /// <summary>Tries to match a media device.</summary>
 /// <param name="deviceDescription">the device description</param>
 /// <returns>true, if successful</returns>
 public virtual bool MatchMediaDevice(MediaDeviceDescription deviceDescription)
 {
     foreach (MediaQuery mediaQuery in mediaQueries)
     {
         if (mediaQuery.Matches(deviceDescription))
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 8
0
        public virtual void MediaExpressionTestTest02()
        {
            MediaExpression        maxWidth          = new MediaExpression("max-width", "600px");
            MediaExpression        maxHeight         = new MediaExpression("max-height", "600px");
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetWidth(450);
            deviceDescription.SetHeight(450);
            NUnit.Framework.Assert.IsTrue(maxHeight.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(maxWidth.Matches(deviceDescription));
        }
Exemplo n.º 9
0
        public virtual void Test04()
        {
            String        htmlFileName = sourceFolder + "html04.html";
            String        cssFileName  = sourceFolder + "css04.css";
            IXmlParser    htmlParser   = new JsoupHtmlParser();
            IDocumentNode document     = htmlParser.Parse(new FileStream(htmlFileName, FileMode.Open, FileAccess.Read), "UTF-8"
                                                          );
            CssStyleSheet          css = CssStyleSheetParser.Parse(new FileStream(cssFileName, FileMode.Open, FileAccess.Read));
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription(MediaType.PRINT).SetColorIndex(256);
            IElementNode           element           = new JsoupElementNode(((JsoupDocumentNode)document).GetDocument().GetElementsByTag("p"
                                                                                                                                         ).First());
            IList <CssDeclaration> declarations = css.GetCssDeclarations(element, deviceDescription);

            NUnit.Framework.Assert.AreEqual(2, declarations.Count);
            NUnit.Framework.Assert.AreEqual("color: red", declarations[0].ToString());
            NUnit.Framework.Assert.AreEqual("font-size: 20em", declarations[1].ToString());
        }
Exemplo n.º 10
0
        /* (non-Javadoc)
         * @see com.itextpdf.styledxmlparser.css.CssNestedAtRule#getCssRuleSets(com.itextpdf.styledxmlparser.html.node.INode, com.itextpdf.styledxmlparser.css.media.MediaDeviceDescription)
         */
        public override IList <CssRuleSet> GetCssRuleSets(INode element, MediaDeviceDescription deviceDescription)
        {
            IList <CssRuleSet> result = new List <CssRuleSet>();

            foreach (MediaQuery mediaQuery in mediaQueries)
            {
                if (mediaQuery.Matches(deviceDescription))
                {
                    foreach (CssStatement childStatement in body)
                    {
                        result.AddAll(childStatement.GetCssRuleSets(element, deviceDescription));
                    }
                    break;
                }
            }
            return(result);
        }
Exemplo n.º 11
0
        public virtual void MediaExpressionTestTest04()
        {
            MediaExpression        minColorIndex     = new MediaExpression("min-color-index", "15000");
            MediaExpression        minResolution     = new MediaExpression("min-resolution", "150dpi");
            MediaExpression        minColor          = new MediaExpression("min-color", "8");
            MediaExpression        minAspectRatio    = new MediaExpression("min-aspect-ratio", "8/5");
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetColorIndex(15000);
            deviceDescription.SetBitsPerComponent(8);
            deviceDescription.SetResolution(150);
            deviceDescription.SetWidth(32);
            deviceDescription.SetHeight(20);
            NUnit.Framework.Assert.IsTrue(minAspectRatio.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(minColorIndex.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(minColor.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(minResolution.Matches(deviceDescription));
        }
Exemplo n.º 12
0
        public virtual void Test05()
        {
            String        htmlFileName = sourceFolder + "html05.html";
            String        cssFileName  = sourceFolder + "css05.css";
            IXmlParser    htmlParser   = new JsoupHtmlParser();
            IDocumentNode document     = htmlParser.Parse(new FileStream(htmlFileName, FileMode.Open, FileAccess.Read), "UTF-8"
                                                          );
            CssStyleSheet css     = CssStyleSheetParser.Parse(new FileStream(cssFileName, FileMode.Open, FileAccess.Read));
            IElementNode  element = new JsoupElementNode(((JsoupDocumentNode)document).GetDocument().GetElementsByTag("p"
                                                                                                                      ).First());
            MediaDeviceDescription deviceDescription1 = new MediaDeviceDescription(MediaType.PRINT).SetWidth(300).SetHeight
                                                            (301);
            MediaDeviceDescription deviceDescription2 = new MediaDeviceDescription(MediaType.SCREEN).SetWidth(400).SetHeight
                                                            (400);
            IList <CssDeclaration> declarations1 = css.GetCssDeclarations(element, deviceDescription1);
            IList <CssDeclaration> declarations2 = css.GetCssDeclarations(element, deviceDescription2);

            NUnit.Framework.Assert.AreEqual(0, declarations1.Count);
            NUnit.Framework.Assert.AreEqual(1, declarations2.Count);
            NUnit.Framework.Assert.AreEqual("color: red", declarations2[0].ToString());
        }
Exemplo n.º 13
0
        /// <summary>Tries to match a device description with the media query.</summary>
        /// <param name="deviceDescription">the device description</param>
        /// <returns>true, if successful</returns>
        public virtual bool Matches(MediaDeviceDescription deviceDescription)
        {
            bool typeMatches = type == null || MediaType.ALL.Equals(type) || Object.Equals(type, deviceDescription.GetType
                                                                                               ());
            bool matchesExpressions = true;

            foreach (MediaExpression expression in expressions)
            {
                if (!expression.Matches(deviceDescription))
                {
                    matchesExpressions = false;
                    break;
                }
            }
            bool expressionResult = typeMatches && matchesExpressions;

            if (not)
            {
                expressionResult = !expressionResult;
            }
            return(expressionResult);
        }
Exemplo n.º 14
0
        public virtual void Test02()
        {
            String        htmlFileName = sourceFolder + "html02.html";
            String        cssFileName  = sourceFolder + "css02.css";
            IXmlParser    htmlParser   = new JsoupHtmlParser();
            IDocumentNode document     = htmlParser.Parse(new FileStream(htmlFileName, FileMode.Open, FileAccess.Read), "UTF-8"
                                                          );
            CssStyleSheet css     = CssStyleSheetParser.Parse(new FileStream(cssFileName, FileMode.Open, FileAccess.Read));
            IElementNode  element = new JsoupElementNode(((JsoupDocumentNode)document).GetDocument().GetElementsByTag("p"
                                                                                                                      ).First());
            MediaDeviceDescription deviceDescription1 = new MediaDeviceDescription(MediaType.PRINT);

            deviceDescription1.SetWidth(525);
            MediaDeviceDescription deviceDescription2 = new MediaDeviceDescription(MediaType.HANDHELD);

            deviceDescription2.SetOrientation("landscape");
            IList <CssDeclaration> declarations1 = css.GetCssDeclarations(element, deviceDescription1);
            IList <CssDeclaration> declarations2 = css.GetCssDeclarations(element, deviceDescription2);

            NUnit.Framework.Assert.IsTrue(Enumerable.SequenceEqual(declarations1, declarations2));
            NUnit.Framework.Assert.AreEqual(1, declarations1.Count);
            NUnit.Framework.Assert.AreEqual("font-weight: bold", declarations1[0].ToString());
        }
Exemplo n.º 15
0
        public virtual void MediaExpressionTestTest05()
        {
            MediaExpression        maxColorIndex     = new MediaExpression("max-color-index", null);
            MediaExpression        maxColor          = new MediaExpression("max-color", null);
            MediaExpression        maxWidth          = new MediaExpression("width", "600ex");
            MediaExpression        maxHeight         = new MediaExpression("height", "600ex");
            MediaExpression        maxMonochrome     = new MediaExpression("max-monochrome", "0");
            MediaExpression        maxResolution     = new MediaExpression("max-resolution", "150dpi");
            MediaDeviceDescription deviceDescription = new MediaDeviceDescription("all");

            deviceDescription.SetHeight(450);
            deviceDescription.SetWidth(450);
            deviceDescription.SetColorIndex(15000);
            deviceDescription.SetBitsPerComponent(8);
            deviceDescription.SetMonochrome(0);
            deviceDescription.SetResolution(150);
            NUnit.Framework.Assert.IsTrue(maxMonochrome.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(maxHeight.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(maxWidth.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(maxColorIndex.Matches(deviceDescription));
            NUnit.Framework.Assert.IsFalse(maxColor.Matches(deviceDescription));
            NUnit.Framework.Assert.IsTrue(maxResolution.Matches(deviceDescription));
        }
Exemplo n.º 16
0
        /// <summary>
        /// Tries to match a
        /// <see cref="MediaDeviceDescription"/>.
        /// </summary>
        /// <param name="deviceDescription">the device description</param>
        /// <returns>true, if successful</returns>
        public virtual bool Matches(MediaDeviceDescription deviceDescription)
        {
            switch (feature)
            {
            case MediaFeature.COLOR: {
                int?val = CssUtils.ParseInteger(value);
                if (minPrefix)
                {
                    return(val != null && deviceDescription.GetBitsPerComponent() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(val != null && deviceDescription.GetBitsPerComponent() <= val);
                    }
                    else
                    {
                        return(val == null?deviceDescription.GetBitsPerComponent() != 0 : val == deviceDescription.GetBitsPerComponent
                                   ());
                    }
                }
                goto case MediaFeature.COLOR_INDEX;
            }

            case MediaFeature.COLOR_INDEX: {
                int?val = CssUtils.ParseInteger(value);
                if (minPrefix)
                {
                    return(val != null && deviceDescription.GetColorIndex() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(val != null && deviceDescription.GetColorIndex() <= val);
                    }
                    else
                    {
                        return(val == null?deviceDescription.GetColorIndex() != 0 : val == deviceDescription.GetColorIndex());
                    }
                }
                goto case MediaFeature.ASPECT_RATIO;
            }

            case MediaFeature.ASPECT_RATIO: {
                int[] aspectRatio = CssUtils.ParseAspectRatio(value);
                if (minPrefix)
                {
                    return(aspectRatio != null && aspectRatio[0] * deviceDescription.GetHeight() >= aspectRatio[1] * deviceDescription
                           .GetWidth());
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(aspectRatio != null && aspectRatio[0] * deviceDescription.GetHeight() <= aspectRatio[1] * deviceDescription
                               .GetWidth());
                    }
                    else
                    {
                        return(aspectRatio != null && CssUtils.CompareFloats(aspectRatio[0] * deviceDescription.GetHeight(), aspectRatio
                                                                             [1] * deviceDescription.GetWidth()));
                    }
                }
                goto case MediaFeature.GRID;
            }

            case MediaFeature.GRID: {
                int?val = CssUtils.ParseInteger(value);
                return(val != null && val == 0 && !deviceDescription.IsGrid() || deviceDescription.IsGrid());
            }

            case MediaFeature.SCAN: {
                return(Object.Equals(value, deviceDescription.GetScan()));
            }

            case MediaFeature.ORIENTATION: {
                return(Object.Equals(value, deviceDescription.GetOrientation()));
            }

            case MediaFeature.MONOCHROME: {
                int?val = CssUtils.ParseInteger(value);
                if (minPrefix)
                {
                    return(val != null && deviceDescription.GetMonochrome() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(val != null && deviceDescription.GetMonochrome() <= val);
                    }
                    else
                    {
                        return(val == null?deviceDescription.GetMonochrome() > 0 : val == deviceDescription.GetMonochrome());
                    }
                }
                goto case MediaFeature.HEIGHT;
            }

            case MediaFeature.HEIGHT: {
                float val = ParseAbsoluteLength(value);
                if (minPrefix)
                {
                    return(deviceDescription.GetHeight() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(deviceDescription.GetHeight() <= val);
                    }
                    else
                    {
                        return(deviceDescription.GetHeight() > 0);
                    }
                }
                goto case MediaFeature.WIDTH;
            }

            case MediaFeature.WIDTH: {
                float val = ParseAbsoluteLength(value);
                if (minPrefix)
                {
                    return(deviceDescription.GetWidth() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(deviceDescription.GetWidth() <= val);
                    }
                    else
                    {
                        return(deviceDescription.GetWidth() > 0);
                    }
                }
                goto case MediaFeature.RESOLUTION;
            }

            case MediaFeature.RESOLUTION: {
                float val = CssUtils.ParseResolution(value);
                if (minPrefix)
                {
                    return(deviceDescription.GetResolution() >= val);
                }
                else
                {
                    if (maxPrefix)
                    {
                        return(deviceDescription.GetResolution() <= val);
                    }
                    else
                    {
                        return(deviceDescription.GetResolution() > 0);
                    }
                }
                goto default;
            }

            default: {
                return(false);
            }
            }
        }