1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import org.htmlunit.SimpleWebTestCase;
18 import org.htmlunit.junit.BrowserRunner;
19 import org.junit.Test;
20 import org.junit.runner.RunWith;
21
22
23
24
25
26
27
28
29 @RunWith(BrowserRunner.class)
30 public class HtmlDivisionTest extends SimpleWebTestCase {
31
32
33
34
35 @Test
36 public void asNormalizedText() throws Exception {
37 String expected = "hello\nworld";
38 testAsNormalizedText(expected, "<div>hello</div>world");
39 testAsNormalizedText(expected, "<div>hello<br/></div>world");
40
41 expected = "hello\n\nworld";
42 testAsNormalizedText(expected, "<div>hello<br/><br/></div>world");
43 }
44
45
46
47
48 @Test
49 public void asTextContiguousBlocks() throws Exception {
50 final String expected = "hello\nworld";
51 testAsNormalizedText(expected, "<div><table><tr><td>hello</td></tr><tr><td>world<br/></td></tr></table></div>");
52 testAsNormalizedText(expected, "<div>hello</div><div>world</div>");
53 testAsNormalizedText(expected, "<div>hello</div><div><div>world</div></div>");
54 testAsNormalizedText(expected, "<div><table><tr><td>hello</td></tr><tr><td>world<br/></td></tr></table></div>");
55 }
56
57 private void testAsNormalizedText(final String expected, final String htmlSnippet) throws Exception {
58 final String html = DOCTYPE_HTML
59 + "<html><head></head><body>\n"
60 + htmlSnippet
61 + "</body></html>";
62
63 final HtmlPage page = loadPage(html);
64 assertEquals(expected, page.asNormalizedText());
65 }
66
67
68
69
70 @Test
71 public void asTextDiv() throws Exception {
72 final String html = DOCTYPE_HTML
73 + "<html><head></head><body>\n"
74 + "<div id='foo'>\n \n hello </div>\n"
75 + "</body></html>";
76
77 final HtmlPage page = loadPage(html);
78 assertEquals("hello", page.asNormalizedText());
79 final HtmlDivision div = page.getHtmlElementById("foo");
80 assertEquals("hello", div.asNormalizedText());
81 }
82
83
84
85
86 @Test
87 public void css() throws Exception {
88 final String html = DOCTYPE_HTML
89 + "<html><head></head><body>\n"
90 + "<div style='display:inline'>1</div><div style='display:inline'>2</div>\n"
91 + "</body></html>";
92
93 final HtmlPage page = loadPage(html);
94 assertEquals("12", page.getBody().asNormalizedText());
95 }
96 }