3 # Another possible shebang line:
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.
15 rm -f $FIN $FOUT $FERR $BAD_FIFO
34 echo " FAIL $1 should be deleted"
44 # Situations where pipeglade should exit immediately. These tests
45 # should run automatically
46 ######################################################################
53 output
=$
($1 2>tmperr.txt
)
58 if test "$output" = "" -a "$o" = "" ||
(echo "$output" |
grep -Fqe "$o"); then
60 echo " OK STDOUT $output"
63 echo " FAIL STDOUT $output"
66 if test "$error" = "" -a "$e" = "" ||
test "$retval" -eq "$r" && (echo "$error" |
grep -Fqe "$e"); then
68 echo " OK EXIT/STDERR $retval $error"
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" ""
88 check_call
"./pipeglade -i $BAD_FIFO" 1 "making fifo" ""
89 check_call
"./pipeglade -o $BAD_FIFO" 1 "making 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'" ""
101 echo -e "statusbar1:pop\n _:main_quit" > $FIN &
102 check_call
"./pipeglade -i $FIN" 0 "" ""
114 # Error handling tests---bogus actions leading to appropriate error
115 # messages. Most of these tests should run automatically.
116 ######################################################################
124 while read r
<$FERR; do
125 # ignore irrelevant GTK warnings
126 if test "$r" != "" && ! grep -q "WARNING"<<< "$r"; then
130 if test "$2" = "$r"; then
141 .
/pipeglade
-i $FIN 2> $FERR &
143 # wait for $FIN to appear
144 while test ! \
( -e $FIN \
); do :; done
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\""
153 check_error
"label1:nnn" "ignoring GtkLabel command \"label1:nnn\""
155 check_error
"image1:nnn" "ignoring GtkImage command \"image1:nnn\""
157 check_error
"notebook1:nnn" "ignoring GtkNotebook command \"notebook1:nnn\""
159 check_error
"expander1:nnn" "ignoring GtkExpander command \"expander1:nnn\""
161 check_error
"textview1:nnn" "ignoring GtkTextView command \"textview1:nnn\""
163 check_error
"button1:nnn" "ignoring GtkButton command \"button1:nnn\""
165 check_error
"switch1:nnn" "ignoring GtkSwitch command \"switch1:nnn\""
167 check_error
"togglebutton1:nnn" "ignoring GtkToggleButton command \"togglebutton1:nnn\""
169 check_error
"checkbutton1:nnn" "ignoring GtkCheckButton command \"checkbutton1:nnn\""
171 check_error
"radiobutton1:nnn" "ignoring GtkRadioButton command \"radiobutton1:nnn\""
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\""
179 check_error
"fontbutton1:nnn" "ignoring GtkFontButton command \"fontbutton1:nnn\""
181 check_error
"colorbutton1:nnn" "ignoring GtkColorButton command \"colorbutton1:nnn\""
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\""
186 check_error
"scale1:nnn" "ignoring GtkScale command \"scale1:nnn\""
188 check_error
"progressbar1:nnn" "ignoring GtkProgressBar command \"progressbar1:nnn\""
190 check_error
"spinner1:nnn" "ignoring GtkSpinner command \"spinner1:nnn\""
192 check_error
"statusbar1:nnn" "ignoring GtkStatusbar command \"statusbar1:nnn\""
194 check_error
"comboboxtext1:nnn" "ignoring GtkComboBoxText command \"comboboxtext1:nnn\""
195 check_error
"comboboxtext1:force" "ignoring GtkComboBoxText command \"comboboxtext1:force\""
197 check_error
"treeview1:nnn" "ignoring GtkTreeView command \"treeview1:nnn\""
198 check_error
"treeview1:force" "ignoring GtkTreeView command \"treeview1:force\""
200 check_error
"treeviewcolumn3:nnn" "ignoring GtkTreeViewColumn command \"treeviewcolumn3:nnn\""
201 check_error
"treeviewcolumn3:force" "ignoring GtkTreeViewColumn command \"treeviewcolumn3:force\""
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\""
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\""
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\""
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\""
258 check_error
"socket1:nnn" "ignoring GtkSocket command \"socket1:nnn\""
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
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 ######################################################################
399 # Flush stale pipeglade output
400 while read -t .1 <$FOUT; do : ; done
407 if test "$r" != ""; then
408 if test "$r" = "$3"; then
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"
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"
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"
461 .
/pipeglade
-i $FIN -o $FOUT &
463 # wait for $FIN and $FOUT to appear
464 while test ! \
( -e $FIN -a -e $FOUT \
); do :; done
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."
492 while (( i
<100 )); do
494 echo -n "Repetitive input that is large enough to have the realloc() machinery kick in.---"
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
628 echo "PASSED: $OKS/$TESTS; FAILED: $FAILS/$TESTS"