Exemplo n.º 1
0
        public virtual void HandlesAbsOnImage()
        {
            Document doc = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<p><img src=\"/rez/osi_logo.png\" /></p>", "http://jsoup.org/"
                                                                   );

            iText.StyledXmlParser.Jsoup.Nodes.Element img = doc.Select("img").First();
            NUnit.Framework.Assert.AreEqual("http://jsoup.org/rez/osi_logo.png", img.Attr("abs:src"));
            NUnit.Framework.Assert.AreEqual(img.AbsUrl("src"), img.Attr("abs:src"));
        }
Exemplo n.º 2
0
        public virtual void AbsHandlesRelativeQuery()
        {
            Document doc = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<a href='?foo'>One</a> <a href='bar.html?foo'>Two</a>"
                                                                   , "http://jsoup.org/path/file?bar");

            iText.StyledXmlParser.Jsoup.Nodes.Element a1 = doc.Select("a").First();
            NUnit.Framework.Assert.AreEqual("http://jsoup.org/path/file?foo", a1.AbsUrl("href"));
            iText.StyledXmlParser.Jsoup.Nodes.Element a2 = doc.Select("a")[1];
            NUnit.Framework.Assert.AreEqual("http://jsoup.org/path/bar.html?foo", a2.AbsUrl("href"));
        }
Exemplo n.º 3
0
        public virtual void HandlesBaseUri()
        {
            iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("a");
            Attributes attribs = new Attributes();

            attribs.Put("relHref", "/foo");
            attribs.Put("absHref", "http://bar/qux");
            iText.StyledXmlParser.Jsoup.Nodes.Element noBase = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, "",
                                                                                                             attribs);
            NUnit.Framework.Assert.AreEqual("", noBase.AbsUrl("relHref"));
            // with no base, should NOT fallback to href attrib, whatever it is
            NUnit.Framework.Assert.AreEqual("http://bar/qux", noBase.AbsUrl("absHref"));
            // no base but valid attrib, return attrib
            iText.StyledXmlParser.Jsoup.Nodes.Element withBase = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, "http://foo/"
                                                                                                               , attribs);
            NUnit.Framework.Assert.AreEqual("http://foo/foo", withBase.AbsUrl("relHref"));
            // construct abs from base + rel
            NUnit.Framework.Assert.AreEqual("http://bar/qux", withBase.AbsUrl("absHref"));
            // href is abs, so returns that
            NUnit.Framework.Assert.AreEqual("", withBase.AbsUrl("noval"));
            iText.StyledXmlParser.Jsoup.Nodes.Element dodgyBase = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, "wtf://no-such-protocol/"
                                                                                                                , attribs);
            NUnit.Framework.Assert.AreEqual("http://bar/qux", dodgyBase.AbsUrl("absHref"));
        }
Exemplo n.º 4
0
        public virtual void HandlesAbsPrefixOnHasAttr()
        {
            // 1: no abs url; 2: has abs url
            Document doc = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<a id=1 href='/foo'>One</a> <a id=2 href='http://jsoup.org/'>Two</a>"
                                                                   );

            iText.StyledXmlParser.Jsoup.Nodes.Element one = doc.Select("#1").First();
            iText.StyledXmlParser.Jsoup.Nodes.Element two = doc.Select("#2").First();
            NUnit.Framework.Assert.IsFalse(one.HasAttr("abs:href"));
            NUnit.Framework.Assert.IsTrue(one.HasAttr("href"));
            NUnit.Framework.Assert.AreEqual("", one.AbsUrl("href"));
            NUnit.Framework.Assert.IsTrue(two.HasAttr("abs:href"));
            NUnit.Framework.Assert.IsTrue(two.HasAttr("href"));
            NUnit.Framework.Assert.AreEqual("http://jsoup.org/", two.AbsUrl("href"));
        }
Exemplo n.º 5
0
        public virtual void HandlesAbsOnProtocolessAbsoluteUris()
        {
            Document doc1 = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<a href='//example.net/foo'>One</a>", "http://example.com/"
                                                                    );
            Document doc2 = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<a href='//example.net/foo'>One</a>", "https://example.com/"
                                                                    );

            iText.StyledXmlParser.Jsoup.Nodes.Element one = doc1.Select("a").First();
            iText.StyledXmlParser.Jsoup.Nodes.Element two = doc2.Select("a").First();
            NUnit.Framework.Assert.AreEqual("http://example.net/foo", one.AbsUrl("href"));
            NUnit.Framework.Assert.AreEqual("https://example.net/foo", two.AbsUrl("href"));
            Document doc3 = iText.StyledXmlParser.Jsoup.Jsoup.Parse("<img src=//www.google.com/images/errors/logo_sm.gif alt=Google>"
                                                                    , "https://google.com");

            NUnit.Framework.Assert.AreEqual("https://www.google.com/images/errors/logo_sm.gif", doc3.Select("img").Attr
                                                ("abs:src"));
        }