1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html;
16
17 import java.text.MessageFormat;
18 import java.util.ArrayList;
19 import java.util.Arrays;
20 import java.util.Collection;
21 import java.util.List;
22
23 import org.htmlunit.BrowserVersion;
24 import org.htmlunit.SimpleWebTestCase;
25 import org.junit.Test;
26 import org.junit.runner.RunWith;
27 import org.junit.runners.Parameterized;
28 import org.junit.runners.Parameterized.Parameters;
29
30
31
32
33
34
35
36
37
38 @RunWith(Parameterized.class)
39 public class DisabledElementTest extends SimpleWebTestCase {
40
41
42
43
44
45 @Parameters
46 public static Collection<String[]> data() {
47 return Arrays.asList(new String[][] {
48 {"<button id='element1' {0}>foo</button>"},
49 {"<input type='button' id='element1' {0}>"},
50 {"<input type='checkbox' id='element1' {0}>"},
51 {"<input type='file' id='element1' {0}>"},
52 {"<input type='hidden' id='element1' {0}>"},
53 {"<input type='image' id='element1' {0}>"},
54 {"<input type='password' id='element1' {0}>"},
55 {"<input type='radio' id='element1' {0}>"},
56 {"<input type='reset' id='element1' {0}>"},
57 {"<input type='submit' id='element1' {0}>"},
58 {"<input type='text' id='element1' {0}>"},
59 {"<select><optgroup id='element1' {0}><option value='1'></option></optgroup></select>"},
60 {"<select><option id='element1' value='1' {0}></option></select>"},
61 {"<select id='element1' {0}><option value='1'></option></select>"},
62 {"<textarea id='element1' {0}></textarea>"}
63 });
64 }
65
66 private final String htmlContent_;
67
68
69
70
71
72
73 public DisabledElementTest(final String elementHtml) {
74 final String htmlContent = DOCTYPE_HTML + "<html><body><form id='form1'>{0}</form></body></html>";
75 htmlContent_ = MessageFormat.format(htmlContent, new Object[]{elementHtml});
76 }
77
78
79
80
81
82
83
84 @Test
85 public void noDisabledAttribute() throws Exception {
86 executeDisabledTest("", false);
87 }
88
89
90
91
92
93
94
95 @Test
96 public void blankDisabledAttribute() throws Exception {
97 executeDisabledTest("disabled=''", true);
98 }
99
100
101
102
103
104
105
106 @Test
107 public void populatedDisabledAttribute() throws Exception {
108 executeDisabledTest("disabled='disabled'", true);
109 }
110
111
112
113
114
115
116
117
118 private void executeDisabledTest(final String disabledAttribute, final boolean expectedIsDisabled)
119 throws Exception {
120
121 final String htmlContent = MessageFormat.format(htmlContent_, new Object[]{disabledAttribute});
122 final List<String> collectedAlerts = new ArrayList<>();
123 final HtmlPage page = loadPage(BrowserVersion.CHROME, htmlContent, collectedAlerts, URL_FIRST);
124
125 final DisabledElement element = (DisabledElement) page.getHtmlElementById("element1");
126 assertEquals(expectedIsDisabled, element.isDisabled());
127 }
128
129 }