-
Notifications
You must be signed in to change notification settings - Fork 1
/
form.html
121 lines (107 loc) · 3.91 KB
/
form.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width"/>
<title>Form tests</title>
<script src="tests.common.js"></script>
<!--[if lte IE 7]><script src="../src/core/fixes/trident3.js"></script><![endif]-->
<!--[if IE 8]><script src="../src/core/fixes/trident4.js"></script><![endif]-->
<script src="../src/modules/selectors.js"></script>
<script src="../src/modules/cosy.js"></script>
<script src="../src/modules/form-helper.js"></script>
</head>
<body>
<form id="test-from-1">
<input type="text" name="unicode" value="Юникод"/>
<input type="text" name="text" value="text"/>
<textarea name="textarea">textarea</textarea>
<input type="hidden" name="hidden" value="hidden"/>
<input type="checkbox" name="checkbox" value="checkbox" checked="checked"/>
<input type="checkbox" name="checkbox-unchecked" value="checkbox"/>
<input type="radio" name="radio" value="radio" checked="checked"/>
<input type="radio" name="radio-unchecked" value="radio-unchecked"/>
<button name="button" value="button">a button</button>
<select name="select-one">
<option value="select">not selected</option>
<option value="selected-one" selected="selected">selected-one</option>
<option value="select">not selected</option>
<option value="select">not selected</option>
</select>
<select multiple="multiple" name="select-multiple">
<option value="select">not selected</option>
<option selected="selected" value="selected">selected</option>
<option value="select">not selected</option>
<option selected="selected" value="selected">selected</option>
<option selected="selected" value="selected">selected</option>
<option value="select">not selected</option>
</select>
<select multiple="multiple" name="select-multiple-none">
<option value="select">not selected</option>
<option value="select">not selected</option>
<option value="select">not selected</option>
</select>
<input type="text" name="mixed" value="one"/>
<select multiple="multiple" name="mixed">
<option selected="selected" value="two">two</option>
<option value="none">none</option>
</select>
<input type="checkbox" name="mixed" value="tree" checked="checked"/>
<input type="radio" name="mixed" value="four" checked="checked"/>
<input type="submit" value="unnamed"/>
<input type="image" value="empty-named" name=""/>
</form>
<form id="test-from-2">
</form>
<form id="test-from-3">
<input type="submit" value="unnamed"/>
</form>
<form id="test-from-4">
<input type="text" name="empty" value=""/>
<input type="text" name="unvalued"/>
</form>
<script>
Tests.test(function (t)
{
var toHash = FormHelper.toHash
t.test('form 1', function (t)
{
var hash = toHash($('test-from-1'))
t.eq(hash['unicode'], 'Юникод', 'unicode')
t.eq(hash['text'], 'text', 'text')
t.eq(hash['textarea'], 'textarea', 'textarea')
t.eq(hash['hidden'], 'hidden', 'hidden')
t.eq(hash['checkbox'], 'checkbox', 'checkbox')
t.ok(!('checkbox-unchecked' in hash), 'checkbox-unchecked')
t.eq(hash['radio'], 'radio', 'radio')
t.ok(!('radio-unchecked' in hash), 'radio-unchecked')
t.eq(hash['button'], 'button', 'button')
t.eq(hash['select-one'], 'selected-one', 'select-one')
t.like(hash['select-multiple'], ['selected','selected','selected'], 'select-multiple')
t.like(hash['mixed'], ['one','two','tree','four'], 'mixed')
t.ok(!(undefined in hash), 'unnamed')
t.ok(!('' in hash), 'empty-named')
})
t.test('form 2', function (t)
{
var hash = toHash($('test-from-2'))
var k = null
for (k in hash) log(hash)
t.ok(k === null, 'empty form')
})
t.test('form 3', function (t)
{
var hash = toHash($('test-from-3'))
var k = null
for (k in hash) log(hash)
t.ok(k === null, 'form with only unnamed input')
})
t.test('form 4', function (t)
{
var hash = toHash($('test-from-4'))
t.eq(hash['empty'], '', 'empty input')
t.eq(hash['unvalued'], '', 'unvalued')
})
})
</script>
</body>
</html>