Do command parsing and UI updating in parallel
[pipeglade.git] / pipegladetest.sh
blob81f4806d813d4b18a7bd1f2f2a138d618ed49a40
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 export NO_AT_BRIDGE=1
12 FIN=to-g.fifo
13 FOUT=from-g.fifo
14 FERR=err.fifo
15 LOG=test.log
16 BAD_FIFO=bad_fifo
17 DIR=test_dir
18 FILE1=saved1.txt
19 FILE2=saved2.txt
20 FILE3=saved3.txt
21 FILE4=saved4.txt
22 FILE5=saved5.txt
23 FILE6=saved6.txt
24 rm -rf $FIN $FOUT $FERR $BAD_FIFO $FILE1 $FILE2 $FILE3 $FILE4 $FILE5 $FILE6 $DIR
26 if stat -f "%0p"; then
27 STAT_CMD='stat -f "%0p"'
28 else
29 # probably GNU stat
30 STAT_CMD='stat -c "%a"'
33 # colored messages: bright green
34 OK=$'\E[32;1mOK\E[0m'
35 # bright red
36 FAIL=$'\E[31;1mFAIL\E[0m'
37 EXPECTED=$'\E[31;1mEXPECTED\E[0m'
38 # yellow
39 CALL=$'\E[33mCALL\E[0m'
40 SEND=$'\E[33mSEND\E[0m'
42 TESTS=0
43 FAILS=0
44 OKS=0
46 count_fail() {
47 (( TESTS+=1 ))
48 (( FAILS+=1 ))
51 count_ok() {
52 (( TESTS+=1 ))
53 (( OKS+=1 ))
56 check_rm() {
57 i=0
58 while test -e $1 && (( i<50 )); do
59 sleep .1
60 (( i+=1 ))
61 done
62 if test -e $1; then
63 count_fail
64 echo " $FAIL $1 should be deleted"
65 rm -f $1
66 else
67 count_ok
68 echo " $OK $1 deleted"
72 check_cmd() {
73 i=0
74 while ! eval "$1" && (( i<50 )); do
75 sleep .1
76 (( i+=1 ))
77 done
78 if eval "$1"; then
79 count_ok
80 echo " $OK $1"
81 else
82 count_fail
83 echo " $FAIL $1"
87 echo "
88 # BATCH ONE
90 # Situations where pipeglade should exit immediately. These tests
91 # should run automatically
92 ######################################################################
95 # check_call command expected_status expected_stderr expected_stdout
96 check_call() {
97 r=$2
98 e=$3
99 o=$4
100 output=$($1 2>tmperr.txt)
101 retval=$?
102 error=$(<tmperr.txt)
103 rm tmperr.txt
104 echo "$CALL $1"
105 if test "$output" = "" -a "$o" = "" || (echo "$output" | grep -Fqe "$o"); then
106 count_ok
107 echo " $OK STDOUT $output"
108 else
109 count_fail
110 echo " $FAIL STDOUT $output"
111 echo " $EXPECTED $o"
113 if test "$error" = "" -a "$e" = "" || test "$retval" -eq "$r" && (echo "$error" | grep -Fqe "$e"); then
114 count_ok
115 echo " $OK EXIT/STDERR $retval $error"
116 else
117 count_fail
118 echo " $FAIL EXIT/STDERR $retval $error"
119 echo " $EXPECTED $r $e"
123 check_call "./pipeglade -u nonexistent.ui" 1 \
124 "nonexistent.ui" ""
125 check_call "./pipeglade -u bad_window.ui" 1 \
126 "no toplevel window named 'main'" ""
127 check_call "./pipeglade -u www-template/404.html" 1 \
128 "html" ""
129 check_call "./pipeglade -u README" 1 \
130 "Document must begin with an element" ""
131 check_call "./pipeglade -e x" 1 \
132 "x is not a valid XEmbed socket id" ""
133 check_call "./pipeglade -ex" 1 \
134 "x is not a valid XEmbed socket id" ""
135 check_call "./pipeglade -e -77" 1 \
136 "-77 is not a valid XEmbed socket id" ""
137 check_call "./pipeglade -e 77x" 1 \
138 "77x is not a valid XEmbed socket id" ""
139 check_call "./pipeglade -e +77" 1 \
140 "+77 is not a valid XEmbed socket id" ""
141 check_call "./pipeglade -e 999999999999999999999999999999" 1 \
142 "999999999999999999999999999999 is not a valid XEmbed socket id" ""
143 check_call "./pipeglade -e 99999999999999999" 1 \
144 "unable to embed into XEmbed socket 99999999999999999" ""
145 touch $BAD_FIFO
146 check_call "./pipeglade -i $BAD_FIFO" 1 \
147 "making fifo" ""
148 check_call "./pipeglade -o $BAD_FIFO" 1 \
149 "making fifo" ""
150 rm $BAD_FIFO
151 check_call "./pipeglade -h" 0 \
152 "" "usage: pipeglade [[-i in-fifo] [-o out-fifo] [-u glade-file.ui] [-e xid]
153 [-l log-file] [--display X-server]] | [-h | -G | -V]"
154 check_call "./pipeglade -G" 0 \
155 "" "GTK+ v"
156 check_call "./pipeglade -G" 0 \
157 "" "cairo v"
158 check_call "./pipeglade -V" 0 \
159 "" "."
160 check_call "./pipeglade -X" 1 \
161 "option" ""
162 check_call "./pipeglade -e" 1 \
163 "argument" ""
164 check_call "./pipeglade -u" 1 \
165 "argument" ""
166 check_call "./pipeglade -i" 1 \
167 "argument" ""
168 check_call "./pipeglade -o" 1 \
169 "argument" ""
170 check_call "./pipeglade -l" 1 \
171 "argument" ""
172 check_call "./pipeglade yyy" 1 \
173 "illegal parameter 'yyy'" ""
174 check_call "./pipeglade --display nnn" 1 \
175 "nnn"
176 mkfifo $FIN
177 echo -e "statusbar1:pop\n _:main_quit" > $FIN &
178 check_call "./pipeglade -i $FIN" 0 \
179 "" ""
180 mkfifo $FIN
181 echo -e "statusbar1:pop_id 111\n _:main_quit" > $FIN &
182 check_call "./pipeglade -i $FIN" 0 \
183 "" ""
185 check_rm $FIN
186 check_rm $FOUT
190 #exit
191 echo "
192 # BATCH TWO
194 # Error handling tests---bogus actions leading to appropriate error
195 # messages. Most of these tests should run automatically.
196 ######################################################################
199 mkfifo $FERR
201 # check_error command expected_stderr
202 check_error() {
203 echo "$SEND $1"
204 echo -e "$1" >$FIN
205 while read r <$FERR; do
206 # ignore irrelevant GTK warnings
207 if test "$r" != "" && ! grep -qe "WARNING"<<< "$r"; then
208 break;
210 done
211 if grep -qe "$2" <<< "$r"; then
212 count_ok
213 echo " $OK $r"
214 else
215 count_fail
216 echo " $FAIL $r"
217 echo " $EXPECTED $2"
221 read r 2< $FERR &
222 ./pipeglade -i $FIN 2> $FERR &
224 # wait for $FIN to appear
225 while test ! \( -e $FIN \); do :; done
227 # Non-existent name
228 check_error "nnn" \
229 "ignoring command \"nnn\""
230 check_error "nnn:set_text FFFF" \
231 "ignoring command \"nnn:set_text FFFF\""
232 check_error "nnn:set_tooltip_text FFFF" \
233 "ignoring command \"nnn:set_tooltip_text FFFF\""
234 check_error "nnn:set_sensible 0" \
235 "ignoring command \"nnn:set_sensible 0\""
236 check_error "nnn:set_sensible 1" \
237 "ignoring command \"nnn:set_sensible 1\""
238 check_error "nnn:set_visible 0" \
239 "ignoring command \"nnn:set_visible 0\""
240 check_error "nnn:set_visible 1" \
241 "ignoring command \"nnn:set_visible 1\""
242 check_error "nnn:grab_focus" \
243 "ignoring command \"nnn:grab_focus\""
244 check_error "nnn:set_size_request 100 100" \
245 "ignoring command \"nnn:set_size_request 100 100\""
246 check_error "nnn:style font:Bold 11" \
247 "ignoring command \"nnn:style font:Bold 11\""
248 check_error "nnn:force" \
249 "ignoring command \"nnn:force\""
250 # Widget that shouldn't fire callbacks
251 check_error "label1:force" \
252 "ignoring GtkLabel command \"label1:force\""
253 # Widget that can't grab focus
254 check_error "label1:grab_focus" \
255 "ignoring GtkLabel command \"label1:grab_focus\""
256 # load file
257 check_error "_:load" \
258 "ignoring command \"_:load\""
259 check_error "_:load " \
260 "ignoring command \"_:load \""
261 check_error "_:load nonexistent.txt" \
262 "ignoring command \"_:load nonexistent.txt\""
263 mkdir -p $DIR
264 cat >$DIR/$FILE1 <<< "blah"
265 check_error "_:load $DIR/$FILE1" \
266 "ignoring command \"blah\""
267 cat >$DIR/$FILE1 <<< "_:load $DIR/$FILE1"
268 check_error "_:load $DIR/$FILE1" \
269 "ignoring command \"_:load $DIR/$FILE1\""
270 cat >$DIR/$FILE1 <<< "_:load $DIR/$FILE2"
271 cat >$DIR/$FILE2 <<< "_:load $DIR/$FILE1"
272 check_error "_:load $DIR/$FILE1" \
273 "ignoring command \"_:load $DIR/$FILE1\""
274 cat >$DIR/$FILE1 <<< "_:load $DIR/$FILE2"
275 cat >$DIR/$FILE2 <<< "_:blah"
276 check_error "_:load $DIR/$FILE1" \
277 "ignoring command \"_:blah\""
278 rm -rf $DIR
279 # GtkWindow
280 check_error "main:nnn" \
281 "ignoring GtkWindow command \"main:nnn\""
282 check_error "main:move" \
283 "ignoring GtkWindow command \"main:move\""
284 check_error "main:move " \
285 "ignoring GtkWindow command \"main:move \""
286 check_error "main:move 700" \
287 "ignoring GtkWindow command \"main:move 700\""
288 check_error "main:move 700 nnn" \
289 "ignoring GtkWindow command \"main:move 700 nnn\""
290 # GtkLabel
291 check_error "label1:nnn" \
292 "ignoring GtkLabel command \"label1:nnn\""
293 # GtkImage
294 check_error "image1:nnn" \
295 "ignoring GtkImage command \"image1:nnn\""
296 # GtkNotebook
297 check_error "notebook1:nnn" \
298 "ignoring GtkNotebook command \"notebook1:nnn\""
299 # GtkExpander
300 check_error "expander1:nnn" \
301 "ignoring GtkExpander command \"expander1:nnn\""
302 # GtkTextView
303 check_error "textview1:nnn" \
304 "ignoring GtkTextView command \"textview1:nnn\""
305 check_error "textview1:save" \
306 "ignoring GtkTextView command \"textview1:save\""
307 mkdir $DIR; chmod a-w $DIR
308 check_error "textview1:save $DIR/$FILE1" \
309 "ignoring GtkTextView command \"textview1:save $DIR/$FILE1\""
310 check_error "textview1:save nonexistent/$FILE1" \
311 "ignoring GtkTextView command \"textview1:save nonexistent/$FILE1\""
312 rm -rf $DIR
313 # GtkButton
314 check_error "button1:nnn" \
315 "ignoring GtkButton command \"button1:nnn\""
316 # GtkSwitch
317 check_error "switch1:nnn" \
318 "ignoring GtkSwitch command \"switch1:nnn\""
319 # GtkToggleButton
320 check_error "togglebutton1:nnn" \
321 "ignoring GtkToggleButton command \"togglebutton1:nnn\""
322 # GtkCheckButton
323 check_error "checkbutton1:nnn" \
324 "ignoring GtkCheckButton command \"checkbutton1:nnn\""
325 # GtkRadioButton
326 check_error "radiobutton1:nnn" \
327 "ignoring GtkRadioButton command \"radiobutton1:nnn\""
328 # GtkSpinButton
329 check_error "spinbutton1:nnn" \
330 "ignoring GtkSpinButton command \"spinbutton1:nnn\""
331 # GtkFileChooserButton
332 check_error "filechooserbutton1:nnn" \
333 "ignoring GtkFileChooserButton command \"filechooserbutton1:nnn\""
334 # GtkFilechooserDialog
335 check_error "open_dialog:nnn" \
336 "ignoring GtkFileChooserDialog command \"open_dialog:nnn\""
337 # GtkFontButton
338 check_error "fontbutton1:nnn" \
339 "ignoring GtkFontButton command \"fontbutton1:nnn\""
340 # GtkColorButton
341 check_error "colorbutton1:nnn" \
342 "ignoring GtkColorButton command \"colorbutton1:nnn\""
343 # GtkPrintUnixDialog
344 check_error "printdialog:nnn" \
345 "ignoring GtkPrintUnixDialog command \"printdialog:nnn\""
346 check_error "statusbar1:push Click \"Print\"\n printdialog:print nonexistent.ps" \
347 "ignoring GtkPrintUnixDialog command \" printdialog:print nonexistent.ps\""
348 # GtkScale
349 check_error "scale1:nnn" \
350 "ignoring GtkScale command \"scale1:nnn\""
351 # GtkProgressBar
352 check_error "progressbar1:nnn" \
353 "ignoring GtkProgressBar command \"progressbar1:nnn\""
354 # GtkSpinner
355 check_error "spinner1:nnn" \
356 "ignoring GtkSpinner command \"spinner1:nnn\""
357 # GtkStatusbar
358 check_error "statusbar1:nnn" \
359 "ignoring GtkStatusbar command \"statusbar1:nnn\""
360 # GtkComboBoxText
361 check_error "comboboxtext1:nnn" \
362 "ignoring GtkComboBoxText command \"comboboxtext1:nnn\""
363 check_error "comboboxtext1:force" \
364 "ignoring GtkComboBoxText command \"comboboxtext1:force\""
366 # GtkTreeView #
367 check_error "treeview1:nnn" \
368 "ignoring GtkTreeView command \"treeview1:nnn\""
369 check_error "treeview2:nnn" \
370 "ignoring GtkTreeView command \"treeview2:nnn\""
371 check_error "treeview1:force" \
372 "ignoring GtkTreeView command \"treeview1:force\""
373 # GtkTreeView save
374 check_error "treeview1:save" \
375 "ignoring GtkTreeView command \"treeview1:save\""
376 mkdir $DIR; chmod a-w $DIR
377 check_error "treeview1:save $DIR/$FILE1" \
378 "ignoring GtkTreeView command \"treeview1:save $DIR/$FILE1\""
379 check_error "treeview1:save nonexistent/$FILE1" \
380 "ignoring GtkTreeView command \"treeview1:save nonexistent/$FILE1\""
381 rm -rf $DIR
382 # GtkTreeView insert_row
383 check_error "treeview1:insert_row 10000" \
384 "ignoring GtkTreeView command \"treeview1:insert_row 10000\""
385 check_error "treeview1:insert_row -1" \
386 "ignoring GtkTreeView command \"treeview1:insert_row -1\""
387 check_error "treeview1:insert_row nnn" \
388 "ignoring GtkTreeView command \"treeview1:insert_row nnn\""
389 check_error "treeview1:insert_row" \
390 "ignoring GtkTreeView command \"treeview1:insert_row\""
391 check_error "treeview1:insert_row " \
392 "ignoring GtkTreeView command \"treeview1:insert_row \""
393 check_error "treeview1:insert_row -1" \
394 "ignoring GtkTreeView command \"treeview1:insert_row -1\""
395 check_error "treeview1:insert_row 1000" \
396 "ignoring GtkTreeView command \"treeview1:insert_row 1000\""
397 check_error "treeview2:insert_row 0" \
398 "ignoring GtkTreeView command \"treeview2:insert_row 0\""
399 check_error "treeview3:insert_row end" \
400 "missing model/ignoring GtkTreeView command \"treeview3:insert_row end\""
401 check_error "treeview2:insert_row end\n treeview2:insert_row 0 as_child\n treeview2:insert_row 0:0 as_child\n treeview2:expand abc" \
402 "ignoring GtkTreeView command \" treeview2:expand abc\""
403 check_error "treeview2:expand" \
404 "ignoring GtkTreeView command \"treeview2:expand\""
405 check_error "treeview2:expand 0:abc" \
406 "ignoring GtkTreeView command \"treeview2:expand 0:abc\""
407 check_error "treeview2:expand_all abc" \
408 "ignoring GtkTreeView command \"treeview2:expand_all abc\""
409 check_error "treeview2:expand_all 0:abc" \
410 "ignoring GtkTreeView command \"treeview2:expand_all 0:abc\""
411 check_error "treeview2:collapse abc" \
412 "ignoring GtkTreeView command \"treeview2:collapse abc\""
413 check_error "treeview2:collapse 0:abc" \
414 "ignoring GtkTreeView command \"treeview2:collapse 0:abc\""
415 check_error "treeview2:insert_row" \
416 "ignoring GtkTreeView command \"treeview2:insert_row\""
417 check_error "treeview2:insert_row abc" \
418 "ignoring GtkTreeView command \"treeview2:insert_row abc\""
419 check_error "treeview2:insert_row 0:abc" \
420 "ignoring GtkTreeView command \"treeview2:insert_row 0:abc\""
421 # GtkTreeView move_row
422 check_error "treeview1:move_row" \
423 "ignoring GtkTreeView command \"treeview1:move_row\""
424 check_error "treeview1:move_row " \
425 "ignoring GtkTreeView command \"treeview1:move_row \""
426 check_error "treeview1:move_row nnn" \
427 "ignoring GtkTreeView command \"treeview1:move_row nnn\""
428 check_error "treeview1:move_row 10000 end" \
429 "ignoring GtkTreeView command \"treeview1:move_row 10000 end\""
430 check_error "treeview1:move_row -1 end" \
431 "ignoring GtkTreeView command \"treeview1:move_row -1 end\""
432 check_error "treeview1:move_row nnn end" \
433 "ignoring GtkTreeView command \"treeview1:move_row nnn end\""
434 check_error "treeview1:move_row 0 10000" \
435 "ignoring GtkTreeView command \"treeview1:move_row 0 10000\""
436 check_error "treeview1:move_row 0 -1" \
437 "ignoring GtkTreeView command \"treeview1:move_row 0 -1\""
438 check_error "treeview1:move_row 0 nnn" \
439 "ignoring GtkTreeView command \"treeview1:move_row 0 nnn\""
440 check_error "treeview2:move_row" \
441 "ignoring GtkTreeView command \"treeview2:move_row\""
442 check_error "treeview2:move_row 0:0 abc" \
443 "ignoring GtkTreeView command \"treeview2:move_row 0:0 abc\""
444 check_error "treeview2:move_row 0:0 0:abc" \
445 "ignoring GtkTreeView command \"treeview2:move_row 0:0 0:abc\""
446 check_error "treeview2:move_row abc end" \
447 "ignoring GtkTreeView command \"treeview2:move_row abc end\""
448 check_error "treeview2:move_row 0:abc end" \
449 "ignoring GtkTreeView command \"treeview2:move_row 0:abc end\""
450 # GtkTreeView remove_row
451 check_error "treeview1:remove_row 10000" \
452 "ignoring GtkTreeView command \"treeview1:remove_row 10000\""
453 check_error "treeview1:remove_row -1" \
454 "ignoring GtkTreeView command \"treeview1:remove_row -1\""
455 check_error "treeview1:remove_row nnn" \
456 "ignoring GtkTreeView command \"treeview1:remove_row nnn\""
457 check_error "treeview1:remove_row" \
458 "ignoring GtkTreeView command \"treeview1:remove_row\""
459 check_error "treeview1:remove_row " \
460 "ignoring GtkTreeView command \"treeview1:remove_row \""
461 check_error "treeview2:remove_row" \
462 "ignoring GtkTreeView command \"treeview2:remove_row\""
463 check_error "treeview2:remove_row abc" \
464 "ignoring GtkTreeView command \"treeview2:remove_row abc\""
465 check_error "treeview2:remove_row 0:abc" \
466 "ignoring GtkTreeView command \"treeview2:remove_row 0:abc\""
467 # GtkTreeView scroll
468 check_error "treeview1:scroll" \
469 "ignoring GtkTreeView command \"treeview1:scroll\""
470 check_error "treeview1:scroll " \
471 "ignoring GtkTreeView command \"treeview1:scroll \""
472 check_error "treeview1:scroll nnn" \
473 "ignoring GtkTreeView command \"treeview1:scroll nnn\""
474 check_error "treeview1:scroll -1 1" \
475 "ignoring GtkTreeView command \"treeview1:scroll -1 1\""
476 check_error "treeview1:scroll 1 -1" \
477 "ignoring GtkTreeView command \"treeview1:scroll 1 -1\""
478 check_error "treeview1:scroll nnn 1" \
479 "ignoring GtkTreeView command \"treeview1:scroll nnn 1\""
480 check_error "treeview1:scroll 1 nnn" \
481 "ignoring GtkTreeView command \"treeview1:scroll 1 nnn\""
482 check_error "treeview2:scroll" \
483 "ignoring GtkTreeView command \"treeview2:scroll\""
484 check_error "treeview2:scroll abc" \
485 "ignoring GtkTreeView command \"treeview2:scroll abc\""
486 check_error "treeview2:scroll 0:abc" \
487 "ignoring GtkTreeView command \"treeview2:scroll 0:abc\""
488 check_error "treeview2:scroll abc 0" \
489 "ignoring GtkTreeView command \"treeview2:scroll abc 0\""
490 check_error "treeview2:scroll 0:abc 0" \
491 "ignoring GtkTreeView command \"treeview2:scroll 0:abc 0\""
492 check_error "treeview2:scroll 0:0" \
493 "ignoring GtkTreeView command \"treeview2:scroll 0:0\""
494 check_error "treeview2:scroll 0:0 abc" \
495 "ignoring GtkTreeView command \"treeview2:scroll 0:0 abc\""
496 check_error "treeview2:set_cursor abc" \
497 "ignoring GtkTreeView command \"treeview2:set_cursor abc\""
498 check_error "treeview2:set_cursor 0:abc" \
499 "ignoring GtkTreeView command \"treeview2:set_cursor 0:abc\""
500 check_error "treeview2:clear 0" \
501 "ignoring GtkTreeView command \"treeview2:clear 0\""
502 check_error "treeview2:clear\n treeview2:insert_row 0" \
503 "ignoring GtkTreeView command \" treeview2:insert_row 0\""
504 # GtkTreeView set
505 check_error "treeview1:set" \
506 "ignoring GtkTreeView command \"treeview1:set\""
507 check_error "treeview1:set " \
508 "ignoring GtkTreeView command \"treeview1:set \""
509 check_error "treeview1:set nnn" \
510 "ignoring GtkTreeView command \"treeview1:set nnn\""
511 check_error "treeview1:set 0 nnn" \
512 "ignoring GtkTreeView command \"treeview1:set 0 nnn\""
513 check_error "treeview1:set nnn 0" \
514 "ignoring GtkTreeView command \"treeview1:set nnn 0\""
515 check_error "treeview1:set 1 10000 77" \
516 "ignoring GtkTreeView command \"treeview1:set 1 10000 77\""
517 check_error "treeview1:set 1 11 77" \
518 "ignoring GtkTreeView command \"treeview1:set 1 11 77\""
519 check_error "treeview1:set nnn 1 77" \
520 "ignoring GtkTreeView command \"treeview1:set nnn 1 77\""
521 check_error "treeview1:set 1 nnn 77" \
522 "ignoring GtkTreeView command \"treeview1:set 1 nnn 77\""
523 check_error "treeview1:set -1 1 77" \
524 "ignoring GtkTreeView command \"treeview1:set -1 1 77\""
525 check_error "treeview1:set 1 -1 77" \
526 "ignoring GtkTreeView command \"treeview1:set 1 -1 77\""
527 # GtkTree set "abc" into numeric column
528 check_error "treeview1:set 1 1 abc" \
529 "ignoring GtkTreeView command \"treeview1:set 1 1 abc\""
531 # GtkTreeViewColumn
532 check_error "treeviewcolumn3:nnn" \
533 "ignoring GtkTreeViewColumn command \"treeviewcolumn3:nnn\""
534 check_error "treeviewcolumn3:force" \
535 "ignoring GtkTreeViewColumn command \"treeviewcolumn3:force\""
536 # GtkEntry
537 check_error "entry1:nnn" \
538 "ignoring GtkEntry command \"entry1:nnn\""
539 # GtkCalendar
540 check_error "calendar1:nnn" \
541 "ignoring GtkCalendar command \"calendar1:nnn\""
542 check_error "calendar1:select_date" \
543 "ignoring GtkCalendar command \"calendar1:select_date\""
544 check_error "calendar1:select_date " \
545 "ignoring GtkCalendar command \"calendar1:select_date \""
546 check_error "calendar1:select_date nnn" \
547 "ignoring GtkCalendar command \"calendar1:select_date nnn\""
548 check_error "calendar1:select_date 2000-12-33" \
549 "ignoring GtkCalendar command \"calendar1:select_date 2000-12-33\""
550 check_error "calendar1:select_date 2000-13-20" \
551 "ignoring GtkCalendar command \"calendar1:select_date 2000-13-20\""
552 # GtkSocket
553 check_error "socket1:nnn" \
554 "ignoring GtkSocket command \"socket1:nnn\""
555 # GtkScrolledWindow
556 check_error "scrolledwindow3:nnn" \
557 "ignoring GtkScrolledWindow command \"scrolledwindow3:nnn\""
558 check_error "scrolledwindow3:hscroll" \
559 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll\""
560 check_error "scrolledwindow3:hscroll " \
561 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll \""
562 check_error "scrolledwindow3:hscroll nnn" \
563 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll nnn\""
564 check_error "scrolledwindow3:vscroll" \
565 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll\""
566 check_error "scrolledwindow3:vscroll " \
567 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll \""
568 check_error "scrolledwindow3:vscroll nnn" \
569 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll nnn\""
570 check_error "scrolledwindow3:hscroll_to_range" \
571 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range\""
572 check_error "scrolledwindow3:hscroll_to_range " \
573 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range \""
574 check_error "scrolledwindow3:hscroll_to_range nnn" \
575 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range nnn\""
576 check_error "scrolledwindow3:hscroll_to_range 10" \
577 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range 10\""
578 check_error "scrolledwindow3:hscroll_to_range 10 nnn" \
579 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range 10 nnn\""
580 check_error "scrolledwindow3:hscroll_to_range nnn 10" \
581 "ignoring GtkScrolledWindow command \"scrolledwindow3:hscroll_to_range nnn 10\""
582 check_error "scrolledwindow3:vscroll_to_range" \
583 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range\""
584 check_error "scrolledwindow3:vscroll_to_range " \
585 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range \""
586 check_error "scrolledwindow3:vscroll_to_range nnn" \
587 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range nnn\""
588 check_error "scrolledwindow3:vscroll_to_range 10" \
589 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range 10\""
590 check_error "scrolledwindow3:vscroll_to_range 10 nnn" \
591 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range 10 nnn\""
592 check_error "scrolledwindow3:vscroll_to_range nnn 10" \
593 "ignoring GtkScrolledWindow command \"scrolledwindow3:vscroll_to_range nnn 10\""
594 # GtkEventBox
595 check_error "eventbox1:nnn" \
596 "ignoring GtkEventBox command \"eventbox1:nnn\""
597 # GtkDrawingArea
598 check_error "drawingarea1:nnn" \
599 "ignoring GtkDrawingArea command \"drawingarea1:nnn\""
600 check_error "drawingarea1:rectangle" \
601 "ignoring GtkDrawingArea command \"drawingarea1:rectangle\""
602 check_error "drawingarea1:rectangle " \
603 "ignoring GtkDrawingArea command \"drawingarea1:rectangle \""
604 check_error "drawingarea1:rectangle nnn" \
605 "ignoring GtkDrawingArea command \"drawingarea1:rectangle nnn\""
606 check_error "drawingarea1:rectangle 1" \
607 "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1\""
608 check_error "drawingarea1:rectangle 1 10" \
609 "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10\""
610 check_error "drawingarea1:rectangle 1 10 10" \
611 "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10\""
612 check_error "drawingarea1:rectangle 1 10 10 20" \
613 "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10 20\""
614 check_error "drawingarea1:rectangle 1 10 10 20 nnn" \
615 "ignoring GtkDrawingArea command \"drawingarea1:rectangle 1 10 10 20 nnn\""
616 check_error "drawingarea1:arc" \
617 "ignoring GtkDrawingArea command \"drawingarea1:arc\""
618 check_error "drawingarea1:arc " \
619 "ignoring GtkDrawingArea command \"drawingarea1:arc \""
620 check_error "drawingarea1:arc nnn" \
621 "ignoring GtkDrawingArea command \"drawingarea1:arc nnn\""
622 check_error "drawingarea1:arc 1" \
623 "ignoring GtkDrawingArea command \"drawingarea1:arc 1\""
624 check_error "drawingarea1:arc 1 10" \
625 "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10\""
626 check_error "drawingarea1:arc 1 10 10" \
627 "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10\""
628 check_error "drawingarea1:arc 1 10 10 20" \
629 "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20\""
630 check_error "drawingarea1:arc 1 10 10 20 45" \
631 "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20 45\""
632 check_error "drawingarea1:arc 1 10 10 20 45 nnn" \
633 "ignoring GtkDrawingArea command \"drawingarea1:arc 1 10 10 20 45 nnn\""
634 check_error "drawingarea1:arc_negative" \
635 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative\""
636 check_error "drawingarea1:arc_negative " \
637 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative \""
638 check_error "drawingarea1:arc_negative nnn" \
639 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative nnn\""
640 check_error "drawingarea1:arc_negative 1" \
641 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1\""
642 check_error "drawingarea1:arc_negative 1 10" \
643 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10\""
644 check_error "drawingarea1:arc_negative 1 10 10" \
645 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10\""
646 check_error "drawingarea1:arc_negative 1 10 10 20" \
647 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20\""
648 check_error "drawingarea1:arc_negative 1 10 10 20 45" \
649 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20 45\""
650 check_error "drawingarea1:arc_negative 1 10 10 20 45 nnn" \
651 "ignoring GtkDrawingArea command \"drawingarea1:arc_negative 1 10 10 20 45 nnn\""
652 check_error "drawingarea1:curve_to" \
653 "ignoring GtkDrawingArea command \"drawingarea1:curve_to\""
654 check_error "drawingarea1:curve_to " \
655 "ignoring GtkDrawingArea command \"drawingarea1:curve_to \""
656 check_error "drawingarea1:curve_to nnn" \
657 "ignoring GtkDrawingArea command \"drawingarea1:curve_to nnn\""
658 check_error "drawingarea1:curve_to 1" \
659 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1\""
660 check_error "drawingarea1:curve_to 1 10" \
661 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10\""
662 check_error "drawingarea1:curve_to 1 10 10" \
663 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10\""
664 check_error "drawingarea1:curve_to 1 10 10 20" \
665 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20\""
666 check_error "drawingarea1:curve_to 1 10 10 20 20" \
667 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20\""
668 check_error "drawingarea1:curve_to 1 10 10 20 20 25" \
669 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20 25\""
670 check_error "drawingarea1:curve_to 1 10 10 20 20 25 nnn" \
671 "ignoring GtkDrawingArea command \"drawingarea1:curve_to 1 10 10 20 20 25 nnn\""
672 check_error "drawingarea1:rel_curve_to" \
673 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to\""
674 check_error "drawingarea1:rel_curve_to " \
675 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to \""
676 check_error "drawingarea1:rel_curve_to nnn" \
677 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to nnn\""
678 check_error "drawingarea1:rel_curve_to 1" \
679 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1\""
680 check_error "drawingarea1:rel_curve_to 1 10" \
681 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10\""
682 check_error "drawingarea1:rel_curve_to 1 10 10" \
683 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10\""
684 check_error "drawingarea1:rel_curve_to 1 10 10 20" \
685 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20\""
686 check_error "drawingarea1:rel_curve_to 1 10 10 20 20" \
687 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20\""
688 check_error "drawingarea1:rel_curve_to 1 10 10 20 20 25" \
689 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20 25\""
690 check_error "drawingarea1:rel_curve_to 1 10 10 20 20 25 nnn" \
691 "ignoring GtkDrawingArea command \"drawingarea1:rel_curve_to 1 10 10 20 20 25 nnn\""
692 check_error "drawingarea1:line_to" \
693 "ignoring GtkDrawingArea command \"drawingarea1:line_to\""
694 check_error "drawingarea1:line_to " \
695 "ignoring GtkDrawingArea command \"drawingarea1:line_to \""
696 check_error "drawingarea1:line_to nnn" \
697 "ignoring GtkDrawingArea command \"drawingarea1:line_to nnn\""
698 check_error "drawingarea1:line_to 1" \
699 "ignoring GtkDrawingArea command \"drawingarea1:line_to 1\""
700 check_error "drawingarea1:line_to 1 20" \
701 "ignoring GtkDrawingArea command \"drawingarea1:line_to 1 20\""
702 check_error "drawingarea1:line_to 1 20 nnn" \
703 "ignoring GtkDrawingArea command \"drawingarea1:line_to 1 20 nnn\""
704 check_error "drawingarea1:rel_line_to" \
705 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to\""
706 check_error "drawingarea1:rel_line_to " \
707 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to \""
708 check_error "drawingarea1:rel_line_to nnn" \
709 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to nnn\""
710 check_error "drawingarea1:rel_line_to 1" \
711 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1\""
712 check_error "drawingarea1:rel_line_to 1 20" \
713 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1 20\""
714 check_error "drawingarea1:rel_line_to 1 20 nnn" \
715 "ignoring GtkDrawingArea command \"drawingarea1:rel_line_to 1 20 nnn\""
716 check_error "drawingarea1:move_to" \
717 "ignoring GtkDrawingArea command \"drawingarea1:move_to\""
718 check_error "drawingarea1:move_to " \
719 "ignoring GtkDrawingArea command \"drawingarea1:move_to \""
720 check_error "drawingarea1:move_to nnn" \
721 "ignoring GtkDrawingArea command \"drawingarea1:move_to nnn\""
722 check_error "drawingarea1:move_to 1" \
723 "ignoring GtkDrawingArea command \"drawingarea1:move_to 1\""
724 check_error "drawingarea1:move_to 1 20" \
725 "ignoring GtkDrawingArea command \"drawingarea1:move_to 1 20\""
726 check_error "drawingarea1:move_to 1 20 nnn" \
727 "ignoring GtkDrawingArea command \"drawingarea1:move_to 1 20 nnn\""
728 check_error "drawingarea1:rel_move_to" \
729 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to\""
730 check_error "drawingarea1:rel_move_to " \
731 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to \""
732 check_error "drawingarea1:rel_move_to nnn" \
733 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to nnn\""
734 check_error "drawingarea1:rel_move_to 1" \
735 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1\""
736 check_error "drawingarea1:rel_move_to 1 20" \
737 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1 20\""
738 check_error "drawingarea1:rel_move_to 1 20 nnn" \
739 "ignoring GtkDrawingArea command \"drawingarea1:rel_move_to 1 20 nnn\""
740 check_error "drawingarea1:close_path" \
741 "ignoring GtkDrawingArea command \"drawingarea1:close_path\""
742 check_error "drawingarea1:close_path " \
743 "ignoring GtkDrawingArea command \"drawingarea1:close_path \""
744 check_error "drawingarea1:close_path nnn" \
745 "ignoring GtkDrawingArea command \"drawingarea1:close_path nnn\""
746 check_error "drawingarea1:set_source_rgba" \
747 "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba\""
748 check_error "drawingarea1:set_source_rgba " \
749 "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba \""
750 check_error "drawingarea1:set_source_rgba nnn" \
751 "ignoring GtkDrawingArea command \"drawingarea1:set_source_rgba nnn\""
752 check_error "drawingarea1:set_dash" \
753 "ignoring GtkDrawingArea command \"drawingarea1:set_dash\""
754 check_error "drawingarea1:set_dash " \
755 "ignoring GtkDrawingArea command \"drawingarea1:set_dash \""
756 check_error "drawingarea1:set_dash nnn" \
757 "ignoring GtkDrawingArea command \"drawingarea1:set_dash nnn\""
758 check_error "drawingarea1:set_line_cap" \
759 "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap\""
760 check_error "drawingarea1:set_line_cap " \
761 "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap \""
762 check_error "drawingarea1:set_line_cap nnn" \
763 "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap nnn\""
764 check_error "drawingarea1:set_line_cap 1" \
765 "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap 1\""
766 check_error "drawingarea1:set_line_cap 1 nnn" \
767 "ignoring GtkDrawingArea command \"drawingarea1:set_line_cap 1 nnn\""
768 check_error "drawingarea1:set_line_join" \
769 "ignoring GtkDrawingArea command \"drawingarea1:set_line_join\""
770 check_error "drawingarea1:set_line_join " \
771 "ignoring GtkDrawingArea command \"drawingarea1:set_line_join \""
772 check_error "drawingarea1:set_line_join nnn" \
773 "ignoring GtkDrawingArea command \"drawingarea1:set_line_join nnn\""
774 check_error "drawingarea1:set_line_join 1" \
775 "ignoring GtkDrawingArea command \"drawingarea1:set_line_join 1\""
776 check_error "drawingarea1:set_line_join 1 nnn" \
777 "ignoring GtkDrawingArea command \"drawingarea1:set_line_join 1 nnn\""
778 check_error "drawingarea1:set_line_width" \
779 "ignoring GtkDrawingArea command \"drawingarea1:set_line_width\""
780 check_error "drawingarea1:set_line_width " \
781 "ignoring GtkDrawingArea command \"drawingarea1:set_line_width \""
782 check_error "drawingarea1:set_line_width nnn" \
783 "ignoring GtkDrawingArea command \"drawingarea1:set_line_width nnn\""
784 check_error "drawingarea1:set_line_width 1" \
785 "ignoring GtkDrawingArea command \"drawingarea1:set_line_width 1\""
786 check_error "drawingarea1:set_line_width 1 nnn" \
787 "ignoring GtkDrawingArea command \"drawingarea1:set_line_width 1 nnn\""
788 check_error "drawingarea1:fill" \
789 "ignoring GtkDrawingArea command \"drawingarea1:fill\""
790 check_error "drawingarea1:fill " \
791 "ignoring GtkDrawingArea command \"drawingarea1:fill \""
792 check_error "drawingarea1:fill nnn" \
793 "ignoring GtkDrawingArea command \"drawingarea1:fill nnn\""
794 check_error "drawingarea1:fill_preserve" \
795 "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve\""
796 check_error "drawingarea1:fill_preserve " \
797 "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve \""
798 check_error "drawingarea1:fill_preserve nnn" \
799 "ignoring GtkDrawingArea command \"drawingarea1:fill_preserve nnn\""
800 check_error "drawingarea1:stroke" \
801 "ignoring GtkDrawingArea command \"drawingarea1:stroke\""
802 check_error "drawingarea1:stroke " \
803 "ignoring GtkDrawingArea command \"drawingarea1:stroke \""
804 check_error "drawingarea1:stroke nnn" \
805 "ignoring GtkDrawingArea command \"drawingarea1:stroke nnn\""
806 check_error "drawingarea1:stroke_preserve" \
807 "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve\""
808 check_error "drawingarea1:stroke_preserve " \
809 "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve \""
810 check_error "drawingarea1:stroke_preserve nnn" \
811 "ignoring GtkDrawingArea command \"drawingarea1:stroke_preserve nnn\""
812 check_error "drawingarea1:remove" \
813 "ignoring GtkDrawingArea command \"drawingarea1:remove\""
814 check_error "drawingarea1:remove " \
815 "ignoring GtkDrawingArea command \"drawingarea1:remove \""
816 check_error "drawingarea1:remove nnn" \
817 "ignoring GtkDrawingArea command \"drawingarea1:remove nnn\""
818 check_error "drawingarea1:set_show_text" \
819 "ignoring GtkDrawingArea command \"drawingarea1:set_show_text\""
820 check_error "drawingarea1:set_show_text " \
821 "ignoring GtkDrawingArea command \"drawingarea1:set_show_text \""
822 check_error "drawingarea1:set_show_text nnn" \
823 "ignoring GtkDrawingArea command \"drawingarea1:set_show_text nnn\""
824 check_error "drawingarea1:set_font_size" \
825 "ignoring GtkDrawingArea command \"drawingarea1:set_font_size\""
826 check_error "drawingarea1:set_font_size " \
827 "ignoring GtkDrawingArea command \"drawingarea1:set_font_size \""
828 check_error "drawingarea1:set_font_size nnn" \
829 "ignoring GtkDrawingArea command \"drawingarea1:set_font_size nnn\""
830 check_error "drawingarea1:set_font_size 1" \
831 "ignoring GtkDrawingArea command \"drawingarea1:set_font_size 1\""
832 check_error "drawingarea1:set_font_size 1 nnn" \
833 "ignoring GtkDrawingArea command \"drawingarea1:set_font_size 1 nnn\""
835 echo "_:main_quit" >$FIN
837 check_rm $FIN
840 ## Logging to stderr
841 read r 2< $FERR &
842 ./pipeglade -i $FIN 2> $FERR -l - &
844 # wait for $FIN to appear
845 while test ! \( -e $FIN \); do :; done
847 check_error "# Comment" \
848 "########## ##### (New Pipeglade session) #####"
849 check_error "" \
850 "### (Idle) ###"
851 check_error "_:main_quit" \
852 " # Comment"
854 check_rm $FIN
855 rm $FERR
859 #exit
860 echo "
861 # BATCH THREE
863 # Tests for the principal functionality---valid actions leading to
864 # correct results. Manual intervention is required. Instructions
865 # will be given on the statusbar of the test GUI.
866 ######################################################################
869 mkfifo $FOUT
871 # check nr_of_feedback_msgs user_instruction command expected_feedback1 expected_feedback2 ...
872 check() {
873 # Flush stale pipeglade output
874 while read -t .1 <$FOUT; do : ; done
875 N=$1
876 INSTRUCTION="$2"
877 echo "$SEND $3"
878 if test "$INSTRUCTION"; then
879 echo -e "statusbar1:push_id =check= $INSTRUCTION" >$FIN
881 echo -e "$3" >$FIN
883 while (( i<$N )); do
884 read r <$FOUT
885 if test "$r" != ""; then
886 if grep -qe "$4" <<< $r; then
887 count_ok
888 echo " $OK ($i) $r"
889 else
890 count_fail
891 echo " $FAIL($i) $r"
892 echo " $EXPECTED $4"
894 shift
895 (( i+=1 ))
897 done
898 if test "$INSTRUCTION"; then
899 echo -e "statusbar1:pop_id =check=" >$FIN
904 ./pipeglade --display ${DISPLAY-:0} -i $FIN -o $FOUT &
906 # wait for $FIN and $FOUT to appear
907 while test ! \( -e $FIN -a -e $FOUT \); do :; done
909 check 0 "" \
910 "# checking --display $DISPLAY\n _:main_quit"
912 check_rm $FIN
913 check_rm $FOUT
916 ./pipeglade -u simple_dialog.ui -i $FIN -o $FOUT &
918 # wait for $FIN and $FOUT to appear
919 while test ! \( -e $FIN -a -e $FOUT \); do :; done
921 check 1 "" \
922 "main_apply:force" "main_apply:clicked"
923 check 0 "" \
924 "main_cancel:force"
926 check_rm $FIN
927 check_rm $FOUT
930 ./pipeglade -u simple_dialog.ui -i $FIN -o $FOUT &
932 # wait for $FIN and $FOUT to appear
933 while test ! \( -e $FIN -a -e $FOUT \); do :; done
935 check 1 "" \
936 "button1:force" "button1:clicked"
937 check 1 "" \
938 "main_ok:force" "main_ok:clicked"
940 check_rm $FIN
941 check_rm $FOUT
944 ./pipeglade -u simple_open.ui -i $FIN -o $FOUT &
946 # wait for $FIN and $FOUT to appear
947 while test ! \( -e $FIN -a -e $FOUT \); do :; done
949 check 3 "" \
950 "main_apply:force" \
951 "main_apply:clicked" \
952 "main:file" \
953 "main:folder"
954 check 0 "" \
955 "main_cancel:force"
957 check_rm $FIN
958 check_rm $FOUT
961 ./pipeglade -u simple_open.ui -i $FIN -o $FOUT &
963 # wait for $FIN and $FOUT to appear
964 while test ! \( -e $FIN -a -e $FOUT \); do :; done
966 check 2 "" \
967 "main_ok:force" \
968 "main_ok:clicked" \
969 "main:file" \
970 "main:folder"
972 check_rm $FIN
973 check_rm $FOUT
976 mkfifo -m 777 $FIN
977 mkfifo -m 777 $FOUT
978 ./pipeglade -i $FIN -o $FOUT &
979 check_cmd "$STAT_CMD $FIN | grep '600$'"
980 check_cmd "$STAT_CMD $FOUT | grep '600$'"
981 echo -e "_:main_quit" > $FIN
982 check_rm $FIN
983 check_rm $FOUT
985 ./pipeglade -i $FIN -o $FOUT &
987 # wait for $FIN and $FOUT to appear
988 while test ! \( -e $FIN -a -e $FOUT \); do :; done
990 check_cmd "$STAT_CMD $FIN | grep '600$'"
991 check_cmd "$STAT_CMD $FOUT | grep '600$'"
992 echo -e "_:main_quit" > $FIN
993 check_rm $FIN
994 check_rm $FOUT
997 echo "#### # Initial line to check if -l option appends" >$LOG
998 ./pipeglade -i $FIN -o $FOUT -l $LOG &
1000 # wait for $FIN and $FOUT to appear
1001 while test ! \( -e $FIN -a -e $FOUT \); do :; done
1003 check 0 "" \
1004 "socket1:id"
1005 read XID <$FOUT
1006 XID=${XID/socket1:id }
1007 (sleep .5; ./pipeglade -u simple_dialog.ui -e $XID <<< "main_cancel:force") &
1008 check 2 "" \
1009 "" \
1010 "socket1:plug-added" \
1011 "socket1:plug-removed"
1012 (sleep .5; ./pipeglade -u simple_dialog.ui -e $XID <<< "main_cancel:force") &
1013 check 2 "" \
1014 "" \
1015 "socket1:plug-added" \
1016 "socket1:plug-removed"
1018 check 1 "" \
1019 "entry1:set_text FFFF" \
1020 "entry1:text FFFF"
1021 check 1 "" \
1022 "entry1:set_text" \
1023 "entry1:text"
1024 check 1 "" \
1025 "entry1:set_text FFFF" \
1026 "entry1:text FFFF"
1027 check 1 "" \
1028 "entry1:set_text " \
1029 "entry1:text"
1030 check 0 "" \
1031 "entry1:set_placeholder_text hint hint" # not much of a test
1032 check 1 "" \
1033 "entry1:set_text FFFF" \
1034 "entry1:text FFFF"
1035 check 1 "" \
1036 "entry1:set_text GGGG" \
1037 "entry1:text GGGG"
1038 check 1 "" \
1039 "entry1:force" \
1040 "entry1:text GGGG"
1041 check 1 "" \
1042 "spinbutton1:set_text 33.0" \
1043 "spinbutton1:text 33.0"
1044 check 2 "" \
1045 "radiobutton2:set_active 1" \
1046 "radiobutton1:0" \
1047 "radiobutton2:1"
1048 check 2 "" \
1049 "radiobutton1:set_active 1" \
1050 "radiobutton2:0" \
1051 "radiobutton1:1"
1052 check 1 "" \
1053 "switch1:set_active 1" \
1054 "switch1:1"
1055 check 1 "" \
1056 "switch1:set_active 0" \
1057 "switch1:0"
1058 check 1 "" \
1059 "togglebutton1:set_active 1" \
1060 "togglebutton1:1"
1061 check 1 "" \
1062 "calendar1:select_date 1752-03-29" \
1063 "calendar1:clicked 1752-03-29"
1064 check 0 "" \
1065 "progressbar1:set_text This Is A Progressbar."
1067 L=$(i=0
1068 while (( i<100 )); do
1069 (( i+=1 ))
1070 echo -n "Repetitive input that is large enough to have the realloc() machinery kick in.---"
1071 done)
1072 check 1 "" \
1073 "entry1:set_text $L" \
1074 "entry1:text $L"
1076 check 1 "Open what should now be named \"EXPANDER\" and click the \"button inside expander\"" \
1077 "expander1:set_expanded 0\n expander1:set_label EXPANDER" \
1078 "button6:clicked"
1079 check 0 "" \
1080 "expander1:set_expanded 0"
1082 check 12 "" \
1083 "treeview2:set_visible 0\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\n treeview1:set_cursor 2" \
1084 "treeview1:clicked" \
1085 "treeview1:gboolean 2 0 1" \
1086 "treeview1:gint 2 1 -30000" \
1087 "treeview1:guint 2 2 66" \
1088 "treeview1:glong 2 3 -2000000000" \
1089 "treeview1:glong 2 4 4000000000" \
1090 "treeview1:glong 2 5 -2000000000" \
1091 "treeview1:gulong 2 6 4000000000" \
1092 "treeview1:gfloat 2 7 3.141000" \
1093 "treeview1:gdouble 2 8 3.141000" \
1094 "treeview1:gchararray 2 9 TEXT" \
1095 "treeview1:gchararray 2 10 zzz"
1096 mkdir -p $DIR
1097 check 0 "" \
1098 "treeview1:save $DIR/$FILE1"
1099 check 0 "" \
1100 "treeview1:save $DIR/$FILE1.bak"
1101 check 1 "" \
1102 "treeview1:set_cursor" \
1103 "treeview1:clicked"
1104 check 12 "" \
1105 "treeview1:insert_row 0\n treeview1:insert_row 2\n treeview1:set_cursor 4" \
1106 "treeview1:clicked" \
1107 "treeview1:gboolean 4 0 1" \
1108 "treeview1:gint 4 1 -30000" \
1109 "treeview1:guint 4 2 66" \
1110 "treeview1:glong 4 3 -2000000000" \
1111 "treeview1:glong 4 4 4000000000" \
1112 "treeview1:glong 4 5 -2000000000" \
1113 "treeview1:gulong 4 6 4000000000" \
1114 "treeview1:gfloat 4 7 3.141000" \
1115 "treeview1:gdouble 4 8 3.141000" \
1116 "treeview1:gchararray 4 9 TEXT" \
1117 "treeview1:gchararray 4 10 zzz"
1118 check 1 "" \
1119 "treeview1:set_cursor" \
1120 "treeview1:clicked"
1121 check 12 "" \
1122 "treeview1:move_row 4 0\n treeview1:set_cursor 0" \
1123 "treeview1:clicked" \
1124 "treeview1:gboolean 0 0 1" \
1125 "treeview1:gint 0 1 -30000" \
1126 "treeview1:guint 0 2 66" \
1127 "treeview1:glong 0 3 -2000000000" \
1128 "treeview1:glong 0 4 4000000000" \
1129 "treeview1:glong 0 5 -2000000000" \
1130 "treeview1:gulong 0 6 4000000000" \
1131 "treeview1:gfloat 0 7 3.141000" \
1132 "treeview1:gdouble 0 8 3.141000" \
1133 "treeview1:gchararray 0 9 TEXT" \
1134 "treeview1:gchararray 0 10 zzz"
1135 check 1 "" \
1136 "treeview1:set_cursor" \
1137 "treeview1:clicked"
1138 check 12 "" \
1139 "treeview1:move_row 0 2\n treeview1:set_cursor 1" \
1140 "treeview1:clicked" \
1141 "treeview1:gboolean 1 0 1" \
1142 "treeview1:gint 1 1 -30000" \
1143 "treeview1:guint 1 2 66" \
1144 "treeview1:glong 1 3 -2000000000" \
1145 "treeview1:glong 1 4 4000000000" \
1146 "treeview1:glong 1 5 -2000000000" \
1147 "treeview1:gulong 1 6 4000000000" \
1148 "treeview1:gfloat 1 7 3.141000" \
1149 "treeview1:gdouble 1 8 3.141000" \
1150 "treeview1:gchararray 1 9 TEXT" \
1151 "treeview1:gchararray 1 10 zzz"
1152 check 1 "" \
1153 "treeview1:set_cursor" \
1154 "treeview1:clicked"
1155 check 12 "" \
1156 "treeview1:insert_row end\n treeview1:move_row 1 end\n treeview1:set_cursor 6" \
1157 "treeview1:clicked" \
1158 "treeview1:gboolean 6 0 1" \
1159 "treeview1:gint 6 1 -30000" \
1160 "treeview1:guint 6 2 66" \
1161 "treeview1:glong 6 3 -2000000000" \
1162 "treeview1:glong 6 4 4000000000" \
1163 "treeview1:glong 6 5 -2000000000" \
1164 "treeview1:gulong 6 6 4000000000" \
1165 "treeview1:gfloat 6 7 3.141000" \
1166 "treeview1:gdouble 6 8 3.141000" \
1167 "treeview1:gchararray 6 9 TEXT" \
1168 "treeview1:gchararray 6 10 zzz"
1169 check 1 "" \
1170 "treeview1:set_cursor" \
1171 "treeview1:clicked"
1172 check 12 "" \
1173 "treeview1:remove_row 0\n treeview1:remove_row 2\n treeview1:set_cursor 4" \
1174 "treeview1:clicked" \
1175 "treeview1:gboolean 4 0 1" \
1176 "treeview1:gint 4 1 -30000" \
1177 "treeview1:guint 4 2 66" \
1178 "treeview1:glong 4 3 -2000000000" \
1179 "treeview1:glong 4 4 4000000000" \
1180 "treeview1:glong 4 5 -2000000000" \
1181 "treeview1:gulong 4 6 4000000000" \
1182 "treeview1:gfloat 4 7 3.141000" \
1183 "treeview1:gdouble 4 8 3.141000" \
1184 "treeview1:gchararray 4 9 TEXT" \
1185 "treeview1:gchararray 4 10 zzz"
1186 check 1 "" \
1187 "treeview1:set_cursor" \
1188 "treeview1:clicked"
1189 check 12 "Click the 66% (move_row)" \
1190 "treeview1:move_row 0 end\n treeview1:set_cursor 3" \
1191 "treeview1:clicked" \
1192 "treeview1:gboolean 3 0 1" \
1193 "treeview1:gint 3 1 -30000" \
1194 "treeview1:guint 3 2 66" \
1195 "treeview1:glong 3 3 -2000000000" \
1196 "treeview1:glong 3 4 4000000000" \
1197 "treeview1:glong 3 5 -2000000000" \
1198 "treeview1:gulong 3 6 4000000000" \
1199 "treeview1:gfloat 3 7 3.141000" \
1200 "treeview1:gdouble 3 8 3.141000" \
1201 "treeview1:gchararray 3 9 TEXT" \
1202 "treeview1:gchararray 3 10 zzz"
1203 check 24 "" \
1204 "treeview1:remove_row 3" \
1205 "treeview1:clicked" \
1206 "treeview1:gboolean 3 0 0" \
1207 "treeview1:gint 3 1 0" \
1208 "treeview1:guint 3 2 0" \
1209 "treeview1:glong 3 3 0" \
1210 "treeview1:glong 3 4 0" \
1211 "treeview1:glong 3 5 0" \
1212 "treeview1:gulong 3 6 0" \
1213 "treeview1:gfloat 3 7 0.000000" \
1214 "treeview1:gdouble 3 8 0.000000" \
1215 "treeview1:gchararray 3 9 abc" \
1216 "treeview1:gchararray 3 10 xxx" \
1217 "treeview1:clicked" \
1218 "treeview1:gboolean 3 0 0" \
1219 "treeview1:gint 3 1 0" \
1220 "treeview1:guint 3 2 0" \
1221 "treeview1:glong 3 3 0" \
1222 "treeview1:glong 3 4 0" \
1223 "treeview1:glong 3 5 0" \
1224 "treeview1:gulong 3 6 0" \
1225 "treeview1:gfloat 3 7 0.000000" \
1226 "treeview1:gdouble 3 8 0.000000" \
1227 "treeview1:gchararray 3 9 abc" \
1228 "treeview1:gchararray 3 10 xxx"
1229 check 1 "Click column col4 in the lowest line visible in the scrolled area and type 444 <Enter> (scroll)" \
1230 "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" \
1231 "treeview1:gint 24 1 444"
1232 check 12 "Click column col3 in the highest line visible in the scrolled area (scroll)" \
1233 "treeview1:scroll 1 0" \
1234 "treeview1:clicked" \
1235 "treeview1:gboolean 1 0 1" \
1236 "treeview1:gint 1 1 3" \
1237 "treeview1:guint 1 2 0" \
1238 "treeview1:glong 1 3 0" \
1239 "treeview1:glong 1 4 0" \
1240 "treeview1:glong 1 5 0" \
1241 "treeview1:gulong 1 6 0" \
1242 "treeview1:gfloat 1 7 0.000000" \
1243 "treeview1:gdouble 1 8 0.000000" \
1244 "treeview1:gchararray 1 9 jkl" \
1245 "treeview1:gchararray 1 10 ZZZ"
1247 check 1 "Click the header of column \"col3\"" \
1248 "" \
1249 "treeviewcolumn3:clicked"
1251 check 2 "" \
1252 "treeview1:clear\n button1:force" \
1253 "treeview1:clicked" \
1254 "button1:clicked"
1256 check 12 "" \
1257 "treeview2:set_visible 1\n treeview2:insert_row end\n treeview2:insert_row 0 as_child\n treeview2:insert_row 0:0 as_child\n treeview2:insert_row 0:0\n treeview2:set 100:1:0 0 1\n treeview2:set 100:1:0 1 -30000\n treeview2:set 100:1:0 2 33\n treeview2:set 100:1:0 3 -2000000000\n treeview2:set 100:1:0 4 4000000000\n treeview2:set 100:1:0 5 -2000000000\n treeview2:set 100:1:0 6 4000000000\n treeview2:set 100:1:0 7 3.141\n treeview2:set 100:1:0 8 3.141\n treeview2:set 100:1:0 9 TEXT\n treeview2:expand_all\n treeview2:set_cursor 100:1:0" \
1258 "treeview2:clicked" \
1259 "treeview2:gboolean 100:1:0 0 1" \
1260 "treeview2:gint 100:1:0 1 -30000" \
1261 "treeview2:guint 100:1:0 2 33" \
1262 "treeview2:glong 100:1:0 3 -2000000000" \
1263 "treeview2:glong 100:1:0 4 4000000000" \
1264 "treeview2:glong 100:1:0 5 -2000000000" \
1265 "treeview2:gulong 100:1:0 6 4000000000" \
1266 "treeview2:gfloat 100:1:0 7 3.141000" \
1267 "treeview2:gdouble 100:1:0 8 3.141000" \
1268 "treeview2:gchararray 100:1:0 9 TEXT" \
1269 "treeview2:gchararray 100:1:0 10"
1270 check 1 "" \
1271 "treeview2:set_cursor" \
1272 "treeview2:clicked"
1273 check 12 "" \
1274 "treeview2:insert_row 0\n treeview2:insert_row 0\n treeview2:set 102:1 3 876543210\n treeview2:set 102 3 448822\n treeview2:collapse\n treeview2:set_cursor 102" \
1275 "treeview2:clicked" \
1276 "treeview2:gboolean 102 0 0" \
1277 "treeview2:gint 102 1 0" \
1278 "treeview2:guint 102 2 0" \
1279 "treeview2:glong 102 3 448822" \
1280 "treeview2:glong 102 4 0" \
1281 "treeview2:glong 102 5 0" \
1282 "treeview2:gulong 102 6 0" \
1283 "treeview2:gfloat 102 7 0.000000" \
1284 "treeview2:gdouble 102 8 0.000000" \
1285 "treeview2:gchararray 102 9" \
1286 "treeview2:gchararray 102 10"
1287 check 1 "" \
1288 "treeview2:set_cursor" \
1289 "treeview2:clicked"
1290 check 0 "" \
1291 "treeview2:save $DIR/$FILE2"
1292 check 0 "" \
1293 "treeview2:save $DIR/$FILE2.bak"
1294 check 12 "" \
1295 "treeview2:insert_row 0\n treeview2:collapse\n treeview2:set_cursor 103" \
1296 "treeview2:clicked" \
1297 "treeview2:gboolean 103 0 0" \
1298 "treeview2:gint 103 1 0" \
1299 "treeview2:guint 103 2 0" \
1300 "treeview2:glong 103 3 448822" \
1301 "treeview2:glong 103 4 0" \
1302 "treeview2:glong 103 5 0" \
1303 "treeview2:gulong 103 6 0" \
1304 "treeview2:gfloat 103 7 0.000000" \
1305 "treeview2:gdouble 103 8 0.000000" \
1306 "treeview2:gchararray 103 9" \
1307 "treeview2:gchararray 103 10"
1308 check 1 "" \
1309 "treeview2:set_cursor" \
1310 "treeview2:clicked"
1311 check 12 "Click the lowest line visible in the scrolled area (1)" \
1312 "treeview2:expand_all 103\n treeview2:scroll 103:1:0 0" \
1313 "treeview2:clicked" \
1314 "treeview2:gboolean 103:1:0 0 1" \
1315 "treeview2:gint 103:1:0 1 -30000" \
1316 "treeview2:guint 103:1:0 2 33" \
1317 "treeview2:glong 103:1:0 3 -2000000000" \
1318 "treeview2:glong 103:1:0 4 4000000000" \
1319 "treeview2:glong 103:1:0 5 -2000000000" \
1320 "treeview2:gulong 103:1:0 6 4000000000" \
1321 "treeview2:gfloat 103:1:0 7 3.141000" \
1322 "treeview2:gdouble 103:1:0 8 3.141000" \
1323 "treeview2:gchararray 103:1:0 9 TEXT" \
1324 "treeview2:gchararray 103:1:0 10"
1325 check 1 "" \
1326 "treeview2:set_cursor" \
1327 "treeview2:clicked"
1328 check 12 "Click the lowest visible line (2)" \
1329 "treeview2:collapse\n treeview2:expand 103\n treeview2:scroll 103:1 0" \
1330 "treeview2:clicked" \
1331 "treeview2:gboolean 103:1 0 0" \
1332 "treeview2:gint 103:1 1 0" \
1333 "treeview2:guint 103:1 2 0" \
1334 "treeview2:glong 103:1 3 876543210" \
1335 "treeview2:glong 103:1 4 0" \
1336 "treeview2:glong 103:1 5 0" \
1337 "treeview2:gulong 103:1 6 0" \
1338 "treeview2:gfloat 103:1 7 0.000000" \
1339 "treeview2:gdouble 103:1 8 0.000000" \
1340 "treeview2:gchararray 103:1 9" \
1341 "treeview2:gchararray 103:1 10"
1342 check 1 "" \
1343 "treeview2:set_cursor" \
1344 "treeview2:clicked"
1345 check 12 "Click the lowest visible line (3)" \
1346 "treeview2:collapse\n treeview2:expand_all\n treeview2:scroll 103:1:0 0" \
1347 "treeview2:clicked" \
1348 "treeview2:gboolean 103:1:0 0 1" \
1349 "treeview2:gint 103:1:0 1 -30000" \
1350 "treeview2:guint 103:1:0 2 33" \
1351 "treeview2:glong 103:1:0 3 -2000000000" \
1352 "treeview2:glong 103:1:0 4 4000000000" \
1353 "treeview2:glong 103:1:0 5 -2000000000" \
1354 "treeview2:gulong 103:1:0 6 4000000000" \
1355 "treeview2:gfloat 103:1:0 7 3.141000" \
1356 "treeview2:gdouble 103:1:0 8 3.141000" \
1357 "treeview2:gchararray 103:1:0 9 TEXT" \
1358 "treeview2:gchararray 103:1:0 10"
1359 check 1 "" \
1360 "treeview2:set_cursor" \
1361 "treeview2:clicked"
1362 check 12 "Click the lowest visible line (4)" \
1363 "treeview2:expand_all\n treeview2:collapse 103:1\n treeview2:scroll 103:1 0" \
1364 "treeview2:clicked" \
1365 "treeview2:gboolean 103:1 0 0" \
1366 "treeview2:gint 103:1 1 0" \
1367 "treeview2:guint 103:1 2 0" \
1368 "treeview2:glong 103:1 3 876543210" \
1369 "treeview2:glong 103:1 4 0" \
1370 "treeview2:glong 103:1 5 0" \
1371 "treeview2:gulong 103:1 6 0" \
1372 "treeview2:gfloat 103:1 7 0.000000" \
1373 "treeview2:gdouble 103:1 8 0.000000" \
1374 "treeview2:gchararray 103:1 9" \
1375 "treeview2:gchararray 103:1 10"
1376 check 1 "" \
1377 "treeview2:set_cursor" \
1378 "treeview2:clicked"
1380 check 12 "" \
1381 "treeview1:clear\n treeview1:set 1 9 ABC\\\\nDEF\\\\nGHI\n treeview1:set_cursor 1" \
1382 "treeview1:clicked" \
1383 "treeview1:gboolean 1 0 0" \
1384 "treeview1:gint 1 1 0" \
1385 "treeview1:guint 1 2 0" \
1386 "treeview1:glong 1 3 0" \
1387 "treeview1:glong 1 4 0" \
1388 "treeview1:glong 1 5 0" \
1389 "treeview1:gulong 1 6 0" \
1390 "treeview1:gfloat 1 7 0.000000" \
1391 "treeview1:gdouble 1 8 0.000000" \
1392 "treeview1:gchararray 1 9 ABCnDEFnGHI" \
1393 "treeview1:gchararray 1 10"
1395 check 0 "" \
1396 "treeview1:clear\n treeview2:clear"
1397 check 0 "" \
1398 "_:load $DIR/$FILE1"
1399 rm -f $DIR/$FILE1
1400 sleep .5
1401 check 1 "" \
1402 "treeview1:save $DIR/$FILE1\n button1:force" \
1403 "button1:clicked"
1404 check_cmd "cmp $DIR/$FILE1 $DIR/$FILE1.bak"
1405 check 0 "" \
1406 "treeview1:clear\n treeview2:clear"
1407 check 0 "" \
1408 "_:load $DIR/$FILE2"
1409 sleep .5
1410 rm -f $DIR/$FILE2
1411 sleep .5
1412 check 1 "" \
1413 "treeview2:save $DIR/$FILE2\n button1:force" \
1414 "button1:clicked"
1415 check_cmd "cmp $DIR/$FILE2 $DIR/$FILE2.bak"
1416 cat >$DIR/$FILE3 <<< "_:load $DIR/$FILE1.bak"
1417 cat >>$DIR/$FILE3 <<< "_:load $DIR/$FILE2.bak"
1418 cat >$DIR/$FILE4 <<< "_:load $DIR/$FILE3"
1419 cat >$DIR/$FILE5 <<< "_:load $DIR/$FILE4"
1420 cat >$DIR/$FILE6 <<< "_:load $DIR/$FILE5"
1421 rm -f $DIR/$FILE1 $DIR/$FILE2
1422 sleep .5
1423 check 0 "" \
1424 "treeview1:clear\n treeview2:clear"
1425 check 0 "" \
1426 "_:load $DIR/$FILE6"
1427 rm -f $DIR/$FILE1 $DIR/$FILE2
1428 sleep .5
1429 check 1 "" \
1430 "treeview1:save $DIR/$FILE1\n treeview2:save $DIR/$FILE2\n button1:force" \
1431 "button1:clicked"
1432 check_cmd "cmp $DIR/$FILE1 $DIR/$FILE1.bak"
1433 check_cmd "cmp $DIR/$FILE2 $DIR/$FILE2.bak"
1434 rm -rf $DIR
1435 check 0 "" \
1436 "treeview2:clear\n treeview2:set 2 0 1"
1438 check 1 "Click the header of column \"col23\"" \
1439 "" \
1440 "treeviewcolumn23:clicked"
1442 check 0 "" \
1443 "notebook1:set_current_page 2"
1444 check 1 "" \
1445 "nonexistent_send_text:force" \
1446 "nonexistent_send_text:clicked"
1447 check 1 "" \
1448 "nonexistent_send_selection:force" \
1449 "nonexistent_send_selection:clicked"
1450 check 1 "" \
1451 "nonexistent_ok:force" \
1452 "nonexistent_ok:clicked"
1453 check 1 "" \
1454 "nonexistent_apply:force" \
1455 "nonexistent_apply:clicked"
1456 check 1 "" \
1457 "nonexistent_cancel:force" \
1458 "nonexistent_cancel:clicked"
1459 check 0 "" \
1460 "notebook1:set_current_page 1"
1461 check 1 "" \
1462 "textview1_send_text:force" \
1463 "textview1_send_text:text some textnetcn"
1464 check 1 "" \
1465 "textview1:place_cursor 5\n textview1:insert_at_cursor MORE \n textview1_send_text:force" \
1466 "textview1_send_text:text some MORE textnetcn"
1467 check 1 "" \
1468 "textview1:place_cursor_at_line 1\n textview1:insert_at_cursor ETC \n textview1_send_text:force" \
1469 "textview1_send_text:text some MORE textnETC etcn"
1470 mkdir -p $DIR
1471 check 1 "" \
1472 "textview1:save $DIR/$FILE1\n button1:force" \
1473 "button1:clicked"
1475 while (( i<2000 )); do
1476 (( i+=1 ))
1477 cat $DIR/$FILE1 >> $DIR/$FILE2
1478 done
1480 while (( i<2000 )); do
1481 (( i+=1 ))
1482 echo "textview2:insert_at_cursor ##### THIS IS LINE $i.\\n" >> $DIR/$FILE3
1483 done
1484 check 0 "" \
1485 "_:load $DIR/$FILE2"
1486 check 0 "" \
1487 "textview1:save $DIR/$FILE1"
1488 check 0 "" \
1489 "textview1:save $DIR/$FILE1"
1490 check 0 "" \
1491 "textview1:delete"
1492 check 0 "" \
1493 "textview2:delete"
1494 check 0 "" \
1495 "_:load $DIR/$FILE3"
1496 check 0 "" \
1497 "_:load $DIR/$FILE1"
1498 check 0 "" \
1499 "textview2:save $DIR/$FILE3"
1500 check 1 "" \
1501 "textview1:save $DIR/$FILE2\n button1:force" \
1502 "button1:clicked"
1503 check_cmd "cmp $DIR/$FILE1 $DIR/$FILE2"
1504 echo "textview1:insert_at_cursor I'm a text containing backslashes:\\nONE\\\\\nTWO\\\\\\\\\\nTHREE\\\\\\\\\\\\\\nEnd" > $DIR/$FILE1
1505 check 0 "" \
1506 "textview1:delete\n _:load $DIR/$FILE1"
1507 check 1 "" \
1508 "textview1:save $DIR/$FILE1\n textview1:save $DIR/$FILE2\n textview1:delete\n _:load $DIR/$FILE1\n button1:force" \
1509 "button1:clicked"
1510 rm $DIR/$FILE1
1511 sleep .5
1512 check 1 "" \
1513 "textview1:save $DIR/$FILE1\n button1:force" \
1514 "button1:clicked"
1515 check_cmd "test 96 = `wc -c $DIR/$FILE1 | awk '{print $1}'`"
1516 check_cmd "cmp $DIR/$FILE1 $DIR/$FILE2"
1517 check 1 "" \
1518 "textview1:delete\n textview1_send_text:force" \
1519 "textview1_send_text:text"
1520 check 1 "Highlight the lowest visible character and press \"send_selection\"" \
1521 "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" \
1522 "textview1_send_selection:text u"
1523 check 1 "Again, highlight the lowest visible character and press \"send_selection\"" \
1524 "textview1:place_cursor end\n textview1:scroll_to_cursor" \
1525 "textview1_send_selection:text z"
1526 check 1 "Highlight the highest visible character and press \"send_selection\"" \
1527 "textview1:place_cursor 0 \n textview1:scroll_to_cursor" \
1528 "textview1_send_selection:text A"
1529 check 1 "" \
1530 "treeview2:set 100:10:5 2 8888888\n treeview2:save $DIR/$FILE1\n textview2:save $DIR/$FILE2\n button1:force" \
1531 "button1:clicked"
1532 cp $DIR/$FILE1 $DIR/$FILE4
1533 check_cmd "cmp $DIR/$FILE2 $DIR/$FILE3"
1534 check 1 "" \
1535 "treeview2:clear\n textview2:delete\n _:load $DIR/$FILE1\n _:load $DIR/$FILE2\n button1:force" \
1536 "button1:clicked"
1537 rm $DIR/$FILE1 $DIR/$FILE2
1538 sleep .5
1539 check 1 "" \
1540 "treeview2:save $DIR/$FILE1\n textview2:save $DIR/$FILE2\n button1:force" \
1541 "button1:clicked"
1542 check_cmd "cmp $DIR/$FILE1 $DIR/$FILE4"
1543 check_cmd "cmp $DIR/$FILE2 $DIR/$FILE3"
1544 rm -rf $DIR
1545 sleep .5
1546 check 1 "" \
1547 "scale1:set_value 10\n scale1:force" \
1548 "scale1:value 10.000000"
1549 check 6 "" \
1550 "open_dialog:set_filename q.png\n file:force\n open_dialog_invoke:force\n open_dialog_apply:force\n open_dialog_ok:force" \
1551 "file:active _File" \
1552 "open_dialog_apply:clicked" \
1553 "open_dialog:file $PWD/q.png" \
1554 "open_dialog:folder $PWD" \
1555 "open_dialog_ok:clicked" \
1556 "open_dialog:file $PWD/q.png" \
1557 "open_dialog:folder $PWD"
1558 check 2 "" \
1559 "file:force\n open_dialog_invoke:force\n open_dialog_cancel:force" \
1560 "file:active _File" \
1561 "open_dialog_cancel:clicked"
1562 check 3 "" \
1563 "save_as_dialog:set_current_name /somewhere/crazy_idea\n file:force\n save_as_dialog_invoke:force\n save_as_dialog_ok:force" \
1564 "file:active _File" \
1565 "save_as_dialog_ok:clicked" \
1566 "save_as_dialog:file /somewhere/crazy_idea" \
1567 "save_as_dialog:folder"
1568 check 1 "" \
1569 "nonexistent_invoke:force" \
1570 "nonexistent_invoke:active nonexistent"
1571 check 1 "Press the \"button\" which should now be renamed \"OK\"" \
1572 "button1:set_label OK" \
1573 "button1:clicked"
1574 check 1 "Press the \"togglebutton\" which should now be renamed \"on/off\"" \
1575 "togglebutton1:set_label on/off" \
1576 "togglebutton1:0"
1577 check 1 "" \
1578 "togglebutton1:force" \
1579 "togglebutton1:1"
1580 check 1 "Press the \"checkbutton\" which should now be renamed \"REGISTER\"" \
1581 "checkbutton1:set_label REGISTER" \
1582 "checkbutton1:1"
1583 check 1 "" \
1584 "checkbutton1:force" \
1585 "checkbutton1:0"
1586 check 2 "Press the \"radiobutton\" which should now be renamed \"RADIO\"" \
1587 "radiobutton2:set_label RADIO" \
1588 "radiobutton1:0" \
1589 "radiobutton2:1"
1590 check 2 "" \
1591 "radiobutton1:force" \
1592 "radiobutton2:0" \
1593 "radiobutton1:1"
1594 check 1 "Click the widget whose label font is now Bold Italic 20" \
1595 "switch1:style font:Bold Italic 20" \
1596 "switch1:1"
1597 check 1 "Click the widget whose label has turned red" \
1598 "switch1:style color:red" \
1599 "switch1:0"
1600 check 1 "Click the widget whose background has turned yellow" \
1601 "checkbutton1:style background-color:yellow" \
1602 "checkbutton1:1"
1603 check 1 "Press \"OK\" if font and colors changed in previous steps are back to normal\n switch1:style" \
1604 "checkbutton1:style" \
1605 "button1:clicked"
1606 check 1 "" \
1607 "switch1:force" \
1608 "switch1:1"
1609 check 1 "Press \"OK\" if the \"lorem ipsum dolor ...\" text inside \"frame1\" now reads \"LABEL\"" \
1610 "label1:set_text LABEL" \
1611 "button1:clicked"
1612 check 1 "Press \"OK\" if the label of the frame around \"LABEL\" now reads \"LOREM IPSUM\"" \
1613 "frame1:set_label LOREM IPSUM" \
1614 "button1:clicked"
1615 check 1 "Press \"OK\" if the green dot has turned red" \
1616 "image1:set_from_icon_name gtk-no" \
1617 "button1:clicked"
1618 check 1 "Press \"OK\" if the red dot has turned into a green \"Q\"" \
1619 "image1:set_from_file q.png" \
1620 "button1:clicked"
1621 check 1 "Select \"FIRST\" from the combobox" \
1622 "comboboxtext1:prepend_text FIRST" \
1623 "comboboxtext1_entry:text FIRST"
1624 check 1 "Select \"LAST\" from the combobox" \
1625 "comboboxtext1:append_text LAST" \
1626 "comboboxtext1_entry:text LAST"
1627 check 1 "Select \"AVERAGE\" from the combobox" \
1628 "comboboxtext1:insert_text 3 AVERAGE" \
1629 "comboboxtext1_entry:text AVERAGE"
1630 check 1 "Select the second entry from the combobox" \
1631 "comboboxtext1:remove 0" \
1632 "comboboxtext1_entry:text def"
1633 check 2 "Click the \"+\" of the spinbutton" \
1634 "" \
1635 "spinbutton1:text 33.00" \
1636 "spinbutton1:text 34.00"
1637 check 1 "Click the \"+\" of the spinbutton again" \
1638 "" \
1639 "spinbutton1:text 35.00"
1640 check 1 "Click the \"+\" of the spinbutton once again" \
1641 "" \
1642 "spinbutton1:text 36.00"
1643 check 1 "" \
1644 "spinbutton1:force" \
1645 "spinbutton1:text 36.00"
1646 check 1 "Using the file chooser button (now labelled \"etc\"), select \"File System\" (= \"/\")" \
1647 "filechooserbutton1:set_filename /etc/" \
1648 "filechooserbutton1:file /"
1649 check 1 "" \
1650 "filechooserbutton1:force" \
1651 "filechooserbutton1:file /"
1652 check 1 "Click \"Select\"\n fontbutton1:set_font_name Sans Bold 40" \
1653 "fontbutton1:force" \
1654 "fontbutton1:font Sans Bold 40"
1655 check 1 "Click \"Select\" (1)\n colorbutton1:set_color yellow" \
1656 "colorbutton1:force" \
1657 "colorbutton1:color rgb(255,255,0)"
1658 check 1 "Click \"Select\" (2)\n colorbutton1:set_color rgb(0,255,0)" \
1659 "colorbutton1:force" \
1660 "colorbutton1:color rgb(0,255,0)"
1661 check 1 "Click \"Select\" (3)\n colorbutton1:set_color #00f" \
1662 "colorbutton1:force" \
1663 "colorbutton1:color rgb(0,0,255)"
1664 check 1 "Click \"Select\" (4)\n colorbutton1:set_color #ffff00000000" \
1665 "colorbutton1:force" \
1666 "colorbutton1:color rgb(255,0,0)"
1667 check 1 "Click \"Select\" (5)\n colorbutton1:set_color rgba(0,255,0,.5)" \
1668 "colorbutton1:force" \
1669 "colorbutton1:color rgba(0,255,0,0.5)"
1670 check 1 "Close the dialog by hitting Escape" \
1671 "printdialog:print nonexistent.ps" \
1672 "printdialog:closed"
1673 check 1 "Press \"OK\" if both 1752-03-13 and 1752-03-14 are marked on the calendar" \
1674 "calendar1:mark_day 13\n calendar1:mark_day 14" \
1675 "button1:clicked"
1676 check 1 "Press \"OK\" if 1752-03-13 and 1752-03-14 are no longer marked on the calendar" \
1677 "calendar1:clear_marks" \
1678 "button1:clicked"
1679 check 3 "Hover over the calendar and do what the tooltip says" \
1680 "calendar1:set_tooltip_text Double-click on 1752-03-13" \
1681 "calendar1:clicked 1752-03-13" \
1682 "calendar1:clicked 1752-03-13" \
1683 "calendar1:doubleclicked 1752-03-13"
1684 check 0 "" \
1685 "calendar1:set_tooltip_text"
1686 check 1 "" \
1687 "calendar1:force" \
1688 "calendar1:clicked 1752-03-13"
1690 check 0 "" \
1691 "drawingarea1:rectangle 1 0 0 150 150\n drawingarea1:fill 1\n drawingarea1:refresh"
1692 check 0 "" \
1693 "drawingarea1:remove 1\n drawingarea1:remove 2\n drawingarea1:remove 3\n drawingarea1:remove 4\n drawingarea1:refresh"
1694 check 0 "" \
1695 "drawingarea1:rectangle 1 0 0 150 150\n drawingarea1:fill 1\n drawingarea1:refresh"
1696 check 0 "" \
1697 "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"
1698 check 0 "" \
1699 "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"
1700 check 0 "" \
1701 "drawingarea1:curve_to 1 30 30 90 120 120 30\n drawingarea1:set_source_rgba 1 blue\n drawingarea1:stroke 1\n drawingarea1:refresh"
1702 check 0 "" \
1703 "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"
1704 check 0 "" \
1705 "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"
1706 check 0 "" \
1707 "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"
1708 check 0 "" \
1709 "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"
1710 check 0 "" \
1711 "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"
1712 check 0 "" \
1713 "drawingarea1:refresh\n drawingarea1:set_dash 1"
1714 check 0 "" \
1715 "drawingarea1:set_source_rgba 1 brown\n drawingarea1:set_line_width 1 15"
1716 check 1 "Press \"OK\" if the brown shape is rounded" \
1717 "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" \
1718 "button1:clicked"
1719 check 1 "Press \"OK\" if the second brown shape is shorter and bevelled" \
1720 "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" \
1721 "button1:clicked"
1722 check 1 "Press \"OK\" if the third brown shape is square" \
1723 "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" \
1724 "button1:clicked"
1725 check 1 "Press \"OK\" if the first brown shape is no longer rounded" \
1726 "drawingarea1:remove 2\n drawingarea1:refresh" \
1727 "button1:clicked"
1728 check 1 "Press \"OK\" if all three brown shapes look the same" \
1729 "drawingarea1:remove 3\n drawingarea1:refresh" \
1730 "button1:clicked"
1731 check 0 "" \
1732 "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"
1733 check 0 "" \
1734 "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"
1735 check 0 "" \
1736 "drawingarea1:remove 1\n drawingarea1:remove 2\n drawingarea1:remove 3\n drawingarea1:remove 4\n drawingarea1:refresh"
1738 check 0 "" \
1739 "drawingarea2:rectangle 1 0 0 150 150\n drawingarea2:fill 1\n drawingarea2:refresh"
1740 check 0 "" \
1741 "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"
1742 check 0 "" \
1743 "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"
1744 check 0 "" \
1745 "drawingarea2:curve_to 1 30 30 90 120 120 30\n drawingarea2:set_source_rgba 1 blue\n drawingarea2:stroke 1\n drawingarea2:refresh"
1746 check 0 "" \
1747 "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"
1748 check 0 "" \
1749 "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"
1750 check 0 "" \
1751 "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"
1752 check 0 "" \
1753 "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"
1754 check 0 "" \
1755 "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"
1756 check 0 "" \
1757 "drawingarea2:refresh\n drawingarea2:set_dash 1"
1758 check 0 "" \
1759 "drawingarea2:set_source_rgba 1 brown\n drawingarea2:set_line_width 1 15"
1760 check 0 "" \
1761 "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"
1762 check 0 "" \
1763 "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"
1764 check 0 "" \
1765 "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"
1766 check 0 "" \
1767 "drawingarea2:remove 2\n drawingarea2:refresh"
1768 check 0 "" \
1769 "drawingarea2:remove 3\n drawingarea2:refresh"
1770 check 2 "Hit Backspace, Enter" \
1771 "eventbox1:grab_focus" \
1772 "eventbox1:key_press BackSpace" \
1773 "eventbox1:key_press Return"
1774 check 6 "Inside the DrawingArea, left-click, middle-click, right-click (Don't move the mouse while clicking)" \
1775 "" \
1776 "eventbox1:button_press 1" \
1777 "eventbox1:button_release 1" \
1778 "eventbox1:button_press 2" \
1779 "eventbox1:button_release 2" \
1780 "eventbox1:button_press 3" \
1781 "eventbox1:button_release 3"
1782 check 3 "Inside the DrawingArea and all within one second, hold the left button down, move around a bit, and release it again" \
1783 "" \
1784 "eventbox1:button_press 1" \
1785 "eventbox1:motion" \
1786 "eventbox1:motion"
1787 sleep 1.5
1788 check 1 "Hit Space" \
1789 "button1:grab_focus" \
1790 "button1:clicked"
1792 check 1 "Press the biggest button if there is a spinning spinner" \
1793 "spinner1:start\n no_button:set_size_request 400 400" \
1794 "no_button:clicked"
1795 check 1 "Press \"OK\" if the spinner has stopped" \
1796 "spinner1:stop" \
1797 "button1:clicked"
1798 check 1 "Press \"OK\" if the \"No\" button is back to normal size" \
1799 "no_button:set_size_request" \
1800 "button1:clicked"
1802 check 0 "" \
1803 "notebook1:set_current_page 3"
1804 check 1 "Click into page 4 (vscroll)" \
1805 "scrolledwindow8:vscroll 4500" \
1806 "button_sw:clicked"
1807 check 1 "Click into page 4 (hscroll)" \
1808 "scrolledwindow8:hscroll 4500" \
1809 "button_se:clicked"
1810 check 1 "Click into page 4 (hscroll_to_range, vscroll_to_range)" \
1811 "scrolledwindow8:hscroll_to_range 1600 2900\n scrolledwindow8:vscroll_to_range 1600 2900" \
1812 "button_c:clicked"
1814 check 1 "Press \"OK\" if we are fullscreen now" \
1815 "main:fullscreen" \
1816 "button1:clicked"
1817 check 1 "Press \"OK\" if we are back to default size" \
1818 "main:unfullscreen" \
1819 "button1:clicked"
1820 check 1 "Press \"OK\" if window is 1000x1000 now" \
1821 "main:resize 1000 1000" \
1822 "button1:clicked"
1823 check 1 "Press \"OK\" if we are back to default size again" \
1824 "main:resize" \
1825 "button1:clicked"
1826 check 1 "Press \"OK\" if our NE corner is at 400, 200 now" \
1827 "main:move 400 200" \
1828 "button1:clicked"
1830 check 1 "Press \"OK\" if there is now a \"Disconnect\" button" \
1831 "button2:set_visible 1\n button2:set_sensitive 0" \
1832 "button1:clicked"
1833 check 1 "Press \"Disconnect\"" \
1834 "button2:set_sensitive 1" \
1835 "button2:clicked"
1836 check 1 "Press \"OK\" if the window title is now \"ALMOST DONE\"" \
1837 "main:set_title ALMOST DONE" \
1838 "button1:clicked"
1840 check 1 "Press \"BIG BUTTON\" inside the window titled \"PRESS ME\"" \
1841 "dialog1:set_title PRESS ME\n dialog1:set_visible 1\n dialog1:resize 800 800\n dialog1:move 50 50" \
1842 "button3:clicked"
1843 check 1 "" \
1844 "button3:set_label PRESS THIS GIANT BUTTON NOW\n dialog1:fullscreen" \
1845 "button3:clicked"
1846 check 1 "" \
1847 "button3:set_label Hit Escape to close this window\n button3:set_sensitive 0" \
1848 "dialog1:closed"
1849 check 0 "" \
1850 "dialog1:set_visible 0"
1852 check 1 "Press \"OK\" if the progress bar shows 90%" \
1853 "progressbar1:set_fraction .9\n progressbar1:set_text" \
1854 "button1:clicked"
1855 check 1 "Press \"OK\" if the progress bar text reads \"The End\"" \
1856 "progressbar1:set_text The End" \
1857 "button1:clicked"
1858 check 1 "" \
1859 "statusbar1:push_id Id100 Press \"No\"\n statusbar1:push_id ABC nonsense #1\n statusbar1:push_id DEF nonsense #2.1\n statusbar1:push_id DEF nonsense 2.2\n statusbar1:pop\n statusbar1:pop\n statusbar1:pop_id 1\n statusbar1:pop_id ABC\n statusbar1:pop_id DEF\n statusbar1:pop_id DEF\n statusbar1:push_id GHI nonsense 3.1\n statusbar1:push_id GHI nonsense 3.2\n statusbar1:remove_all_id GHI" \
1860 "no_button:clicked"
1862 echo "_:main_quit" >$FIN
1864 check_rm $FIN
1865 check_rm $FOUT
1868 check_cmd "head -n 2 $LOG | tail -n 1 | grep -q '##### (New Pipeglade session) #####'"
1869 check_cmd "tail -n 4 $LOG | head -n 1 | grep -q '### (Idle) ###'"
1870 check_cmd "tail -n 3 $LOG | head -n 1 | grep -q 'statusbar1:remove_all_id GHI'"
1871 check_cmd "tail -n 2 $LOG | head -n 1 | grep -q '### (Idle) ###'"
1872 check_cmd "tail -n 1 $LOG | grep '_:main_quit'"
1875 echo "PASSED: $OKS/$TESTS; FAILED: $FAILS/$TESTS"