Typo on web page
[pipeglade.git] / pipegladetest.sh
blobe08b9594622c69fec9f409358c23a8be843714cf
1 #! /usr/bin/env bash
3 # Another possible shebang line:
4 #! /usr/bin/env mksh
6 # Pipeglade tests; they should be invoked in the build directory.
8 # Failure of a test can cause failure of one or more subsequent tests.
10 export LC_ALL=C
11 FIN=to-g.fifo
12 FOUT=from-g.fifo
13 FERR=err.fifo
14 BAD_FIFO=bad_fifo
15 rm -f $FIN $FOUT $FERR $BAD_FIFO
17 TESTS=0
18 FAILS=0
19 OKS=0
21 count_fail() {
22 (( TESTS+=1 ))
23 (( FAILS+=1 ))
26 count_ok() {
27 (( TESTS+=1 ))
28 (( OKS+=1 ))
31 check_rm() {
32 if test -e $1; then
33 count_fail
34 echo " FAIL $1 should be deleted"
35 else
36 count_ok
37 echo " OK $1 deleted"
41 echo "
42 # BATCH ONE
44 # Situations where pipeglade should exit immediately. These tests
45 # should run automatically
46 ######################################################################
49 check_call() {
50 r=$2
51 e=$3
52 o=$4
53 output=$($1 2>tmperr.txt)
54 retval=$?
55 error=$(<tmperr.txt)
56 rm tmperr.txt
57 echo "CALL $1"
58 if test "$output" = "" -a "$o" = "" || (echo "$output" | grep -Fqe "$o"); then
59 count_ok
60 echo " OK STDOUT $output"
61 else
62 count_fail
63 echo " FAIL STDOUT $output"
64 echo " EXPECTED $o"
66 if test "$error" = "" -a "$e" = "" || test "$retval" -eq "$r" && (echo "$error" | grep -Fqe "$e"); then
67 count_ok
68 echo " OK EXIT/STDERR $retval $error"
69 else
70 count_fail
71 echo " FAIL EXIT/STDERR $retval $error"
72 echo " EXPECTED $r $e"
76 check_call "./pipeglade -u nonexistent.ui" 1 "nonexistent.ui" ""
77 check_call "./pipeglade -u bad_window.ui" 1 "no toplevel window named 'main'" ""
78 check_call "./pipeglade -u www-template/404.html" 1 "html" ""
79 check_call "./pipeglade -u README" 1 "Document must begin with an element" ""
80 check_call "./pipeglade -e x" 1 "x is not a valid XEmbed socket id" ""
81 check_call "./pipeglade -ex" 1 "x is not a valid XEmbed socket id" ""
82 check_call "./pipeglade -e -77" 1 "-77 is not a valid XEmbed socket id" ""
83 check_call "./pipeglade -e 77x" 1 "77x is not a valid XEmbed socket id" ""
84 check_call "./pipeglade -e +77" 1 "+77 is not a valid XEmbed socket id" ""
85 check_call "./pipeglade -e 999999999999999999999999999999" 1 "999999999999999999999999999999 is not a valid XEmbed socket id" ""
86 check_call "./pipeglade -e 99999999999999999" 1 "unable to embed into XEmbed socket 99999999999999999" ""
87 touch $BAD_FIFO
88 check_call "./pipeglade -i $BAD_FIFO" 1 "making fifo" ""
89 check_call "./pipeglade -o $BAD_FIFO" 1 "making fifo" ""
90 rm $BAD_FIFO
91 check_call "./pipeglade -h" 0 "" "usage: pipeglade [-h] [-e xid] [-i in-fifo] [-o out-fifo] [-u glade-file.ui] [-G] [-V]"
92 check_call "./pipeglade -G" 0 "" "GTK+ v"
93 check_call "./pipeglade -V" 0 "" "."
94 check_call "./pipeglade -X" 1 "option" ""
95 check_call "./pipeglade -e" 1 "argument" ""
96 check_call "./pipeglade -u" 1 "argument" ""
97 check_call "./pipeglade -i" 1 "argument" ""
98 check_call "./pipeglade -o" 1 "argument" ""
99 check_call "./pipeglade yyy" 1 "illegal parameter 'yyy'" ""
100 mkfifo $FIN
101 echo -e "statusbar1:pop\n _:main_quit" > $FIN &
102 check_call "./pipeglade -i $FIN" 0 "" ""
104 sleep .5
105 check_rm $FIN
106 check_rm $FOUT
110 #exit
111 echo "
112 # BATCH TWO
114 # Error handling tests---bogus actions leading to appropriate error
115 # messages. Most of these tests should run automatically.
116 ######################################################################
119 mkfifo $FERR
121 check_error() {
122 echo "SEND $1"
123 echo -e "$1" >$FIN
124 while read r <$FERR; do
125 # ignore irrelevant GTK warnings
126 if test "$r" != "" && ! grep -q "WARNING"<<< "$r"; then
127 break;
129 done
130 if test "$2" = "$r"; then
131 count_ok
132 echo " OK $r"
133 else
134 count_fail
135 echo " FAIL $r"
136 echo " EXPECTED $2"
140 read r 2< $FERR &
141 ./pipeglade -i $FIN 2> $FERR &
143 # wait for $FIN to appear
144 while test ! \( -e $FIN \); do :; done
146 # Non-existent name
147 check_error "" "ignoring command \"\""
148 check_error "nnn" "ignoring command \"nnn\""
149 check_error "nnn:set_text FFFF" "ignoring command \"nnn:set_text FFFF\""
150 # Widget that shouldn't fire callbacks
151 check_error "label1:force" "ignoring GtkLabel command \"label1:force\""
152 # GtkLabel
153 check_error "label1:nnn" "ignoring GtkLabel command \"label1:nnn\""
154 # GtkImage
155 check_error "image1:nnn" "ignoring GtkImage command \"image1:nnn\""
156 # GtkNotebook
157 check_error "notebook1:nnn" "ignoring GtkNotebook command \"notebook1:nnn\""
158 # GtkExpander
159 check_error "expander1:nnn" "ignoring GtkExpander command \"expander1:nnn\""
160 # GtkTextView
161 check_error "textview1:nnn" "ignoring GtkTextView command \"textview1:nnn\""
162 # GtkButton
163 check_error "button1:nnn" "ignoring GtkButton command \"button1:nnn\""
164 # GtkSwitch
165 check_error "switch1:nnn" "ignoring GtkSwitch command \"switch1:nnn\""
166 # GtkToggleButton
167 check_error "togglebutton1:nnn" "ignoring GtkToggleButton command \"togglebutton1:nnn\""
168 # GtkCheckButton
169 check_error "checkbutton1:nnn" "ignoring GtkCheckButton command \"checkbutton1:nnn\""
170 # GtkRadioButton
171 check_error "radiobutton1:nnn" "ignoring GtkRadioButton command \"radiobutton1:nnn\""
172 # GtkSpinButton
173 check_error "spinbutton1:nnn" "ignoring GtkSpinButton command \"spinbutton1:nnn\""
174 # GtkFileChooserButton
175 check_error "filechooserbutton1:nnn" "ignoring GtkFileChooserButton command \"filechooserbutton1:nnn\""
176 # GtkFilechooserDialog
177 check_error "open_dialog:nnn" "ignoring GtkFileChooserDialog command \"open_dialog:nnn\""
178 # GtkFontButton
179 check_error "fontbutton1:nnn" "ignoring GtkFontButton command \"fontbutton1:nnn\""
180 # GtkColorButton
181 check_error "colorbutton1:nnn" "ignoring GtkColorButton command \"colorbutton1:nnn\""
182 # GtkPrintUnixDialog
183 check_error "printdialog:nnn" "ignoring GtkPrintUnixDialog command \"printdialog:nnn\""
184 check_error "statusbar1:push Click \"Print\"\n printdialog:print nonexistent.ps" "ignoring GtkPrintUnixDialog command \" printdialog:print nonexistent.ps\""
185 # GtkScale
186 check_error "scale1:nnn" "ignoring GtkScale command \"scale1:nnn\""
187 # GtkProgressBar
188 check_error "progressbar1:nnn" "ignoring GtkProgressBar command \"progressbar1:nnn\""
189 # GtkSpinner
190 check_error "spinner1:nnn" "ignoring GtkSpinner command \"spinner1:nnn\""
191 # GtkStatusbar
192 check_error "statusbar1:nnn" "ignoring GtkStatusbar command \"statusbar1:nnn\""
193 # GtkComboBoxText
194 check_error "comboboxtext1:nnn" "ignoring GtkComboBoxText command \"comboboxtext1:nnn\""
195 check_error "comboboxtext1:force" "ignoring GtkComboBoxText command \"comboboxtext1:force\""
196 # GtkTreeView
197 check_error "treeview1:nnn" "ignoring GtkTreeView command \"treeview1:nnn\""
198 check_error "treeview1:force" "ignoring GtkTreeView command \"treeview1:force\""
199 # GtkTreeViewColumn
200 check_error "treeviewcolumn3:nnn" "ignoring GtkTreeViewColumn command \"treeviewcolumn3:nnn\""
201 check_error "treeviewcolumn3:force" "ignoring GtkTreeViewColumn command \"treeviewcolumn3:force\""
202 # GtkEntry
203 check_error "entry1:nnn" "ignoring GtkEntry command \"entry1:nnn\""
204 # GtkTreeView insert_row
205 check_error "treeview1:nnn" "ignoring GtkTreeView command \"treeview1:nnn\""
206 check_error "treeview1:insert_row 10000" "ignoring GtkTreeView command \"treeview1:insert_row 10000\""
207 check_error "treeview1:insert_row -1" "ignoring GtkTreeView command \"treeview1:insert_row -1\""
208 check_error "treeview1:insert_row nnn" "ignoring GtkTreeView command \"treeview1:insert_row nnn\""
209 check_error "treeview1:insert_row" "ignoring GtkTreeView command \"treeview1:insert_row\""
210 check_error "treeview1:insert_row " "ignoring GtkTreeView command \"treeview1:insert_row \""
211 # GtkTreeView remove_row
212 check_error "treeview1:remove_row 10000" "ignoring GtkTreeView command \"treeview1:remove_row 10000\""
213 check_error "treeview1:remove_row -1" "ignoring GtkTreeView command \"treeview1:remove_row -1\""
214 check_error "treeview1:remove_row nnn" "ignoring GtkTreeView command \"treeview1:remove_row nnn\""
215 check_error "treeview1:remove_row" "ignoring GtkTreeView command \"treeview1:remove_row\""
216 check_error "treeview1:remove_row " "ignoring GtkTreeView command \"treeview1:remove_row \""
217 # GtkTreeView move_row
218 check_error "treeview1:move_row" "ignoring GtkTreeView command \"treeview1:move_row\""
219 check_error "treeview1:move_row " "ignoring GtkTreeView command \"treeview1:move_row \""
220 check_error "treeview1:move_row nnn" "ignoring GtkTreeView command \"treeview1:move_row nnn\""
221 check_error "treeview1:move_row 10000 end" "ignoring GtkTreeView command \"treeview1:move_row 10000 end\""
222 check_error "treeview1:move_row -1 end" "ignoring GtkTreeView command \"treeview1:move_row -1 end\""
223 check_error "treeview1:move_row nnn end" "ignoring GtkTreeView command \"treeview1:move_row nnn end\""
224 check_error "treeview1:move_row 0 10000" "ignoring GtkTreeView command \"treeview1:move_row 0 10000\""
225 check_error "treeview1:move_row 0 -1" "ignoring GtkTreeView command \"treeview1:move_row 0 -1\""
226 check_error "treeview1:move_row 0 nnn" "ignoring GtkTreeView command \"treeview1:move_row 0 nnn\""
227 # GtkTreeView scroll
228 check_error "treeview1:scroll" "ignoring GtkTreeView command \"treeview1:scroll\""
229 check_error "treeview1:scroll " "ignoring GtkTreeView command \"treeview1:scroll \""
230 check_error "treeview1:scroll nnn" "ignoring GtkTreeView command \"treeview1:scroll nnn\""
231 check_error "treeview1:scroll -1 1" "ignoring GtkTreeView command \"treeview1:scroll -1 1\""
232 check_error "treeview1:scroll 1 -1" "ignoring GtkTreeView command \"treeview1:scroll 1 -1\""
233 check_error "treeview1:scroll nnn 1" "ignoring GtkTreeView command \"treeview1:scroll nnn 1\""
234 check_error "treeview1:scroll 1 nnn" "ignoring GtkTreeView command \"treeview1:scroll 1 nnn\""
235 # GtkTreeView set
236 check_error "treeview1:set" "ignoring GtkTreeView command \"treeview1:set\""
237 check_error "treeview1:set " "ignoring GtkTreeView command \"treeview1:set \""
238 check_error "treeview1:set nnn" "ignoring GtkTreeView command \"treeview1:set nnn\""
239 check_error "treeview1:set 0 nnn" "ignoring GtkTreeView command \"treeview1:set 0 nnn\""
240 check_error "treeview1:set nnn 0" "ignoring GtkTreeView command \"treeview1:set nnn 0\""
241 check_error "treeview1:set 10000 1 77" "ignoring GtkTreeView command \"treeview1:set 10000 1 77\""
242 check_error "treeview1:set 1 10000 77" "ignoring GtkTreeView command \"treeview1:set 1 10000 77\""
243 check_error "treeview1:set 1 11 77" "ignoring GtkTreeView command \"treeview1:set 1 11 77\""
244 check_error "treeview1:set nnn 1 77" "ignoring GtkTreeView command \"treeview1:set nnn 1 77\""
245 check_error "treeview1:set 1 nnn 77" "ignoring GtkTreeView command \"treeview1:set 1 nnn 77\""
246 check_error "treeview1:set -1 1 77" "ignoring GtkTreeView command \"treeview1:set -1 1 77\""
247 check_error "treeview1:set 1 -1 77" "ignoring GtkTreeView command \"treeview1:set 1 -1 77\""
248 # GtkTree set "abc" into numeric column
249 check_error "treeview1:set 1 1 abc" "ignoring GtkTreeView command \"treeview1:set 1 1 abc\""
250 # GtkCalendar
251 check_error "calendar1:nnn" "ignoring GtkCalendar command \"calendar1:nnn\""
252 check_error "calendar1:select_date" "ignoring GtkCalendar command \"calendar1:select_date\""
253 check_error "calendar1:select_date " "ignoring GtkCalendar command \"calendar1:select_date \""
254 check_error "calendar1:select_date nnn" "ignoring GtkCalendar command \"calendar1:select_date nnn\""
255 check_error "calendar1:select_date 2000-12-33" "ignoring GtkCalendar command \"calendar1:select_date 2000-12-33\""
256 check_error "calendar1:select_date 2000-13-20" "ignoring GtkCalendar command \"calendar1:select_date 2000-13-20\""
257 GtkSocket
258 check_error "socket1:nnn" "ignoring GtkSocket command \"socket1:nnn\""
259 # GtkDrawingArea
260 check_error "drawingarea1:nnn" "ignoring GtkDrawingArea command \"drawingarea1:nnn\""
261 check_error "drawingarea1:rectangle" "ignoring GtkDrawingArea command \"drawingarea1:rectangle\""
262 check_error "drawingarea1:rectangle " "ignoring GtkDrawingArea command \"drawingarea1:rectangle \""
263 check_error "drawingarea1:rectangle nnn" "ignoring GtkDrawingArea command \"drawingarea1:rectangle nnn\""
264 check_error "drawingarea1:rectangle 1" "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1\""
265 check_error "drawingarea1:rectangle 1 10" "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10\""
266 check_error "drawingarea1:rectangle 1 10 10" "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10\""
267 check_error "drawingarea1:rectangle 1 10 10 20" "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10 20\""
268 check_error "drawingarea1:rectangle 1 10 10 20 nnn" "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10 20 nnn\""
269 check_error "drawingarea1:arc" "ignoring GtkDrawingArea command \"drawingarea1:arc\""
270 check_error "drawingarea1:arc " "ignoring GtkDrawingArea command \"drawingarea1:arc \""
271 check_error "drawingarea1:arc nnn" "ignoring GtkDrawingArea command \"drawingarea1:arc nnn\""
272 check_error "drawingarea1:arc 1" "ignoring GtkDrawingArea command \"drawingarea1:arc 1\""
273 check_error "drawingarea1:arc 1 10" "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10\""
274 check_error "drawingarea1:arc 1 10 10" "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10\""
275 check_error "drawingarea1:arc 1 10 10 20" "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20\""
276 check_error "drawingarea1:arc 1 10 10 20 45" "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20 45\""
277 check_error "drawingarea1:arc 1 10 10 20 45 nnn" "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20 45 nnn\""
278 check_error "drawingarea1:arc_negative" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative\""
279 check_error "drawingarea1:arc_negative " "ignoring GtkDrawingArea command \"drawingarea1:arc_negative \""
280 check_error "drawingarea1:arc_negative nnn" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative nnn\""
281 check_error "drawingarea1:arc_negative 1" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1\""
282 check_error "drawingarea1:arc_negative 1 10" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10\""
283 check_error "drawingarea1:arc_negative 1 10 10" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10\""
284 check_error "drawingarea1:arc_negative 1 10 10 20" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20\""
285 check_error "drawingarea1:arc_negative 1 10 10 20 45" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20 45\""
286 check_error "drawingarea1:arc_negative 1 10 10 20 45 nnn" "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20 45 nnn\""
287 check_error "drawingarea1:curve_to" "ignoring GtkDrawingArea command \"drawingarea1:curve_to\""
288 check_error "drawingarea1:curve_to " "ignoring GtkDrawingArea command \"drawingarea1:curve_to \""
289 check_error "drawingarea1:curve_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:curve_to nnn\""
290 check_error "drawingarea1:curve_to 1" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1\""
291 check_error "drawingarea1:curve_to 1 10" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10\""
292 check_error "drawingarea1:curve_to 1 10 10" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10\""
293 check_error "drawingarea1:curve_to 1 10 10 20" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20\""
294 check_error "drawingarea1:curve_to 1 10 10 20 20" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20\""
295 check_error "drawingarea1:curve_to 1 10 10 20 20 25" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20 25\""
296 check_error "drawingarea1:curve_to 1 10 10 20 20 25 nnn" "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20 25 nnn\""
297 check_error "drawingarea1:rel_curve_to" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to\""
298 check_error "drawingarea1:rel_curve_to " "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to \""
299 check_error "drawingarea1:rel_curve_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to nnn\""
300 check_error "drawingarea1:rel_curve_to 1" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1\""
301 check_error "drawingarea1:rel_curve_to 1 10" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10\""
302 check_error "drawingarea1:rel_curve_to 1 10 10" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10\""
303 check_error "drawingarea1:rel_curve_to 1 10 10 20" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20\""
304 check_error "drawingarea1:rel_curve_to 1 10 10 20 20" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20\""
305 check_error "drawingarea1:rel_curve_to 1 10 10 20 20 25" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20 25\""
306 check_error "drawingarea1:rel_curve_to 1 10 10 20 20 25 nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20 25 nnn\""
307 check_error "drawingarea1:line_to" "ignoring GtkDrawingArea command \"drawingarea1:line_to\""
308 check_error "drawingarea1:line_to " "ignoring GtkDrawingArea command \"drawingarea1:line_to \""
309 check_error "drawingarea1:line_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:line_to nnn\""
310 check_error "drawingarea1:line_to 1" "ignoring GtkDrawingArea command \"drawingarea1:line_to 1\""
311 check_error "drawingarea1:line_to 1 20" "ignoring GtkDrawingArea command \"drawingarea1:line_to 1 20\""
312 check_error "drawingarea1:line_to 1 20 nnn" "ignoring GtkDrawingArea command \"drawingarea1:line_to 1 20 nnn\""
313 check_error "drawingarea1:rel_line_to" "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to\""
314 check_error "drawingarea1:rel_line_to " "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to \""
315 check_error "drawingarea1:rel_line_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to nnn\""
316 check_error "drawingarea1:rel_line_to 1" "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1\""
317 check_error "drawingarea1:rel_line_to 1 20" "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1 20\""
318 check_error "drawingarea1:rel_line_to 1 20 nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1 20 nnn\""
319 check_error "drawingarea1:move_to" "ignoring GtkDrawingArea command \"drawingarea1:move_to\""
320 check_error "drawingarea1:move_to " "ignoring GtkDrawingArea command \"drawingarea1:move_to \""
321 check_error "drawingarea1:move_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:move_to nnn\""
322 check_error "drawingarea1:move_to 1" "ignoring GtkDrawingArea command \"drawingarea1:move_to 1\""
323 check_error "drawingarea1:move_to 1 20" "ignoring GtkDrawingArea command \"drawingarea1:move_to 1 20\""
324 check_error "drawingarea1:move_to 1 20 nnn" "ignoring GtkDrawingArea command \"drawingarea1:move_to 1 20 nnn\""
325 check_error "drawingarea1:rel_move_to" "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to\""
326 check_error "drawingarea1:rel_move_to " "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to \""
327 check_error "drawingarea1:rel_move_to nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to nnn\""
328 check_error "drawingarea1:rel_move_to 1" "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1\""
329 check_error "drawingarea1:rel_move_to 1 20" "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1 20\""
330 check_error "drawingarea1:rel_move_to 1 20 nnn" "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1 20 nnn\""
331 check_error "drawingarea1:close_path" "ignoring GtkDrawingArea command \"drawingarea1:close_path\""
332 check_error "drawingarea1:close_path " "ignoring GtkDrawingArea command \"drawingarea1:close_path \""
333 check_error "drawingarea1:close_path nnn" "ignoring GtkDrawingArea command \"drawingarea1:close_path nnn\""
334 check_error "drawingarea1:set_source_rgba" "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba\""
335 check_error "drawingarea1:set_source_rgba " "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba \""
336 check_error "drawingarea1:set_source_rgba nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba nnn\""
337 check_error "drawingarea1:set_dash" "ignoring GtkDrawingArea command \"drawingarea1:set_dash\""
338 check_error "drawingarea1:set_dash " "ignoring GtkDrawingArea command \"drawingarea1:set_dash \""
339 check_error "drawingarea1:set_dash nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_dash nnn\""
340 check_error "drawingarea1:set_line_cap" "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap\""
341 check_error "drawingarea1:set_line_cap " "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap \""
342 check_error "drawingarea1:set_line_cap nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap nnn\""
343 check_error "drawingarea1:set_line_cap 1" "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap 1\""
344 check_error "drawingarea1:set_line_cap 1 nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap 1 nnn\""
345 check_error "drawingarea1:set_line_join" "ignoring GtkDrawingArea command \"drawingarea1:set_line_join\""
346 check_error "drawingarea1:set_line_join " "ignoring GtkDrawingArea command \"drawingarea1:set_line_join \""
347 check_error "drawingarea1:set_line_join nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_join nnn\""
348 check_error "drawingarea1:set_line_join 1" "ignoring GtkDrawingArea command \"drawingarea1:set_line_join 1\""
349 check_error "drawingarea1:set_line_join 1 nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_join 1 nnn\""
350 check_error "drawingarea1:set_line_width" "ignoring GtkDrawingArea command \"drawingarea1:set_line_width\""
351 check_error "drawingarea1:set_line_width " "ignoring GtkDrawingArea command \"drawingarea1:set_line_width \""
352 check_error "drawingarea1:set_line_width nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_width nnn\""
353 check_error "drawingarea1:set_line_width 1" "ignoring GtkDrawingArea command \"drawingarea1:set_line_width 1\""
354 check_error "drawingarea1:set_line_width 1 nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_line_width 1 nnn\""
355 check_error "drawingarea1:fill" "ignoring GtkDrawingArea command \"drawingarea1:fill\""
356 check_error "drawingarea1:fill " "ignoring GtkDrawingArea command \"drawingarea1:fill \""
357 check_error "drawingarea1:fill nnn" "ignoring GtkDrawingArea command \"drawingarea1:fill nnn\""
358 check_error "drawingarea1:fill_preserve" "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve\""
359 check_error "drawingarea1:fill_preserve " "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve \""
360 check_error "drawingarea1:fill_preserve nnn" "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve nnn\""
361 check_error "drawingarea1:stroke" "ignoring GtkDrawingArea command \"drawingarea1:stroke\""
362 check_error "drawingarea1:stroke " "ignoring GtkDrawingArea command \"drawingarea1:stroke \""
363 check_error "drawingarea1:stroke nnn" "ignoring GtkDrawingArea command \"drawingarea1:stroke nnn\""
364 check_error "drawingarea1:stroke_preserve" "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve\""
365 check_error "drawingarea1:stroke_preserve " "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve \""
366 check_error "drawingarea1:stroke_preserve nnn" "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve nnn\""
367 check_error "drawingarea1:remove" "ignoring GtkDrawingArea command \"drawingarea1:remove\""
368 check_error "drawingarea1:remove " "ignoring GtkDrawingArea command \"drawingarea1:remove \""
369 check_error "drawingarea1:remove nnn" "ignoring GtkDrawingArea command \"drawingarea1:remove nnn\""
370 check_error "drawingarea1:set_show_text" "ignoring GtkDrawingArea command \"drawingarea1:set_show_text\""
371 check_error "drawingarea1:set_show_text " "ignoring GtkDrawingArea command \"drawingarea1:set_show_text \""
372 check_error "drawingarea1:set_show_text nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_show_text nnn\""
373 check_error "drawingarea1:set_font_size" "ignoring GtkDrawingArea command \"drawingarea1:set_font_size\""
374 check_error "drawingarea1:set_font_size " "ignoring GtkDrawingArea command \"drawingarea1:set_font_size \""
375 check_error "drawingarea1:set_font_size nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_font_size nnn\""
376 check_error "drawingarea1:set_font_size 1" "ignoring GtkDrawingArea command \"drawingarea1:set_font_size 1\""
377 check_error "drawingarea1:set_font_size 1 nnn" "ignoring GtkDrawingArea command \"drawingarea1:set_font_size 1 nnn\""
379 echo "_:main_quit" >$FIN
381 sleep .5
382 check_rm $FIN
383 rm $FERR
386 #exit
387 echo "
388 # BATCH THREE
390 # Tests for the principal functionality---valid actions leading to
391 # correct results. Manual intervention is required. Instructions
392 # will be given on the statusbar of the test GUI.
393 ######################################################################
396 mkfifo $FOUT
398 check() {
399 # Flush stale pipeglade output
400 while read -t .1 <$FOUT; do : ; done
401 N=$1
402 echo "SEND $2"
403 echo -e "$2" >$FIN
405 while (( i<$N )); do
406 read r <$FOUT
407 if test "$r" != ""; then
408 if test "$r" = "$3"; then
409 count_ok
410 echo " OK ($i) $r"
411 else
412 count_fail
413 echo " FAIL($i) $r"
414 echo " EXPECTED $3"
416 shift
417 (( i+=1 ))
419 done
423 ./pipeglade -u simple_dialog.ui -i $FIN -o $FOUT &
425 # wait for $FIN and $FOUT to appear
426 while test ! \( -e $FIN -a -e $FOUT \); do :; done
428 check 1 "main_apply:force" "main_apply:clicked"
429 check 0 "main_cancel:force"
431 sleep .5
432 check_rm $FIN
433 check_rm $FOUT
436 ./pipeglade -u simple_open.ui -i $FIN -o $FOUT &
438 # wait for $FIN and $FOUT to appear
439 while test ! \( -e $FIN -a -e $FOUT \); do :; done
441 check 2 "main_apply:force" "main:file" "main:folder"
442 check 0 "main_cancel:force"
444 sleep .5
445 check_rm $FIN
446 check_rm $FOUT
449 ./pipeglade -u simple_open.ui -i $FIN -o $FOUT &
451 # wait for $FIN and $FOUT to appear
452 while test ! \( -e $FIN -a -e $FOUT \); do :; done
454 check 2 "main_ok:force" "main:file" "main:folder"
456 sleep .5
457 check_rm $FIN
458 check_rm $FOUT
461 ./pipeglade -i $FIN -o $FOUT &
463 # wait for $FIN and $FOUT to appear
464 while test ! \( -e $FIN -a -e $FOUT \); do :; done
466 check 0 "socket1:id"
467 read XID <$FOUT
468 XID=${XID/socket1:id }
469 (sleep .5; ./pipeglade -u simple_dialog.ui -e $XID <<< "main_cancel:force") &
470 check 2 "" "socket1:plug-added" "socket1:plug-removed"
471 (sleep .5; ./pipeglade -u simple_dialog.ui -e $XID <<< "main_cancel:force") &
472 check 2 "" "socket1:plug-added" "socket1:plug-removed"
474 check 1 "entry1:set_text FFFF" "entry1:text FFFF"
475 check 1 "entry1:set_text" "entry1:text"
476 check 1 "entry1:set_text FFFF" "entry1:text FFFF"
477 check 1 "entry1:set_text " "entry1:text"
478 check 0 "entry1:set_placeholder_text hint hint" # not much of a test
479 check 1 "entry1:set_text FFFF" "entry1:text FFFF"
480 check 1 "entry1:set_text GGGG" "entry1:text GGGG"
481 check 1 "entry1:force" "entry1:text GGGG"
482 check 1 "spinbutton1:set_text 33.0" "spinbutton1:text 33.0"
483 check 2 "radiobutton2:set_active 1" "radiobutton1:0" "radiobutton2:1"
484 check 2 "radiobutton1:set_active 1" "radiobutton2:0" "radiobutton1:1"
485 check 1 "switch1:set_active 1" "switch1:1"
486 check 1 "switch1:set_active 0" "switch1:0"
487 check 1 "togglebutton1:set_active 1" "togglebutton1:1"
488 check 1 "calendar1:select_date 1752-03-29" "calendar1:clicked 1752-03-29"
489 check 0 "progressbar1:set_text This Is A Progressbar."
491 L=$(i=0
492 while (( i<100 )); do
493 (( i+=1 ))
494 echo -n "Repetitive input that is large enough to have the realloc() machinery kick in.---"
495 done)
496 check 1 "entry1:set_text $L" "entry1:text $L"
498 check 1 "statusbar1:push Open what should now be named \"EXPANDER\" and click the \"button inside expander\"\n expander1:set_expanded 0\n expander1:set_label EXPANDER" "button6:clicked"
499 check 0 "expander1:set_expanded 0"
501 check 12 "statusbar1:push Click the 66% line\n treeview1:set 2 0 1\n treeview1:set 2 1 -30000\n treeview1:set 2 2 66\n treeview1:set 2 3 -2000000000\n treeview1:set 2 4 4000000000\n treeview1:set 2 5 -2000000000\n treeview1:set 2 6 4000000000\n treeview1:set 2 7 3.141\n treeview1:set 2 8 3.141\n treeview1:set 2 9 TEXT" "treeview1:clicked" "treeview1:gboolean 2 0 1" "treeview1:gint 2 1 -30000" "treeview1:guint 2 2 66" "treeview1:glong 2 3 -2000000000" "treeview1:glong 2 4 4000000000" "treeview1:glong 2 5 -2000000000" "treeview1:gulong 2 6 4000000000" "treeview1:gfloat 2 7 3.141000" "treeview1:gdouble 2 8 3.141000" "treeview1:gchararray 2 9 TEXT" "treeview1:gchararray 2 10 zzz"
502 check 12 "statusbar1:push Click the 66% line again (insert_row)\n treeview1:insert_row 0\n treeview1:insert_row 2" "treeview1:clicked" "treeview1:gboolean 4 0 1" "treeview1:gint 4 1 -30000" "treeview1:guint 4 2 66" "treeview1:glong 4 3 -2000000000" "treeview1:glong 4 4 4000000000" "treeview1:glong 4 5 -2000000000" "treeview1:gulong 4 6 4000000000" "treeview1:gfloat 4 7 3.141000" "treeview1:gdouble 4 8 3.141000" "treeview1:gchararray 4 9 TEXT" "treeview1:gchararray 4 10 zzz"
503 check 12 "statusbar1:push Click the 66% line again (move_row)\n treeview1:move_row 4 0" "treeview1:clicked" "treeview1:gboolean 0 0 1" "treeview1:gint 0 1 -30000" "treeview1:guint 0 2 66" "treeview1:glong 0 3 -2000000000" "treeview1:glong 0 4 4000000000" "treeview1:glong 0 5 -2000000000" "treeview1:gulong 0 6 4000000000" "treeview1:gfloat 0 7 3.141000" "treeview1:gdouble 0 8 3.141000" "treeview1:gchararray 0 9 TEXT" "treeview1:gchararray 0 10 zzz"
504 check 12 "statusbar1:push Click the 66% line again (move_row)\n treeview1:move_row 0 2" "treeview1:clicked" "treeview1:gboolean 1 0 1" "treeview1:gint 1 1 -30000" "treeview1:guint 1 2 66" "treeview1:glong 1 3 -2000000000" "treeview1:glong 1 4 4000000000" "treeview1:glong 1 5 -2000000000" "treeview1:gulong 1 6 4000000000" "treeview1:gfloat 1 7 3.141000" "treeview1:gdouble 1 8 3.141000" "treeview1:gchararray 1 9 TEXT" "treeview1:gchararray 1 10 zzz"
505 check 12 "statusbar1:push Click the 66% line again (insert_row, move_row)\n treeview1:insert_row end\n treeview1:move_row 1 end" "treeview1:clicked" "treeview1:gboolean 6 0 1" "treeview1:gint 6 1 -30000" "treeview1:guint 6 2 66" "treeview1:glong 6 3 -2000000000" "treeview1:glong 6 4 4000000000" "treeview1:glong 6 5 -2000000000" "treeview1:gulong 6 6 4000000000" "treeview1:gfloat 6 7 3.141000" "treeview1:gdouble 6 8 3.141000" "treeview1:gchararray 6 9 TEXT" "treeview1:gchararray 6 10 zzz"
506 check 12 "statusbar1:push Click the 66% line again (remove_row)\n treeview1:remove_row 0\n treeview1:remove_row 2" "treeview1:clicked" "treeview1:gboolean 4 0 1" "treeview1:gint 4 1 -30000" "treeview1:guint 4 2 66" "treeview1:glong 4 3 -2000000000" "treeview1:glong 4 4 4000000000" "treeview1:glong 4 5 -2000000000" "treeview1:gulong 4 6 4000000000" "treeview1:gfloat 4 7 3.141000" "treeview1:gdouble 4 8 3.141000" "treeview1:gchararray 4 9 TEXT" "treeview1:gchararray 4 10 zzz"
507 check 12 "statusbar1:push Click the 66% line once again (move_row)\n treeview1:move_row 0 end" "treeview1:clicked" "treeview1:gboolean 3 0 1" "treeview1:gint 3 1 -30000" "treeview1:guint 3 2 66" "treeview1:glong 3 3 -2000000000" "treeview1:glong 3 4 4000000000" "treeview1:glong 3 5 -2000000000" "treeview1:gulong 3 6 4000000000" "treeview1:gfloat 3 7 3.141000" "treeview1:gdouble 3 8 3.141000" "treeview1:gchararray 3 9 TEXT" "treeview1:gchararray 3 10 zzz"
508 check 24 "treeview1:remove_row 3" "treeview1:clicked" "treeview1:gboolean 3 0 0" "treeview1:gint 3 1 0" "treeview1:guint 3 2 0" "treeview1:glong 3 3 0" "treeview1:glong 3 4 0" "treeview1:glong 3 5 0" "treeview1:gulong 3 6 0" "treeview1:gfloat 3 7 0.000000" "treeview1:gdouble 3 8 0.000000" "treeview1:gchararray 3 9 abc" "treeview1:gchararray 3 10 xxx" "treeview1:clicked" "treeview1:gboolean 3 0 0" "treeview1:gint 3 1 0" "treeview1:guint 3 2 0" "treeview1:glong 3 3 0" "treeview1:glong 3 4 0" "treeview1:glong 3 5 0" "treeview1:gulong 3 6 0" "treeview1:gfloat 3 7 0.000000" "treeview1:gdouble 3 8 0.000000" "treeview1:gchararray 3 9 abc" "treeview1:gchararray 3 10 xxx"
509 check 1 "statusbar1:push Press \"button\" if the 66% line has vanished" "button1:clicked"
510 check 12 "statusbar1:push Click the lowest line visible in the scrolled area (scroll)\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:insert_row 2\n treeview1:scroll 24 0" "treeview1:clicked" "treeview1:gboolean 24 0 0" "treeview1:gint 24 1 0" "treeview1:guint 24 2 0" "treeview1:glong 24 3 0" "treeview1:glong 24 4 0" "treeview1:glong 24 5 0" "treeview1:gulong 24 6 0" "treeview1:gfloat 24 7 0.000000" "treeview1:gdouble 24 8 0.000000" "treeview1:gchararray 24 9 abc" "treeview1:gchararray 24 10 xxx"
511 check 12 "statusbar1:push Click the highest line visible in the scrolled area (scroll)\n treeview1:scroll 1 0" "treeview1:clicked" "treeview1:gboolean 1 0 0" "treeview1:gint 1 1 3" "treeview1:guint 1 2 0" "treeview1:glong 1 3 0" "treeview1:glong 1 4 0" "treeview1:glong 1 5 0" "treeview1:gulong 1 6 0" "treeview1:gfloat 1 7 0.000000" "treeview1:gdouble 1 8 0.000000" "treeview1:gchararray 1 9 jkl" "treeview1:gchararray 1 10 ZZZ"
513 check 1 "statusbar1:push Click the header of column \"col3\"" "treeviewcolumn3:clicked"
515 check 0 "notebook1:set_current_page 2"
516 check 1 "nonexistent_send_text:force" "nonexistent_send_text:clicked"
517 check 1 "nonexistent_send_selection:force" "nonexistent_send_selection:clicked"
518 check 1 "nonexistent_ok:force" "nonexistent_ok:clicked"
519 check 1 "nonexistent_apply:force" "nonexistent_apply:clicked"
520 check 1 "nonexistent_cancel:force" "nonexistent_cancel:clicked"
521 check 0 "notebook1:set_current_page 1"
522 check 1 "textview1_send_text:force" "textview1_send_text:text some textnetcn"
523 check 1 "textview1:place_cursor 5\n textview1:insert_at_cursor MORE \n textview1_send_text:force" "textview1_send_text:text some MORE textnetcn"
524 check 1 "textview1:place_cursor_at_line 1\n textview1:insert_at_cursor ETC \n textview1_send_text:force" "textview1_send_text:text some MORE textnETC etcn"
525 check 1 "textview1:delete\n textview1_send_text:force" "textview1_send_text:text"
526 check 1 "statusbar1:push Highlight the lowest visible text line and press \"send_selection\"\n textview1:place_cursor_at_line 1 \ntextview1:insert_at_cursor A\\\\nB\\\\nC\\\\nD\\\\nE\\\\nF\\\\nG\\\\nH\\\\nI\\\\nJ\\\\nK\\\\nL\\\\nM\\\\nN\\\\nO\\\\nP\\\\nQ\\\\nR\\\\nS\\\\nT\\\\nU\\\\nV\\\\nW\\\\nX\\\\nY\\\\nZ\\\\na\\\\nb\\\\nc\\\\nd\\\\ne\\\\nf\\\\ng\\\\nh\\\\ni\\\\nj\\\\nk\\\\nl\\\\nm\\\\nn\\\\no\\\\np\\\\nq\\\\nr\\\\ns\\\\nt\\\\nu\\\\nv\\\\nw\\\\nx\\\\ny\\\\nz \n textview1:place_cursor_at_line 46 \n textview1:scroll_to_cursor" "textview1_send_selection:text u"
527 check 1 "statusbar1:push Again, highlight the lowest visible text line and press \"send_selection\"\n textview1:place_cursor end\n textview1:scroll_to_cursor" "textview1_send_selection:text z"
528 check 1 "statusbar1:push Highlight the highest visible text line and press \"send_selection\"\n textview1:place_cursor 0 \n textview1:scroll_to_cursor" "textview1_send_selection:text A"
529 check 1 "scale1:set_value 10\n scale1:force" "scale1:value 10.000000"
530 check 5 "open_dialog:set_filename q.png\n file:force\n open_dialog_invoke:force\n open_dialog_apply:force\n open_dialog_ok:force" "file:active _File" "open_dialog:file $PWD/q.png" "open_dialog:folder $PWD" "open_dialog:file $PWD/q.png" "open_dialog:folder $PWD"
531 check 1 "file:force\n open_dialog_invoke:force\n open_dialog_cancel:force" "file:active _File"
532 check 3 "save_as_dialog:set_current_name /somewhere/crazy_idea\n file:force\n save_as_dialog_invoke:force\n save_as_dialog_ok:force" "file:active _File" "save_as_dialog:file /somewhere/crazy_idea" "save_as_dialog:folder"
533 check 1 "nonexistent_invoke:force" "nonexistent_invoke:active nonexistent"
534 check 1 "statusbar1:push Press the \"button\" which should now be renamed \"OK\"\n button1:set_label OK" "button1:clicked"
535 check 1 "statusbar1:push Press the \"togglebutton\" which should now be renamed \"on/off\"\n togglebutton1:set_label on/off" "togglebutton1:0"
536 check 1 "togglebutton1:force" "togglebutton1:1"
537 check 1 "statusbar1:push Press the \"checkbutton\" which should now be renamed \"REGISTER\"\n checkbutton1:set_label REGISTER" "checkbutton1:1"
538 check 1 "checkbutton1:force" "checkbutton1:0"
539 check 2 "statusbar1:push Press the \"radiobutton\" which should now be renamed \"RADIO\"\n radiobutton2:set_label RADIO" "radiobutton1:0" "radiobutton2:1"
540 check 2 "radiobutton1:force" "radiobutton2:0" "radiobutton1:1"
541 check 1 "statusbar1:push Click the widget whose label font is now Bold Italic 20\n switch1:style font:Bold Italic 20" "switch1:1"
542 check 1 "statusbar1:push Click the widget whose label has turned red\n switch1:style color:red" "switch1:0"
543 check 1 "statusbar1:push Click the widget whose background has turned yellow\n checkbutton1:style background-color:yellow" "checkbutton1:1"
544 check 1 "statusbar1:push Press \"OK\" if font and colors changed in previous steps are back to normal\n switch1:style\n checkbutton1:style" "button1:clicked"
545 check 1 "switch1:force" "switch1:1"
546 check 1 "statusbar1:push Press \"OK\" if the \"lorem ipsum dolor ...\" text inside \"frame1\" now reads \"LABEL\"\n label1:set_text LABEL" "button1:clicked"
547 check 1 "statusbar1:push Press \"OK\" if the label of the frame around \"LABEL\" now reads \"LOREM IPSUM\"\n frame1:set_label LOREM IPSUM" "button1:clicked"
548 check 1 "statusbar1:push Press \"OK\" if the green dot has turned red\n image1:set_from_icon_name gtk-no" "button1:clicked"
549 check 1 "statusbar1:push Press \"OK\" if the red dot has turned into a green \"Q\"\n image1:set_from_file q.png" "button1:clicked"
550 check 1 "statusbar1:push Select \"FIRST\" from the combobox\n comboboxtext1:prepend_text FIRST" "comboboxtext1_entry:text FIRST"
551 check 1 "statusbar1:push Select \"LAST\" from the combobox\n comboboxtext1:append_text LAST" "comboboxtext1_entry:text LAST"
552 check 1 "statusbar1:push Select \"AVERAGE\" from the combobox\n comboboxtext1:insert_text 3 AVERAGE" "comboboxtext1_entry:text AVERAGE"
553 check 1 "statusbar1:push Select the second entry from the combobox\n comboboxtext1:remove 0" "comboboxtext1_entry:text def"
554 check 2 "statusbar1:push Click the \"+\" of the spinbutton" "spinbutton1:text 33.00" "spinbutton1:text 34.00"
555 check 1 "statusbar1:push Click the \"+\" of the spinbutton again" "spinbutton1:text 35.00"
556 check 1 "statusbar1:push Click the \"+\" of the spinbutton once again" "spinbutton1:text 36.00"
557 check 1 "spinbutton1:force" "spinbutton1:text 36.00"
558 check 1 "statusbar1:push Using the file chooser button (now labelled \"etc\"), select \"File System\" (= \"/\")\n filechooserbutton1:set_filename /etc/" "filechooserbutton1:file /"
559 check 1 "filechooserbutton1:force" "filechooserbutton1:file /"
560 check 1 "statusbar1:push Click \"Select\"\n fontbutton1:set_font_name Sans Bold 40\n fontbutton1:force" "fontbutton1:font Sans Bold 40"
561 check 1 "statusbar1:push Click \"Select\" (1)\n colorbutton1:set_color yellow\n colorbutton1:force" "colorbutton1:color rgb(255,255,0)"
562 check 1 "statusbar1:push Click \"Select\" (2)\n colorbutton1:set_color rgb(0,255,0)\n colorbutton1:force" "colorbutton1:color rgb(0,255,0)"
563 check 1 "statusbar1:push Click \"Select\" (3)\n colorbutton1:set_color #00f\n colorbutton1:force" "colorbutton1:color rgb(0,0,255)"
564 check 1 "statusbar1:push Click \"Select\" (4)\n colorbutton1:set_color #ffff00000000\n colorbutton1:force" "colorbutton1:color rgb(255,0,0)"
565 check 1 "statusbar1:push Click \"Select\" (5)\n colorbutton1:set_color rgba(0,255,0,.5)\n colorbutton1:force" "colorbutton1:color rgba(0,255,0,0.5)"
566 check 0 "statusbar1:push Click \"Cancel\"\n printdialog:print nonexistent.ps"
567 check 1 "statusbar1:push Press \"OK\" if both 1752-03-13 and 1752-03-14 are marked on the calendar\n calendar1:mark_day 13\n calendar1:mark_day 14" "button1:clicked"
568 check 1 "statusbar1:push Press \"OK\" if 1752-03-13 and 1752-03-14 are no longer marked on the calendar\n calendar1:clear_marks" "button1:clicked"
569 check 3 "statusbar1:push Double-click on 1752-03-13 in the calendar" "calendar1:clicked 1752-03-13" "calendar1:clicked 1752-03-13" "calendar1:doubleclicked 1752-03-13"
570 check 1 "calendar1:force" "calendar1:clicked 1752-03-13"
572 check 0 "drawingarea1:rectangle 1 0 0 150 150\n drawingarea1:fill 1\n drawingarea1:refresh"
573 check 0 "drawingarea1:remove 1\n drawingarea1:remove 2\n drawingarea1:remove 3\n drawingarea1:remove 4\n drawingarea1:refresh"
574 check 0 "drawingarea1:rectangle 1 0 0 150 150\n drawingarea1:fill 1\n drawingarea1:refresh"
575 check 0 "drawingarea1:arc 1 80 80 60 30 60\n drawingarea1:set_source_rgba 1 red\n drawingarea1:stroke_preserve 1\n drawingarea1:line_to 1 80 80\n drawingarea1:fill 1\n drawingarea1:refresh"
576 check 0 "drawingarea1:arc_negative 1 80 80 70 30 60\n drawingarea1:set_source_rgba 1 green\n drawingarea1:stroke_preserve 1\n drawingarea1:rel_line_to 1 -50 -50\n drawingarea1:stroke 1\n drawingarea1:refresh"
577 check 0 "drawingarea1:curve_to 1 30 30 90 120 120 30\n drawingarea1:set_source_rgba 1 blue\n drawingarea1:stroke 1\n drawingarea1:refresh"
578 check 0 "drawingarea1:move_to 1 160 160\n drawingarea1:rel_curve_to 1 30 30 90 120 120 30\n drawingarea1:set_source_rgba 1 orange\n drawingarea1:stroke_preserve 1\n drawingarea1:refresh"
579 check 0 "drawingarea1:move_to 1 0 0\n drawingarea1:rel_move_to 1 0 155\n drawingarea1:rel_line_to 1 300 0\n drawingarea1:set_dash 1 10\n drawingarea1:stroke 1"
580 check 0 "drawingarea1:move_to 1 0 160\n drawingarea1:rel_line_to 1 300 0\n drawingarea1:set_dash 1 20 5\n drawingarea1:stroke 1"
581 check 0 "drawingarea1:move_to 1 0 165\n drawingarea1:rel_line_to 1 300 0\n drawingarea1:set_dash 1 5 20\n drawingarea1:stroke 1"
582 check 0 "drawingarea1:move_to 1 0 170\n drawingarea1:rel_line_to 1 300 0\n drawingarea1:set_dash 1 3 3 3 3 3 15\n drawingarea1:stroke 1"
583 check 0 "drawingarea1:refresh\n drawingarea1:set_dash 1"
584 check 0 "drawingarea1:set_source_rgba 1 brown\n drawingarea1:set_line_width 1 15"
585 check 1 "statusbar1:push Press \"OK\" if the brown shape is rounded\n drawingarea1:set_line_join 2 round\n drawingarea1:set_line_cap 2 round\n drawingarea1:move_to 1 160 20\n drawingarea1:rel_line_to 1 20 0\n drawingarea1:rel_line_to 1 0 20\n drawingarea1:stroke 1\n drawingarea1:refresh" "button1:clicked"
586 check 1 "statusbar1:push Press \"OK\" if the second brown shape is shorter and bevelled\n drawingarea1:set_line_join 3 bevel\n drawingarea1:set_line_cap 3 butt\n drawingarea1:move_to 1 160 70\n drawingarea1:rel_line_to 1 20 0\n drawingarea1:rel_line_to 1 0 20\n drawingarea1:stroke 1\n drawingarea1:refresh" "button1:clicked"
587 check 1 "statusbar1:push Press \"OK\" if the third brown shape is square\n drawingarea1:set_line_join 3 miter\n drawingarea1:set_line_cap 3 square\n drawingarea1:move_to 1 160 120\n drawingarea1:rel_line_to 1 20 0\n drawingarea1:rel_line_to 1 0 20\n drawingarea1:stroke 1\n drawingarea1:refresh" "button1:clicked"
588 check 1 "statusbar1:push Press \"OK\" if the first brown shape is no longer rounded\n drawingarea1:remove 2\n drawingarea1:refresh" "button1:clicked"
589 check 1 "statusbar1:push Press \"OK\" if all three brown shapes look the same\n drawingarea1:remove 3\n drawingarea1:refresh" "button1:clicked"
590 check 0 "drawingarea1:move_to 5 50 50\n drawingarea1:line_to 5 200 10\n drawingarea1:line_to 5 150 200\n drawingarea1:close_path 1\n drawingarea1:set_source_rgba 5 rgba(0,255,0,.2)\n drawingarea1:fill_preserve 1\n drawingarea1:refresh"
591 check 0 "drawingarea1:move_to 5 10 50\n drawingarea1:set_source_rgba 5 cyan\n drawingarea1:set_font_size 5 30\n drawingarea1:show_text 5 Xyz\n drawingarea1:set_font_size 5 10\n drawingarea1:show_text 5 Abc\n drawingarea1:refresh"
592 check 0 "drawingarea1:remove 1\n drawingarea1:remove 2\n drawingarea1:remove 3\n drawingarea1:remove 4\n drawingarea1:refresh"
594 check 0 "drawingarea2:rectangle 1 0 0 150 150\n drawingarea2:fill 1\n drawingarea2:refresh"
595 check 0 "drawingarea2:arc 1 80 80 60 30 60\n drawingarea2:set_source_rgba 1 red\n drawingarea2:stroke_preserve 1\n drawingarea2:line_to 1 80 80\n drawingarea2:fill 1\n drawingarea2:refresh"
596 check 0 "drawingarea2:arc_negative 1 80 80 70 30 60\n drawingarea2:set_source_rgba 1 green\n drawingarea2:stroke_preserve 1\n drawingarea2:rel_line_to 1 -50 -50\n drawingarea2:stroke 1\n drawingarea2:refresh"
597 check 0 "drawingarea2:curve_to 1 30 30 90 120 120 30\n drawingarea2:set_source_rgba 1 blue\n drawingarea2:stroke 1\n drawingarea2:refresh"
598 check 0 "drawingarea2:move_to 1 160 160\n drawingarea2:rel_curve_to 1 30 30 90 120 120 30\n drawingarea2:set_source_rgba 1 orange\n drawingarea2:stroke_preserve 1\n drawingarea2:refresh"
599 check 0 "drawingarea2:move_to 1 0 0\n drawingarea2:rel_move_to 1 0 155\n drawingarea2:rel_line_to 1 300 0\n drawingarea2:set_dash 1 10\n drawingarea2:stroke 1"
600 check 0 "drawingarea2:move_to 1 0 160\n drawingarea2:rel_line_to 1 300 0\n drawingarea2:set_dash 1 20 5\n drawingarea2:stroke 1"
601 check 0 "drawingarea2:move_to 1 0 165\n drawingarea2:rel_line_to 1 300 0\n drawingarea2:set_dash 1 5 20\n drawingarea2:stroke 1"
602 check 0 "drawingarea2:move_to 1 0 170\n drawingarea2:rel_line_to 1 300 0\n drawingarea2:set_dash 1 3 3 3 3 3 15\n drawingarea2:stroke 1"
603 check 0 "drawingarea2:refresh\n drawingarea2:set_dash 1"
604 check 0 "drawingarea2:set_source_rgba 1 brown\n drawingarea2:set_line_width 1 15"
605 check 0 "drawingarea2:set_line_cap 2 round\n drawingarea2:move_to 1 160 20\n drawingarea2:rel_line_to 1 20 0\n drawingarea2:rel_line_to 1 0 20\n drawingarea2:stroke 1\n drawingarea2:refresh"
606 check 0 "drawingarea2:set_line_join 3 bevel\n drawingarea2:set_line_cap 3 butt\n drawingarea2:move_to 1 160 70\n drawingarea2:rel_line_to 1 20 0\n drawingarea2:rel_line_to 1 0 20\n drawingarea2:stroke 1\n drawingarea2:refresh"
607 check 0 "drawingarea2:set_line_join 3 miter\n drawingarea2:set_line_cap 3 square\n drawingarea2:move_to 1 160 120\n drawingarea2:rel_line_to 1 20 0\n drawingarea2:rel_line_to 1 0 20\n drawingarea2:stroke 1\n drawingarea2:refresh"
608 check 0 "drawingarea2:remove 2\n drawingarea2:refresh"
609 check 0 "drawingarea2:remove 3\n drawingarea2:refresh"
611 check 1 "statusbar1:push Press \"OK\" if there is a spinning spinner\n spinner1:start" "button1:clicked"
612 check 1 "statusbar1:push Press \"OK\" if the spinner has stopped\n spinner1:stop" "button1:clicked"
613 check 1 "statusbar1:push Press \"OK\" if there is now a \"Disconnect\" button\n button2:set_visible 1\n button2:set_sensitive 0" "button1:clicked"
614 check 1 "statusbar1:push Press \"Disconnect\"\n button2:set_sensitive 1" "button2:clicked"
615 check 1 "statusbar1:push Press \"OK\" if the window title is now \"ALMOST DONE\"\n main:set_title ALMOST DONE" "button1:clicked"
616 check 1 "statusbar1:push Press \"OK\" if the progress bar shows 90%\n progressbar1:set_fraction .9\n progressbar1:set_text" "button1:clicked"
617 check 1 "statusbar1:push Press \"OK\" if the progress bar text reads \"The End\"\n progressbar1:set_text The End" "button1:clicked"
618 check 1 "statusbar1:push Press \"No\"\n statusbar1:push nonsense 1\n statusbar1:push nonsense 2\n statusbar1:push nonsense 3\n statusbar1:pop\n statusbar1:pop\n statusbar1:pop" "no_button:clicked"
620 echo "_:main_quit" >$FIN
622 sleep .5
623 check_rm $FIN
624 check_rm $FOUT
628 echo "PASSED: $OKS/$TESTS; FAILED: $FAILS/$TESTS"