xref: /aosp_15_r20/external/jsoup/src/test/java/org/jsoup/parser/TagTest.java (revision 6da8f8c4bc310ad659121b84dd089062417a2ce2)
1 package org.jsoup.parser;
2 
3 import org.jsoup.MultiLocaleExtension.MultiLocaleTest;
4 import org.junit.jupiter.api.Test;
5 
6 import java.util.Locale;
7 
8 import static org.junit.jupiter.api.Assertions.*;
9 
10 /**
11  Tag tests.
12  @author Jonathan Hedley, [email protected] */
13 public class TagTest {
isCaseSensitive()14     @Test public void isCaseSensitive() {
15         Tag p1 = Tag.valueOf("P");
16         Tag p2 = Tag.valueOf("p");
17         assertNotEquals(p1, p2);
18     }
19 
20     @MultiLocaleTest
canBeInsensitive(Locale locale)21     public void canBeInsensitive(Locale locale) {
22         Locale.setDefault(locale);
23 
24         Tag script1 = Tag.valueOf("script", ParseSettings.htmlDefault);
25         Tag script2 = Tag.valueOf("SCRIPT", ParseSettings.htmlDefault);
26         assertSame(script1, script2);
27     }
28 
trims()29     @Test public void trims() {
30         Tag p1 = Tag.valueOf("p");
31         Tag p2 = Tag.valueOf(" p ");
32         assertEquals(p1, p2);
33     }
34 
equality()35     @Test public void equality() {
36         Tag p1 = Tag.valueOf("p");
37         Tag p2 = Tag.valueOf("p");
38         assertEquals(p1, p2);
39         assertSame(p1, p2);
40     }
41 
divSemantics()42     @Test public void divSemantics() {
43         Tag div = Tag.valueOf("div");
44 
45         assertTrue(div.isBlock());
46         assertTrue(div.formatAsBlock());
47     }
48 
pSemantics()49     @Test public void pSemantics() {
50         Tag p = Tag.valueOf("p");
51 
52         assertTrue(p.isBlock());
53         assertFalse(p.formatAsBlock());
54     }
55 
imgSemantics()56     @Test public void imgSemantics() {
57         Tag img = Tag.valueOf("img");
58         assertTrue(img.isInline());
59         assertTrue(img.isSelfClosing());
60         assertFalse(img.isBlock());
61     }
62 
defaultSemantics()63     @Test public void defaultSemantics() {
64         Tag foo = Tag.valueOf("FOO"); // not defined
65         Tag foo2 = Tag.valueOf("FOO");
66 
67         assertEquals(foo, foo2);
68         assertTrue(foo.isInline());
69         assertTrue(foo.formatAsBlock());
70     }
71 
valueOfChecksNotNull()72     @Test public void valueOfChecksNotNull() {
73         assertThrows(IllegalArgumentException.class, () -> Tag.valueOf(null));
74     }
75 
valueOfChecksNotEmpty()76     @Test public void valueOfChecksNotEmpty() {
77         assertThrows(IllegalArgumentException.class, () -> Tag.valueOf(" "));
78     }
79 
knownTags()80     @Test public void knownTags() {
81         assertTrue(Tag.isKnownTag("div"));
82         assertFalse(Tag.isKnownTag("explain"));
83     }
84 
knownSvgNamespace()85     @Test public void knownSvgNamespace() {
86         Tag svgHtml = Tag.valueOf("svg"); // no namespace specified, defaults to html, so not the known tag
87         Tag svg = Tag.valueOf("svg", Parser.NamespaceSvg, ParseSettings.htmlDefault);
88 
89         assertEquals(Parser.NamespaceHtml, svgHtml.namespace());
90         assertEquals(Parser.NamespaceSvg, svg.namespace());
91 
92         assertFalse(svgHtml.isBlock()); // generated
93         assertTrue(svg.isBlock()); // known
94     }
95 
unknownTagNamespace()96     @Test public void unknownTagNamespace() {
97         Tag fooHtml = Tag.valueOf("foo"); // no namespace specified, defaults to html
98         Tag foo = Tag.valueOf("foo", Parser.NamespaceSvg, ParseSettings.htmlDefault);
99 
100         assertEquals(Parser.NamespaceHtml, fooHtml.namespace());
101         assertEquals(Parser.NamespaceSvg, foo.namespace());
102 
103         assertFalse(fooHtml.isBlock()); // generated
104         assertFalse(foo.isBlock()); // generated
105     }
106 }
107