1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import java.util.ArrayList;
18 import java.util.List;
19
20 import org.htmlunit.SimpleWebTestCase;
21 import org.htmlunit.junit.BrowserRunner;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24
25
26
27
28
29
30
31
32 @RunWith(BrowserRunner.class)
33 public class HtmlCheckBoxInputTest extends SimpleWebTestCase {
34
35
36
37
38
39
40
41
42
43
44 @Test
45 public void onClick() throws Exception {
46 final String html = DOCTYPE_HTML
47 + "<html><head><title>foo</title></head><body>\n"
48 + "<form id='form1' onSubmit='alert(\"bar\")' onReset='alert(\"reset\")'>\n"
49 + " <input type='checkbox' name='checkbox' id='checkbox' "
50 + "onClick='alert(\"foo\");alert(event.type);'>Check me</input>\n"
51 + "</form></body></html>";
52
53 final List<String> collectedAlerts = new ArrayList<>();
54 final HtmlPage page = loadPage(html, collectedAlerts);
55 final HtmlCheckBoxInput checkBox = page.getHtmlElementById("checkbox");
56 final HtmlPage secondPage = checkBox.click();
57
58 final String[] expectedAlerts = {"foo", "click"};
59 assertEquals(expectedAlerts, collectedAlerts);
60
61 assertSame(page, secondPage);
62 assertTrue(checkBox.isChecked());
63 }
64
65
66
67
68
69
70
71
72
73
74 @Test
75 public void onClickThatSubmitsForm() throws Exception {
76 final String html = DOCTYPE_HTML
77 + "<html><head><title>foo</title></head><body>\n"
78 + "<form id='form1' name='form1'>\n"
79 + " <input type='checkbox' name='checkbox' id='checkbox' "
80 + "onClick='document.form1.submit()'>Check me</input>\n"
81 + "</form></body></html>";
82 final HtmlPage page = loadPage(html);
83 final HtmlCheckBoxInput checkBox = page.getHtmlElementById("checkbox");
84
85 final HtmlPage secondPage = checkBox.click();
86
87 assertNotSame(page, secondPage);
88 assertTrue(checkBox.isChecked());
89 }
90
91
92
93
94
95 @Test
96 public void asNormalizedText() throws Exception {
97 final String html = DOCTYPE_HTML
98 + "<html><head></head><body>\n"
99 + "<form id='form1'>\n"
100 + " <input type='checkbox' name='checkbox' id='checkbox'>Check me</input>\n"
101 + "</form></body></html>";
102
103 final HtmlPage page = loadPage(html);
104
105 final HtmlCheckBoxInput checkBox = page.getHtmlElementById("checkbox");
106 assertEquals("unchecked", checkBox.asNormalizedText());
107 assertEquals("uncheckedCheck me", page.asNormalizedText());
108 checkBox.setChecked(true);
109 assertEquals("checked", checkBox.asNormalizedText());
110 }
111 }