Exemplo n.º 1
0
 public virtual void Equality()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag p1 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("p");
     iText.StyledXmlParser.Jsoup.Parser.Tag p2 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("p");
     NUnit.Framework.Assert.IsTrue(p1.Equals(p2));
     NUnit.Framework.Assert.IsTrue(p1 == p2);
 }
Exemplo n.º 2
0
 public virtual void ImgSemantics()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag img = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("img");
     NUnit.Framework.Assert.IsTrue(img.IsInline());
     NUnit.Framework.Assert.IsTrue(img.IsSelfClosing());
     NUnit.Framework.Assert.IsFalse(img.IsBlock());
 }
Exemplo n.º 3
0
 internal virtual iText.StyledXmlParser.Jsoup.Nodes.Element InsertEmpty(Token.StartTag startTag)
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(startTag.Name(
                                                                                                     ));
     iText.StyledXmlParser.Jsoup.Nodes.Element el = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, baseUri,
                                                                                                  startTag.attributes);
     InsertNode(el);
     if (startTag.IsSelfClosing())
     {
         if (tag.IsKnownTag())
         {
             if (tag.IsSelfClosing())
             {
                 tokeniser.AcknowledgeSelfClosingFlag();
             }
         }
         else
         {
             // if not acked, promulagates error
             // unknown tag, remember this is self closing for output
             tag.SetSelfClosing();
             tokeniser.AcknowledgeSelfClosingFlag();
         }
     }
     // not an distinct error
     return(el);
 }
Exemplo n.º 4
0
 public virtual void DefaultSemantics()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag foo = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("foo");
     // not defined
     iText.StyledXmlParser.Jsoup.Parser.Tag foo2 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("FOO");
     NUnit.Framework.Assert.AreEqual(foo, foo2);
     NUnit.Framework.Assert.IsTrue(foo.IsInline());
     NUnit.Framework.Assert.IsTrue(foo.FormatAsBlock());
 }
Exemplo n.º 5
0
 static Tag()
 {
     // internal static initialisers:
     // prepped from http://www.w3.org/TR/REC-html40/sgml/dtd.html and other sources
     // script is not here as it is a data node, which always preserve whitespace
     // todo: I think we just need submit tags, and can scrub listed
     // creates
     foreach (String tagName in blockTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = new iText.StyledXmlParser.Jsoup.Parser.Tag(tagName);
         Register(tag);
     }
     foreach (String tagName in inlineTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = new iText.StyledXmlParser.Jsoup.Parser.Tag(tagName);
         tag.isBlock         = false;
         tag.canContainBlock = false;
         tag.formatAsBlock   = false;
         Register(tag);
     }
     // mods:
     foreach (String tagName in emptyTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.canContainBlock  = false;
         tag.canContainInline = false;
         tag.empty            = true;
     }
     foreach (String tagName in formatAsInlineTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formatAsBlock = false;
     }
     foreach (String tagName in preserveWhitespaceTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.preserveWhitespace = true;
     }
     foreach (String tagName in formListedTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formList = true;
     }
     foreach (String tagName in formSubmitTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formSubmit = true;
     }
 }
Exemplo n.º 6
0
        internal virtual FormElement InsertForm(Token.StartTag startTag, bool onStack)
        {
            iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(startTag.Name(
                                                                                                            ));
            FormElement el = new FormElement(tag, baseUri, startTag.attributes);

            SetFormElement(el);
            InsertNode(el);
            if (onStack)
            {
                stack.Add(el);
            }
            return(el);
        }
Exemplo n.º 7
0
 static Tag()
 {
     // creates
     foreach (String tagName in blockTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = new iText.StyledXmlParser.Jsoup.Parser.Tag(tagName);
         Register(tag);
     }
     foreach (String tagName in inlineTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = new iText.StyledXmlParser.Jsoup.Parser.Tag(tagName);
         tag.isBlock         = false;
         tag.canContainBlock = false;
         tag.formatAsBlock   = false;
         Register(tag);
     }
     // mods:
     foreach (String tagName in emptyTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.canContainBlock  = false;
         tag.canContainInline = false;
         tag.empty            = true;
     }
     foreach (String tagName in formatAsInlineTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formatAsBlock = false;
     }
     foreach (String tagName in preserveWhitespaceTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.preserveWhitespace = true;
     }
     foreach (String tagName in formListedTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formList = true;
     }
     foreach (String tagName in formSubmitTags)
     {
         iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
         Validate.NotNull(tag);
         tag.formSubmit = true;
     }
 }
