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