]> gitweb.factorcode.org Git - factor.git/blob - basis/html/components/components-tests.factor
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
[factor.git] / basis / html / components / components-tests.factor
1 USING: tools.test kernel io.streams.string
2 io.streams.null accessors inspector html.streams
3 html.components html.forms namespaces
4 xml.writer xml.syntax ;
5 FROM: html.components => inspector ;
6 IN: html.components.tests
7
8 { } [ begin-form ] unit-test
9
10 { } [ 3 "hi" set-value ] unit-test
11
12 { 3 } [ "hi" value ] unit-test
13
14 TUPLE: color red green blue ;
15
16 { } [ 1 2 3 color boa from-object ] unit-test
17
18 { 1 } [ "red" value ] unit-test
19
20 { } [ "jimmy" "red" set-value ] unit-test
21
22 { "jimmy" } [
23     [
24         "red" label render
25     ] with-string-writer
26 ] unit-test
27
28 { } [ "<jimmy>" "red" set-value ] unit-test
29
30 { "&lt;jimmy&gt;" } [
31     [
32         "red" label render
33     ] with-string-writer
34 ] unit-test
35
36 { "<input value=\"&lt;jimmy>\" name=\"red\" type=\"hidden\"/>" } [
37     [
38         "red" hidden render
39     ] with-string-writer
40 ] unit-test
41 { "<input value=\"&lt;jimmy>\" name=\"red\" type=\"hidden\"/>" } [
42     [
43         "red" hidden render
44     ] with-string-writer
45 ] unit-test
46
47 { } [ "'jimmy'" "red" set-value ] unit-test
48
49 { "<input value=\"&apos;jimmy&apos;\" name=\"red\" size=\"5\" type=\"text\"/>" } [
50     [
51         "red" <field> 5 >>size render
52     ] with-string-writer
53 ] unit-test
54
55 { "<input value=\"\" name=\"red\" size=\"5\" type=\"password\"/>" } [
56     [
57         "red" <password> 5 >>size render
58     ] with-string-writer
59 ] unit-test
60
61 { } [
62     [
63         "green" <textarea> render
64     ] with-null-writer
65 ] unit-test
66
67 { } [
68     [
69         "green" <textarea> 25 >>rows 30 >>cols render
70     ] with-null-writer
71 ] unit-test
72
73 { } [ begin-form ] unit-test
74
75 { } [ "new york" "city1" set-value ] unit-test
76
77 { } [ { "new york" "los angeles" "chicago" } "cities" set-value ] unit-test
78
79 { } [
80     [
81         "city1"
82         <choice>
83             "cities" >>choices
84         render
85     ] with-null-writer
86 ] unit-test
87
88 { } [ { "los angeles" "new york" } "city2" set-value ] unit-test
89
90 { } [
91     [
92         "city2"
93         <choice>
94             "cities" >>choices
95             t >>multiple
96         render
97     ] with-null-writer
98 ] unit-test
99
100 { } [
101     [
102         "city2"
103         <choice>
104             "cities" >>choices
105             t >>multiple
106             5 >>size
107         render
108     ] with-null-writer
109 ] unit-test
110
111 { } [ begin-form ] unit-test
112
113 { } [ t "delivery" set-value ] unit-test
114
115 { "<input type=\"checkbox\" checked=\"true\" name=\"delivery\">Delivery</input>" } [
116     [
117         "delivery"
118         <checkbox>
119             "Delivery" >>label
120         render
121     ] with-string-writer
122 ] unit-test
123
124 { } [ f "delivery" set-value ] unit-test
125
126 { "<input type=\"checkbox\" name=\"delivery\">Delivery</input>" } [
127     [
128         "delivery"
129         <checkbox>
130             "Delivery" >>label
131         render
132     ] with-string-writer
133 ] unit-test
134
135 SINGLETON: link-test
136
137 M: link-test link-title drop "<Link Title>" ;
138
139 M: link-test link-href drop "http://www.apple.com/foo&bar" ;
140
141 { } [ link-test "link" set-value ] unit-test
142
143 { "<a href=\"http://www.apple.com/foo&amp;bar\">&lt;Link Title&gt;</a>" } [
144     [ "link" link new render ] with-string-writer
145 ] unit-test
146
147 { } [
148     "<html>arbitrary <b>markup</b> for the win!</html>" "html" set-value
149 ] unit-test
150
151 { "<html>arbitrary <b>markup</b> for the win!</html>" } [
152     [ "html" html render ] with-string-writer
153 ] unit-test
154
155 { } [ "int x = 4;" "code" set-value ] unit-test
156
157 { } [ "java" "mode" set-value ] unit-test
158
159 { "<span class=\"KEYWORD3\">int</span> x <span class=\"OPERATOR\">=</span> <span class=\"DIGIT\">4</span>;" } [
160     [ "code" <code> "mode" >>mode render ] with-string-writer
161 ] unit-test
162
163 { } [ "-foo\n-bar" "farkup" set-value ] unit-test
164
165 { "<ul><li>foo</li><li>bar</li></ul>" } [
166     [ "farkup" T{ farkup } render ] with-string-writer
167 ] unit-test
168
169 { } [ { 1 2 3 } "object" set-value ] unit-test
170
171 { t } [
172     [ "object" inspector render ] with-string-writer
173     "object" value [ describe ] with-html-writer xml>string
174     =
175 ] unit-test
176
177 { } [ begin-form ] unit-test
178
179 { } [
180     "factor" [
181         "concatenative" "model" set-value
182     ] nest-form
183 ] unit-test
184
185 {
186     H{
187         {
188             "factor"
189             T{ form f V{ } H{ { "model" "concatenative" } } }
190         }
191     }
192 } [ values ] unit-test
193
194 { } [ "error" "blah" <validation-error-state> "error" set-value ] unit-test
195
196 { } [
197     "error" hidden render
198 ] unit-test
199
200 ! Test xml in html components
201 { } [
202     [XML <foo/> XML] "xmltest" set-value
203 ] unit-test
204
205 { "<foo/>" } [
206     [
207         "xmltest" html render
208     ] with-string-writer
209 ] unit-test