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