Exemplo n.º 8
0
 public override bool Equals(Object o)
 {
     if (this == o)
     {
         return(true);
     }
     if (!(o is iText.StyledXmlParser.Jsoup.Parser.Tag))
     {
         return(false);
     }
     iText.StyledXmlParser.Jsoup.Parser.Tag tag = (iText.StyledXmlParser.Jsoup.Parser.Tag)o;
     if (!tagName.Equals(tag.tagName))
     {
         return(false);
     }
     if (canContainBlock != tag.canContainBlock)
     {
         return(false);
     }
     if (canContainInline != tag.canContainInline)
     {
         return(false);
     }
     if (empty != tag.empty)
     {
         return(false);
     }
     if (formatAsBlock != tag.formatAsBlock)
     {
         return(false);
     }
     if (isBlock != tag.isBlock)
     {
         return(false);
     }
     if (preserveWhitespace != tag.preserveWhitespace)
     {
         return(false);
     }
     if (selfClosing != tag.selfClosing)
     {
         return(false);
     }
     if (formList != tag.formList)
     {
         return(false);
     }
     return(formSubmit == tag.formSubmit);
 }
Exemplo n.º 9
0
 /// <summary>Get a Tag by name.</summary>
 /// <remarks>
 /// Get a Tag by name. If not previously defined (unknown), returns a new generic tag, that can do anything.
 /// <para />
 /// Pre-defined tags (P, DIV etc) will be ==, but unknown tags are not registered and will only .equals().
 /// </remarks>
 /// <param name="tagName">Name of tag, e.g. "p". Case insensitive.</param>
 /// <returns>The tag, either defined or new generic.</returns>
 public static iText.StyledXmlParser.Jsoup.Parser.Tag ValueOf(String tagName)
 {
     Validate.NotNull(tagName);
     iText.StyledXmlParser.Jsoup.Parser.Tag tag = tags.Get(tagName);
     if (tag == null)
     {
         tagName = tagName.Trim().ToLowerInvariant();
         Validate.NotEmpty(tagName);
         tag = tags.Get(tagName);
         if (tag == null)
         {
             // not defined: create default; go anywhere, do anything! (incl be inside a <p>)
             tag                 = new iText.StyledXmlParser.Jsoup.Parser.Tag(tagName);
             tag.isBlock         = false;
             tag.canContainBlock = true;
         }
     }
     return(tag);
 }
Exemplo n.º 10
0
 internal virtual iText.StyledXmlParser.Jsoup.Nodes.Element Insert(Token.StartTag startTag)
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag tag = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(startTag.Name(
                                                                                                     ));
     // todo: wonder if for xml parsing, should treat all tags as unknown? because it's not html.
     iText.StyledXmlParser.Jsoup.Nodes.Element el = new iText.StyledXmlParser.Jsoup.Nodes.Element(tag, baseUri,
                                                                                                  startTag.attributes);
     InsertNode(el);
     if (startTag.IsSelfClosing())
     {
         tokeniser.AcknowledgeSelfClosingFlag();
         if (!tag.IsKnownTag())
         {
             // unknown tag, remember this is self closing for output. see above.
             tag.SetSelfClosing();
         }
     }
     else
     {
         stack.Add(el);
     }
     return(el);
 }
Exemplo n.º 11
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.º 12
0
 public virtual void PSemantics()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag p = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("p");
     NUnit.Framework.Assert.IsTrue(p.IsBlock());
     NUnit.Framework.Assert.IsFalse(p.FormatAsBlock());
 }
Exemplo n.º 13
0
 public virtual void DivSemantics()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag div = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("div");
     NUnit.Framework.Assert.IsTrue(div.IsBlock());
     NUnit.Framework.Assert.IsTrue(div.FormatAsBlock());
 }
Exemplo n.º 14
0
 public virtual void Trims()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag p1 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("p");
     iText.StyledXmlParser.Jsoup.Parser.Tag p2 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf(" p ");
     NUnit.Framework.Assert.AreEqual(p1, p2);
 }
Exemplo n.º 15
0
 public virtual void IsCaseInsensitive()
 {
     iText.StyledXmlParser.Jsoup.Parser.Tag p1 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("P");
     iText.StyledXmlParser.Jsoup.Parser.Tag p2 = iText.StyledXmlParser.Jsoup.Parser.Tag.ValueOf("p");
     NUnit.Framework.Assert.AreEqual(p1, p2);
 }
Exemplo n.º 16
0
 /// <summary>Create a new, standalone form element.</summary>
 /// <param name="tag">tag of this element</param>
 /// <param name="baseUri">the base URI</param>
 /// <param name="attributes">initial attributes</param>
 public FormElement(iText.StyledXmlParser.Jsoup.Parser.Tag tag, String baseUri, Attributes attributes)
     : base(tag, baseUri, attributes)
 {
 }
Exemplo n.º 17
0
 private static void Register(iText.StyledXmlParser.Jsoup.Parser.Tag tag)
 {
     tags.Put(tag.tagName, tag);
 }