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); }
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); }
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)); }
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()); }
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); }