OLD | NEW |
| (Empty) |
1 description("This test performs a check that :valid/:invalid CSS psudo selectors
are lively applied."); | |
2 | |
3 // Setup for static elements. | |
4 var form = document.createElement('form'); | |
5 document.body.appendChild(form); | |
6 var nonForm = document.createElement('div'); | |
7 document.body.appendChild(nonForm); | |
8 | |
9 function makeInvalid() { | |
10 var i = document.createElement('textarea'); | |
11 i.name = 'foo'; | |
12 i.required = true; | |
13 i.value = ''; | |
14 form.appendChild(i); | |
15 return i; | |
16 } | |
17 | |
18 function backgroundOf(el) { | |
19 return document.defaultView.getComputedStyle(el, null).getPropertyValue('bac
kground-color'); | |
20 } | |
21 | |
22 var elBackground = 'backgroundOf(el)'; | |
23 var invalidColor = 'rgb(255, 0, 0)'; | |
24 var normalColor = 'rgb(255, 255, 255)'; | |
25 var disabledColor = 'rgb(0, 0, 0)'; | |
26 var readOnlyColor = 'rgb(0, 255, 0)'; | |
27 var validColor = 'rgb(0, 0, 255)'; | |
28 | |
29 // -------------------------------- | |
30 // willValidate change | |
31 // -------------------------------- | |
32 var el = makeInvalid(); | |
33 // Confirm this element is invalid. | |
34 debug('Chheck the initial state:'); | |
35 shouldBe(elBackground, 'invalidColor'); | |
36 | |
37 debug('Change name:'); | |
38 el.name = ''; | |
39 shouldBe(elBackground, 'invalidColor'); | |
40 el.name = 'bar'; | |
41 shouldBe(elBackground, 'invalidColor'); | |
42 | |
43 debug('Change disabled:'); | |
44 el = makeInvalid(); | |
45 el.disabled = true; | |
46 shouldBe(elBackground, 'disabledColor'); | |
47 el.disabled = false; | |
48 shouldBe(elBackground, 'invalidColor'); | |
49 | |
50 debug('Change readOnly:'); | |
51 el = makeInvalid(); | |
52 el.readOnly = true; | |
53 shouldBe(elBackground, 'readOnlyColor'); | |
54 el.readOnly = false; | |
55 shouldBe(elBackground, 'invalidColor'); | |
56 | |
57 debug('Inside/outside of a form:'); | |
58 el = makeInvalid(); | |
59 nonForm.appendChild(el); | |
60 shouldBe(elBackground, 'invalidColor'); | |
61 form.appendChild(el); | |
62 shouldBe(elBackground, 'invalidColor'); | |
63 | |
64 // -------------------------------- | |
65 // value change | |
66 // -------------------------------- | |
67 debug('Change the value by DOM attribute:'); | |
68 el = makeInvalid(); | |
69 el.value = 'abc'; | |
70 shouldBe(elBackground, 'validColor'); | |
71 el.value = ''; | |
72 shouldBe(elBackground, 'invalidColor'); | |
73 | |
74 debug('Change the value by key input:'); | |
75 el = makeInvalid(); | |
76 el.focus(); | |
77 eventSender.keyDown('a'); | |
78 shouldBe(elBackground, 'validColor'); | |
79 eventSender.keyDown('backspace', []); | |
80 shouldBe(elBackground, 'invalidColor'); | |
81 | |
82 // -------------------------------- | |
83 // Constraints change | |
84 // -------------------------------- | |
85 debug('Change required:'); | |
86 el = makeInvalid(); | |
87 el.required = false; | |
88 shouldBe(elBackground, 'validColor'); | |
89 el.required = true; | |
90 shouldBe(elBackground, 'invalidColor'); | |
91 | |
92 debug('Change maxlength:'); | |
93 el = makeInvalid(); | |
94 el.value = '1234567890'; | |
95 shouldBe(elBackground, 'validColor'); | |
96 // Make the value dirty by deleting the last character. | |
97 el.focus(); | |
98 el.setSelectionRange(10, 10); | |
99 eventSender.keyDown('backspace'); | |
100 el.maxLength = 5; | |
101 shouldBe(elBackground, 'invalidColor'); | |
102 el.maxLength = 10; | |
103 shouldBe(elBackground, 'validColor'); | |
OLD | NEW |