public virtual void DummyProcessingTestCorrectNested()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            INode nestedSvg = new JsoupElementNode(jsoupSVGRoot);

            nestedSvg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            nestedSvg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(nestedSvg);
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            IBranchSvgNodeRenderer rootExpected = new DummyBranchSvgNodeRenderer("svg");

            rootExpected.AddChild(new DummySvgNodeRenderer("circle"));
            rootExpected.AddChild(new DummySvgNodeRenderer("path"));
            IBranchSvgNodeRenderer nestedSvgRend = new DummyBranchSvgNodeRenderer("svg");

            nestedSvgRend.AddChild(new DummySvgNodeRenderer("circle"));
            nestedSvgRend.AddChild(new DummySvgNodeRenderer("circle"));
            rootExpected.AddChild(nestedSvgRend);
            //Compare
            NUnit.Framework.Assert.AreEqual(rootActual, rootExpected);
        }
        public virtual void DefaultProcessingCorrectlyNestedRenderersTest()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            //Run
            DefaultSvgProcessor    processor    = new DefaultSvgProcessor();
            SvgConverterProperties convProps    = new SvgConverterProperties();
            ISvgNodeRenderer       rootRenderer = processor.Process(root, convProps).GetRootRenderer();

            NUnit.Framework.Assert.IsTrue(rootRenderer is SvgTagSvgNodeRenderer);
            IList <ISvgNodeRenderer> children = ((SvgTagSvgNodeRenderer)rootRenderer).GetChildren();

            NUnit.Framework.Assert.AreEqual(2, children.Count);
            NUnit.Framework.Assert.IsTrue(children[0] is CircleSvgNodeRenderer);
            NUnit.Framework.Assert.IsTrue(children[1] is PathSvgNodeRenderer);
        }
예제 #3
0
        public virtual void TestMessageAddingChild()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(null);
            NUnit.Framework.Assert.AreEqual(0, root.ChildNodes().Count);
        }
        public virtual void DummyProcessingTestNodeHasNullChild()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(null);
            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            ISvgNodeRenderer rootExpected = new DummySvgNodeRenderer("svg");

            NUnit.Framework.Assert.AreEqual(rootExpected, rootActual);
        }
        public virtual void DefaultProcessingTestPassedPropertiesNull()
        {
            //Setup nodes
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGPath = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("path"), "");
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(new JsoupElementNode(jsoupSVGPath));
            //Run
            DefaultSvgProcessor processor  = new DefaultSvgProcessor();
            ISvgNodeRenderer    rootActual = processor.Process(root, null).GetRootRenderer();

            //Compare
            NUnit.Framework.Assert.IsNull(rootActual);
        }
        private INode CreateSvgContainingImage()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Attributes attr = new iText.StyledXmlParser.Jsoup.Nodes.Attributes();
            attr.Put(SvgConstants.Attributes.XLINK_HREF, "img.png");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGImage = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                    .ValueOf("image"), "", attr);
            INode root = new JsoupElementNode(jsoupSVGRoot);

            root.AddChild(new JsoupElementNode(jsoupSVGImage));
            return(root);
        }
예제 #7
0
        public virtual void InheritedDefaultStyleTest()
        {
            ICssResolver styleResolver = new SvgStyleResolver();

            iText.StyledXmlParser.Jsoup.Nodes.Element svg = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                          .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element circle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                             .ValueOf("circle"), "");
            INode svgNode = new JsoupElementNode(svg);

            svgNode.AddChild(new JsoupElementNode(circle));
            IDictionary <String, String> resolvedStyles = styleResolver.ResolveStyles(svgNode.ChildNodes()[0], null);

            NUnit.Framework.Assert.AreEqual("black", resolvedStyles.Get(SvgConstants.Attributes.STROKE));
        }
