2 ============================
4 Last Updated: August 2, 2001
5 ============================
11 This README describes how to use the various test programs
12 in the gail/tests directory.
14 To run the various test programs described in this README,
15 the test libraries must be built and installed. Running
16 "make", then "make install" in the gail top-level directory
17 will take care of this. Then do the following:
19 1. Set the environment variable GTK_MODULES to
20 "libgail:lib<testname>"
22 For example, for ferret, it would be "libgail:libferret"
24 2. Run the GTK+ test program specified. These test programs
25 are found in the GTK+ build directory in the subdirectory
28 Most test programs will display output directly to the
29 terminal window where the GTK+ test program was launched.
30 Some test programs (testtable and testtext) will launch a
31 test GUI program which allows more interactive testing.
33 The test GUI has two windows. The first window is the
34 "Test Control" window and the second window is the
35 "Test Output" window. In the "Test Control" window,
36 press the button(s) that corresponds to the tests to run
37 and press the "Run Tests" button at the bottom of the
38 screen. Some tests have associated text entry fields
39 which become active when the button is toggled on. These
40 text entry fields correspond to arguments that affect how
41 the test is executed. They are pre-filled with default
42 values but the user can change them if desired. The
43 output from the tests is displayed in the "Test Output"
50 Contains general purpose functionality that is used by the
51 various tests. These include functions that find a specific
52 widget/AtkObject in the test program, and functions used by
53 tests that use the Gail Test GUI.
59 Ferret is a passive in-process test tool for ATK and GAIL.
61 Run a GTK+-2.0 application such as "testgtk", and ferret will
62 display a window on screen. In this window accessibility
63 information about the GTK+ widgets will appear as they
66 The ferret window has several tabs, one for each of the
67 following ATK interfaces.
77 Tabs that do not apply to the current widget in focus will be
78 displayed as inactive. Clicking on an active tab will display
79 information about the AtkObject accessed via the ATK API. In the
80 Action tab the various actions are displayed as buttons. When
81 a button is clicked, the action specified on the button's
84 If you have installed the "festival" speech synthesis system,
85 running festival in server mode (festival --server) and turning
86 on Ferret's Festival support will cause the following to happen:
88 1. AtkObject accessible names, roles, and keybindings will be
89 spoken as they receive focus.
90 2. When the caret (cursor) is moved in a text field, the
91 current line will be spoken, unless the caret is moved
92 just a single character. In the later case, only the
93 single character after the caret will be spoken.
95 Festival support can be turned on by checking "Festival" in the
96 menu, or by setting the environment variable FERRET_FESTIVAL
97 prior to starting the test. By checking "Festival Terse" or
98 by setting the environment variable FERRET_TERSE, only the
99 name of the AtkObject will be spoken (and not the roles and
102 A magnifier can be turned on to enlarge the widget in focus
103 by checking "Magnifier" in the menu, or by setting the
104 environment variable FERRET_MAGNIFIER. This requires that
105 the magnifier standalone code is running.
107 Checking "Track Mouse in the menu or by setting the environment
108 variable FERRET_MOUSETRACK causes ferret to display information
109 about the widget that is under the mouse rather than the widget
110 that has focus. The mouse is tracked via GtkWidget
111 "enter_notify_event" signals, so flyweight objects are not tracked.
113 Checking "Terminal Output" in the menu or by setting the
114 environment variable FERRET_ASCII will display the information
115 that is normally displayed to the ferret GUI window to the
118 Checking "No ATK Signals" in the menu or by setting the
119 environment variable FERRET_NOSIGNALS will cause ferret to
120 ignore any ATK signals, and it will not update its display
121 when such signals occur.
127 This is a GTK+ module used to test the implementation of the ATK
128 interface AtkAction, except for atk_action_do_action() in the GAIL
129 library. It is normally used with the GTK+ test program testgtk.
135 This is a GTK+ module used to test the accessible implementation
136 for buttons. It is normally used with the GTK+ test program testgtk.
138 Set the TEST_ACCESSIBLE_NAME environment variable to have the test
139 driver attach to a widget by widget name (compared via the
140 gtk_widget_get_name function call).
142 Set the environment variable TEST_ACCESSIBLE_AUTO and the program
143 will execute the action defined for a GailButton once.
149 This is a GTK+ module used to test the implementation of the ATK action
150 interfaces on GailCombo. It is normally used with the GTK+ test program
151 testgtk by putting the focus in the GtkCombo in entry window.
157 This is a GTK+ module used to test the implementation of the ATK
158 interface AtkComponent in the GAIL library. It is normally used with the
159 GTK+ test program testgtk.
165 This is a GTK+ module used to test the implementation of the ATK
166 interface AtkImage in the GAIL library. It is normally used with the GTK+
167 test program testgtk, but can also be used with testdnd when you want
168 to test GtkPixmap. This modules pops up an extra dialog on startup , containing
169 GtkArrows and a GtkImage. This dialog has to be closed before control is returned to main window.
175 This is a GTK+ module used to test the accessible implementation
176 for menu items. It is normally used with the GTK+ test program testgtk.
178 Set the TEST_ACCESSIBLE_NAME environment variable to have the test
179 driver attach to a widget by widget name (compared via the
180 gtk_widget_get_name function call).
182 Set the environment variable TEST_ACCESSIBLE_AUTO and the program
183 will execute the action defined for a GailButton once.
189 This is a GTK+ module used to test the implementation of the ATK
190 interface AtkSelection for GailNotebook. It is normally used with the
191 GTK+ test program testgtk.
197 This is a GTK+ module used to test the implementation of the ATK
198 interface in atkobject.h in the GAIL library. It is normally used with the
199 GTK+ test program testgtk.
205 This is a GTK+ module used to test the implementation of the ATK
206 interface AtkValue for GailPaned. It is normally used with the
207 GTK+ test program testgtk. It checks the setting of the position
208 programmatically and that notification is received if the position
209 is changed interactively.
215 This is a GTK+ module used to test the implementation of ATK properties
216 and property change handlers in the GAIL library. It is normally used with
217 the GTK+ test program testgtk. To see the changing of the state
218 ATK_STATE_SHOWING use menus in "progress bar". To see the changing of the
219 state ATK_STATE_SENSITIVE uses "labels". To see changing of child and parent
220 use resize check box in "panes".
222 Set the TEST_ACCESSIBLE_NAME environment variable to have the test
223 driver attach to a widget by widget name (compared via the
224 gtk_widget_get_name function call).
230 This is a GTK+ module used to test the implementation of the AtkSelection
231 interface works for the GAIL library. It is normally used with the GTK+
232 test program testgtk and clicking on the menus option. It can also be used
233 with the GtkCombo which can be accessed by clicking on the entry option.
239 This is a GTK+ module used to test that the text on the statusbar
240 can be retrieved using GailStatusbar. It is normally used with the GTK+
241 test program testgtk and clicking on statusbar button.
247 This is GTK+ module used to test the implementation of AtkTable
248 interfaces. It can be used with GailTreeView, for example. It
249 can be used with any of the following GTK+ test programs:
250 testtreecolumns, testtreefocus, testtreesort, testtreeview,
253 Set the TEST_ACCESSIBLE_NO_PROPERTIES environment variable
254 to not receive information about property values changing
255 (like cell state changes).
257 Set the TEST_ACCESSIBLE_NO_GUI environment variable to run the
258 test without the GUI program.
264 This is a GTK+ module used to test the implementation of AtkText and
265 AtkEditableText interfaces on GailTextView. It is normally used with
266 the GTK+ test program testtext started with a text file loaded.
267 It can also be used with the GTK+ test program testgtk, and then
268 click on the "entry" or "label" button.
270 Set the TEST_ACCESSIBLE_NAME environment variable to have the test
271 driver attach to a widget by widget name (compared via the
272 gtk_widget_get_name function call).
274 Set the TEST_ACCESSIBLE_DELAY environment variable to an integer
275 and the test driver will attach to only a widget on the nth screen
282 This test exercises the AtkUtil functions. It accesses the
283 atk_get_root() toplevel object, sets/removes global listeners,
284 and displays the ATK implementation name/version.
286 Set the TEST_ACCESSIBLE_DEPTH environment variable to control
287 how deep the children of the toplevel object are displayed.
288 The default is a depth of 2. Specifying a depth of -1 will
289 show the complete hierarchy.
295 This is a GTK+ module used to test the implementation of AtkValue interface
296 works for the GAIL library. GailProgressbar, GailSpinbutton and GailRange
297 can all be tested using this module.
303 -Brian Cameron (brian.cameron@sun.com)
304 -Bill Haneman (bill.haneman@sun.com)
305 -Padraig O'Briain (padraig.obriain@sun.com)