72815fa7a7d5f2905ae109d364fcf7966a2011f6
[clnl] / src / test / clnl-gltk / tests.lisp
1 (in-package #:clnl-gltk-test)
2
3 (deftest "Simple Font"
4  "8A20F6ABDEB91C20EDA85C78AED49767AB3A70EB"
5  (gl:color 1f0 1f0 1f0)
6  (gl:translate 10 10 0)
7  (clnl-gltk:font-print "Hello World"))
8
9 (let
10  ((tb (clnl-gltk:textbox 5 5 5 1 :text "Hello")))
11  (deftest "Text Box 1"
12   "2CECA2C51025389617AA9A710B3625106009DF2E"
13   (clnl-gltk:render tb)))
14
15 (let
16  ((tb (clnl-gltk:textbox 5 5 7 2 :text "Hello")))
17  (deftest "Text Box 2"
18   "9BF11B56936F547523203EA2A81CC2DB2CB3CC19"
19   (clnl-gltk:render tb)))
20
21 (let
22  ((tb (clnl-gltk:textbox 5 5 5 2 :text (format nil "Hello~%World"))))
23  (deftest "Text Box Multiline"
24   "D805DA6096FB970B1C5B4268B76F1917DCA4AE1C"
25   (clnl-gltk:render tb)))
26
27 (let
28  ((tb (clnl-gltk:textbox 5 5 5 2 :text (format nil "Helloare~%Worlding~%fdsa"))))
29  (deftest "Text Box Multiline Clip"
30   "D805DA6096FB970B1C5B4268B76F1917DCA4AE1C"
31   (clnl-gltk:render tb)))
32
33 (let
34  ((tb (clnl-gltk:textbox 5 50 5 2 :text (format nil "Helloare~%Worlding~%fdsa") :border nil)))
35  (deftest "Text Box Borderless"
36   "8D3B592B51A60A2BBC18564E6CBAF231B0AE19DD"
37   (clnl-gltk:render tb)))
38
39 (let
40  ((tb (clnl-gltk:textbox 5 5 6 5 :text (format nil "Hi my name is~%frank") :border nil :word-wrap t)))
41  (deftest "Text Box Wrap 1"
42   "AB467A1E7195B299F2218995A05DD2E13C27DEE9"
43   (clnl-gltk:render tb)))
44
45 (let
46  ((tb (clnl-gltk:textbox 5 5 3 5 :text (format nil "Hi my name is~%frank") :border nil :word-wrap t)))
47  (deftest "Text Box Wrap 2"
48   "021D8496E23E955D4315C08540CEBAACFF626E26"
49   (clnl-gltk:render tb)))
50
51 (let
52  ((tb (clnl-gltk:textbox 5 5 2 5 :text (format nil "Hi m name is~%frank") :border nil :word-wrap t)))
53  (deftest "Text Box Wrap 3"
54   "5351DCF1D442B6313BD357B1DFB2C80ED3E0E6FB"
55   (clnl-gltk:render tb)))
56
57 (let
58  ((ib (clnl-gltk:inputbox 5 5 5)))
59  (deftest "Input Box 1"
60   "17D991E70A129C1A57F503690D364BB0975A595B"
61   (setf *inputbox* ib)
62   (clnl-gltk:render ib)))
63
64 (let
65  ((ib (clnl-gltk:inputbox 5 5 5)))
66  (clnl-gltk:key-pressed ib 65)
67  (clnl-gltk:key-pressed ib 66)
68  (clnl-gltk:key-pressed ib 67)
69  (clnl-gltk:key-pressed ib :key-left)
70  (clnl-gltk:key-pressed ib :key-left)
71  (clnl-gltk:key-pressed ib 8)
72  (clnl-gltk:key-pressed ib :key-right)
73  (deftest "Input Box 2"
74   "D03BD310CB1CF22AE7A0F143BE523F9FC6F20D73"
75   (setf *inputbox* ib)
76   (clnl-gltk:render ib)))
77
78 (let
79  ((ib (clnl-gltk:inputbox 5 5 5)))
80  (clnl-gltk:key-pressed ib 65)
81  (clnl-gltk:key-pressed ib 66)
82  (clnl-gltk:key-pressed ib 67)
83  (clnl-gltk:key-pressed ib 68)
84  (clnl-gltk:key-pressed ib :key-left)
85  (clnl-gltk:key-pressed ib 21)
86  (deftest "Input Box 3"
87   "19EA65A5299EBF16021AE01F4BB9C39945829665"
88   (setf *inputbox* ib)
89   (clnl-gltk:render ib)))
90
91 (let
92  ((ib (clnl-gltk:inputbox 5 5 5))
93   (tb (clnl-gltk:textbox 5 28 5 1)))
94  (clnl-gltk:key-pressed ib 65)
95  (clnl-gltk:key-pressed ib 66)
96  (clnl-gltk:key-pressed ib 67)
97  (clnl-gltk:key-pressed ib 68)
98  (clnl-gltk:key-pressed ib 8)
99  (setf (clnl-gltk:textbox-text tb) (clnl-gltk:value ib))
100  (clnl-gltk:clear ib)
101  (deftest "Input Box / Text Box"
102   "3456140503547591726C56C3E5A2956CBAB066F9"
103   (setf *inputbox* ib)
104   (clnl-gltk:render tb)
105   (clnl-gltk:render ib)))
106
107 (let
108  ((ib (clnl-gltk:inputbox 5 5 1))
109   (tb (clnl-gltk:textbox 5 28 1 1)))
110  (clnl-gltk:resize ib (truncate (- 100 12) clnl-gltk:*font-width*) 1)
111  (clnl-gltk:resize tb (truncate (- 100 12) clnl-gltk:*font-width*) (truncate (- 100 40) clnl-gltk:*font-height*))
112  (deftest "Resize Input Box / Text Box"
113   "A005D7F79A462A12CC4C8FA2D4E08D9705EE653D"
114   (setf *inputbox* ib)
115   (clnl-gltk:render tb)
116   (clnl-gltk:render ib)))
117
118 (defvar *button-base-sum* "57FE772A7F3F06632F7CAB6EDCED93D1D98EFE17")
119 (defvar *button-hover-sum* "0471DF593568AC35F0F91FCB0CF8B7C95CE76FAA")
120
121 (let
122  ((but (clnl-gltk:button 5 5 40 30 "test" (lambda () (format t "This button was pressed~%")))))
123  (deftest "Button 1"
124   *button-base-sum*
125   (clnl-gltk:render but)))
126
127 (let
128  ((but (clnl-gltk:button 5 5 40 30 "te" (lambda () (format t "This button was pressed~%")))))
129  (deftest "Button 2"
130   "12595E272032268A6BD31DAE25405DFBBC18537E"
131   (clnl-gltk:render but)))
132
133 (let
134  ((checksum "8C3017E28B5F4DA4832193DB1ECB9F1C2D8B9B81"))
135  (let
136   ((but (clnl-gltk:button 5 5 40 30 "te..." (lambda () (format t "This button was pressed~%")))))
137   (deftest "Button 3a"
138    checksum
139    (clnl-gltk:render but)))
140
141  (let
142   ((but (clnl-gltk:button 5 5 40 30 "testing" (lambda () (format t "This button was pressed~%")))))
143   (deftest "Button 3b"
144    checksum
145    (clnl-gltk:render but))))
146
147 (let
148  ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
149  (clnl-gltk:mousemove but 10 10)
150  (deftest "Button Hover 1"
151   *button-hover-sum*
152   (clnl-gltk:render but)))
153
154 (let
155  ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
156  (clnl-gltk:mousemove but 10 10)
157  (clnl-gltk:mousemove but 50 50)
158  (deftest "Button Hover 2"
159   *button-base-sum*
160   (clnl-gltk:render but)))
161
162 (let
163  ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
164  (clnl-gltk:mousemove but 10 10)
165  (clnl-gltk:mousedown but 10 10)
166  (deftest "Button Down"
167   "CF9AB21372A9D72ECDE1351B6C834DE8E020DC67"
168   (clnl-gltk:render but)))
169
170 (let
171  ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
172  (clnl-gltk:mousemove but 10 10)
173  (clnl-gltk:mousedown but 10 10)
174  (clnl-gltk:mousemove but 50 50)
175  (deftest "Button Down Moved"
176   "C2A2F8B8B1C70BE32A35D050DC9AB03F310EB44D"
177   (clnl-gltk:render but)))
178
179 (let*
180  ((clicked nil)
181   (but (clnl-gltk:button 5 5 40 30 "test" (lambda () (setf clicked t)))))
182  (clnl-gltk:mousemove but 10 10)
183  (clnl-gltk:mousedown but 10 10)
184  (clnl-gltk:mouseup but 10 10)
185  (deftest "Button Clicked"
186   *button-hover-sum*
187   (clnl-gltk:render but)
188   (when (not clicked) (fail-test))))
189
190 (let*
191  ((clicked nil)
192   (but (clnl-gltk:button 5 5 40 30 "test" (lambda () (setf clicked t)))))
193  (clnl-gltk:mousemove but 10 10)
194  (clnl-gltk:mousedown but 10 10)
195  (clnl-gltk:mousemove but 50 50)
196  (clnl-gltk:mouseup but 50 50)
197  (deftest "Button Clicked Abort"
198   *button-base-sum*
199   (clnl-gltk:render but)
200   (when clicked (fail-test))))
201
202 (let
203  ((but (clnl-gltk:button 20 20 50 40 "test" nil)))
204  (clnl-gltk:resize but 40 30)
205  (clnl-gltk:reposition but 5 5)
206  (deftest "Button Reize/Reposition"
207   *button-base-sum*
208   (clnl-gltk:render but)))
209
210 (let*
211  ((but nil))
212  (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
213  (deftest "Button Forever 1"
214   "C7F4CC201EF3DDB4474D537CA6F1D7462F5822D1"
215   (clnl-gltk:render but)))
216
217 (let*
218  ((but nil))
219  (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
220  (clnl-gltk:mousemove but 30 30)
221  (clnl-gltk:mousedown but 30 30)
222  (clnl-gltk:mouseup but 30 30)
223  (deftest "Button Forever - Toggle mouse on"
224   "AAD25A1A35FFC0306C0257450530B19421BB1B97"
225   (clnl-gltk:render but)))
226
227 (let*
228  ((but nil))
229  (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
230  (clnl-gltk:mousemove but 30 30)
231  (clnl-gltk:mousedown but 30 30)
232  (clnl-gltk:mouseup but 30 30)
233  (clnl-gltk:mousemove but 10 10)
234  (deftest "Button Forever - Toggle mouse off"
235   "CE0153ACE89F075279C24FB28A9538730B307048"
236   (clnl-gltk:render but)))
237
238 (let*
239  ((but nil))
240  (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
241  (clnl-gltk:mousemove but 30 30)
242  (clnl-gltk:mousedown but 30 30)
243  (clnl-gltk:mouseup but 30 30)
244  (clnl-gltk:mousedown but 30 30)
245  (clnl-gltk:mouseup but 30 30)
246  (clnl-gltk:mousemove but 10 10)
247  (deftest "Button Forever - Toggle twice"
248   "C7F4CC201EF3DDB4474D537CA6F1D7462F5822D1"
249   (clnl-gltk:render but)))
250
251 (let*
252  ((but nil))
253  (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but t)) :forever t))
254  (clnl-gltk:mousemove but 30 30)
255  (clnl-gltk:mousedown but 30 30)
256  (clnl-gltk:mouseup but 30 30)
257  (clnl-gltk:mousedown but 30 30)
258  (clnl-gltk:mouseup but 30 30)
259  (clnl-gltk:mousemove but 10 10)
260  (deftest "Button Forever - Toggle state T"
261   "CE0153ACE89F075279C24FB28A9538730B307048"
262   (clnl-gltk:render but)))
263
264 (defvar *switch-on* "CA21940F7F585E98B70F54165FA9617E8720B084")
265 (defvar *switch-off* "25F8B2D544795DC953FF3F880F4762FEEFCCEF04")
266 (defvar *switch-hover* "9643E58C1E160530B3B4467DE121C83F445EE444")
267
268 (let
269  ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)) t)))
270  (deftest "Switch 1"
271   *switch-on*
272   (setf *mouse-reactor* switch)
273   (clnl-gltk:render switch)))
274
275 (let
276  ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
277  (deftest "Switch 2"
278   *switch-off*
279   (clnl-gltk:render switch)))
280
281 (let
282  ((switch (clnl-gltk:switch 5 5 80 "testing switch" (lambda (state) (format t "The new state is: ~A~%" state)))))
283  (deftest "Switch 3"
284   "C7362964BB4CB6C1C89AABFAD956C65A42823296"
285   (clnl-gltk:render switch)))
286
287 (let
288  ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
289  (clnl-gltk:mousemove switch 30 30)
290  (deftest "Switch Hover"
291   *switch-hover*
292   (clnl-gltk:render switch)))
293
294 (let
295  ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
296  (clnl-gltk:mousemove switch 30 30)
297  (clnl-gltk:mousemove switch 50 50)
298  (deftest "Switch Hover 2"
299   *switch-off*
300   (clnl-gltk:render switch)))
301
302 (let*
303  ((on nil)
304   (switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (setf on state)))))
305  (clnl-gltk:mousedown switch 30 30)
306  (deftest "Switch Click"
307   *switch-on*
308   (clnl-gltk:render switch)
309   (when (not on) (fail-test))))
310
311 (let
312  ((slider (clnl-gltk:slider 5 5 80 "test" (lambda (val) (format t "The new val is: ~A~%" val)) 0 100 5 100)))
313  (deftest "Slider 1"
314   "87CCD09486DBA9A0115034E454B28658121EE6DE"
315   (setf *mouse-reactor* slider)
316   (clnl-gltk:render slider)))