예제 #8
0
        public virtual void FontsResolverTagTest()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element styleTag = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                               .ValueOf("style"), "");
            TextNode styleContents = new TextNode("\n" + "\t@font-face{\n" + "\t\tfont-family:Courier;\n" + "\t\tsrc:url(#Super Sans);\n"
                                                  + "\t}\n" + "  ", "");
            JsoupElementNode jSoupStyle = new JsoupElementNode(styleTag);

            jSoupStyle.AddChild(new JsoupTextNode(styleContents));
            SvgProcessorContext     context          = new SvgProcessorContext(new SvgConverterProperties());
            SvgStyleResolver        resolver         = new SvgStyleResolver(jSoupStyle, context);
            IList <CssFontFaceRule> fontFaceRuleList = resolver.GetFonts();

            NUnit.Framework.Assert.AreEqual(1, fontFaceRuleList.Count);
            NUnit.Framework.Assert.AreEqual(2, fontFaceRuleList[0].GetProperties().Count);
        }
 public virtual void DummyProcessingNoSvgTagInInput()
 {
     NUnit.Framework.Assert.That(() => {
         iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                .ValueOf("polygon"), "");
         iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                  .ValueOf("circle"), "");
         INode root = new JsoupElementNode(jsoupSVGRoot);
         root.AddChild(new JsoupElementNode(jsoupSVGCircle));
         //Run
         DefaultSvgProcessor processor = new DefaultSvgProcessor();
         ISvgConverterProperties props = new DummySvgConverterProperties();
         processor.Process(root, props).GetRootRenderer();
     }
                                 , NUnit.Framework.Throws.InstanceOf <SvgProcessingException>().With.Message.EqualTo(SvgLogMessageConstant.NOROOT))
     ;
 }
        public virtual void AddFontFaceFontsTest()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element styleTag = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                               .ValueOf("style"), "");
            TextNode styleContents = new TextNode("\n" + "\t@font-face{\n" + "\t\tfont-family:Courier;\n" + "\t\tsrc:local(Courier);\n"
                                                  + "\t}\n" + "  ", "");
            JsoupElementNode jSoupStyle = new JsoupElementNode(styleTag);

            jSoupStyle.AddChild(new JsoupTextNode(styleContents));
            SvgProcessorContext context          = new SvgProcessorContext(new SvgConverterProperties());
            ICssResolver        cssResolver      = new SvgStyleResolver(jSoupStyle, context);
            SvgFontProcessor    svgFontProcessor = new SvgFontProcessor(context);

            svgFontProcessor.AddFontFaceFonts(cssResolver);
            FontInfo info = (FontInfo)context.GetTempFonts().GetFonts().ToArray()[0];

            NUnit.Framework.Assert.AreEqual("Courier", info.GetFontName());
        }
예제 #11
0
        public virtual void SvgCssResolverStyleTagTest()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element styleTag = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                               .ValueOf("style"), "");
            TextNode styleContents = new TextNode("\n" + "\tellipse{\n" + "\t\tstroke-width:1.76388889;\n" + "\t\tstroke:#da0000;\n"
                                                  + "\t\tstroke-opacity:1;\n" + "\t}\n" + "  ", "");
            JsoupElementNode jSoupStyle = new JsoupElementNode(styleTag);

            jSoupStyle.AddChild(new JsoupTextNode(styleContents));
            iText.StyledXmlParser.Jsoup.Nodes.Element ellipse = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                              .ValueOf("ellipse"), "");
            JsoupElementNode             jSoupEllipse = new JsoupElementNode(ellipse);
            SvgProcessorContext          context      = new SvgProcessorContext(new SvgConverterProperties());
            SvgStyleResolver             resolver     = new SvgStyleResolver(jSoupStyle, context);
            AbstractCssContext           svgContext   = new SvgCssContext();
            IDictionary <String, String> actual       = resolver.ResolveStyles(jSoupEllipse, svgContext);
            IDictionary <String, String> expected     = new Dictionary <String, String>();

            expected.Put("stroke-width", "1.76388889");
            expected.Put("stroke", "#da0000");
            expected.Put("stroke-opacity", "1");
            NUnit.Framework.Assert.AreEqual(expected, actual);
        }
        public virtual void DummyProcessingSvgTagIsNotRootOfInput()
        {
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupRandomElement = new iText.StyledXmlParser.Jsoup.Nodes.Element
                                                                               (iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("body"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGRoot = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                   .ValueOf("svg"), "");
            iText.StyledXmlParser.Jsoup.Nodes.Element jsoupSVGCircle = new iText.StyledXmlParser.Jsoup.Nodes.Element(iText.StyledXmlParser.Jsoup.Parser.Tag
                                                                                                                     .ValueOf("circle"), "");
            INode root = new JsoupElementNode(jsoupRandomElement);
            INode svg  = new JsoupElementNode(jsoupSVGRoot);

            svg.AddChild(new JsoupElementNode(jsoupSVGCircle));
            root.AddChild(svg);
            //Run
            DefaultSvgProcessor     processor  = new DefaultSvgProcessor();
            ISvgConverterProperties props      = new DummySvgConverterProperties();
            ISvgNodeRenderer        rootActual = processor.Process(root, props).GetRootRenderer();
            //setup expected
            IBranchSvgNodeRenderer rootExpected = new DummyBranchSvgNodeRenderer("svg");

            rootExpected.AddChild(new DummySvgNodeRenderer("circle"));
            NUnit.Framework.Assert.AreEqual(rootActual, rootExpected);
        }