
Testing AT-SPI requires both a test application and an AT client.

Test applications are built from xml files using xml loader module,
based on Dummy ATK implementation.

Each test is built as a GTest object and packed into a single interface test suite.

Test directory contains:

 * atk_suite - Generates a test suite, the main executable of all test suite,
               help is shown when run with '-h' parameter.

 * atk-object-xml-loader - Generates dummy atk object from xml file.

 * test-application - Starts an application with atk object generated by atk-object-xml-loader

 * data/ - Folder which contains xml file from which dummy atk object is generated

 * dummyatk/ - Folder which contains dummy atk implementation


************************
HOW TO CREATE NEW TESTS:

1) Add atspi interface which will be tested to Atk_Test_Case in atk_suite.c and atk_suite.h,
   then add proper test call in atk_suite_build function.
2) Prepare xml file which describes tested root object and descendants.
   If any new fields in xml file appear, atk-object-xml-loader should be modifed.
3) Add test file named atk_test_TEST_NAME.c, where TEST_NAME is tested interface name:
   a) Create function which runs tested application
   b) Create get_root_obj function for tested interface
   c) Create tested functions
   d) Create function which calls all test functions, this function should be called in atk_suite.c file.

*************************
AVAILABLE TESTS:

- Accessible:
             -accessible_get_name
             -accessible_get_description
             -accessible_get_child_count
             -accessible_get_parent
             -accessible_get_child_at_index
             -accessible_get_index_in_parent
             -accessible_get_relation_set_1
             -accessible_get_relation_set_2
             -accessible_get_role
             -accessible_get_role_name
             -accessible_get_localized_role_name
             -accessible_get_state_set
             -accessible_get_attributes
             -accessible_get_attributes_as_array
             -accessible_get_toolkit_name
             -accessible_get_toolkit_version
             -accessible_get_atspi_version
             -accessible_get_id
             -accessible_get_application
             -accessible_get_action_iface
             -accessible_get_collection_iface
             -accessible_get_component_iface
             -accessible_get_document_iface
             -accessible_get_editable_text_iface
             -accessible_get_hypertext_iface
             -accessible_get_image_iface
             -accessible_get_selection_iface
             -accessible_get_table_iface
             -accessible_get_text_iface
             -accessible_get_value_iface
             -accessible_get_interfaces
             -accessible_get_object_locale
             -accessible_set_cache_mask
             -accessible_clear_cache
             -accessible_get_process_id
- Action:
             -get_action_interface
             -action_get_action_description
             -action_get_action_name
             -action_get_n_actions
             -action_get_key_binding
             -action_get_localized_name
             -action_do_action
- Component:
             -component_contains
             -component_get_accessible_at_point
             -component_get_extents
             -component_get_layer
             -component_get_mdi_z_order
             -component_grab_focus
             -component_get_alpha
             -component_set_extents
- Collection
             -get_collection_iface
             -get_matches
             -get_matches_to
             -get_matches_from
- EditableText:
             -get_editable_text_iface
             -editable_text_set_attributes
             -editable_text_insert_text
             -editable_text_copy_text
             -editable_text_cut_text
             -editable_text_delete_text
             -editable_text_paste_text
- Image:
             -get_image_iface
             -image_get_image_size
             -image_get_image_position
             -image_get_image_extents
             -image_get_image_locale
- HyperLink
             -hyperlink_get_n_anchors
             -hyperlink_get_uri
             -hyperlink_get_object
             -hyperlink_get_index_range
             -hyperlink_get_start_index
             -hyperlink_get_end_index
             -hyperlink_is_valid
- HyperText
             -hypertext_get_n_links
             -hypertext_get_link
             -hypertext_get_link_index
- Relation
             -relation_get_relation_type
             -relation_get_n_targets
             -relation_get_target
- Selection
             -selection_get_n_selected_children
             -selection_get_selected_child
             -selection_select_child
             -selection_deselect_selected
             -selection_deselect_child
             -selection_is_child_selected
             -selection_select_all
             -selection_clear_selection
- State Set
             -state_set_new
             -state_set_set_by_name
             -state_set_add
             -state_set_compare
             -state_set_contains
             -state_set_equals
             -state_set_get_states
             -state_set_is_empty
             -state_set_remove
- Table
             -table_get_caption
             -table_get_summary
             -table_get_n_rows
             -table_get_n_columns
             -table_get_accessible_at
             -table_get_index_at
             -table_get_row_at_index
             -table_get_column_at_index
             -table_get_row_description
             -table_get_column_description
             -table_get_row_extent_at
             -table_get_column_extent_at
             -table_get_row_header
             -table_get_column_header
             -table_get_n_selected_rows
             -table_get_selected_rows
             -table_get_selected_columns
             -table_get_n_selected_columns
             -table_is_row_selected
             -table_is_column_selected
             -table_add_row_selection
             -table_add_column_selection
             -table_remove_row_selection
             -table_remove_column_selection
             -table_get_row_column_extents_at_index
             -table_is_selected
- Table Cell
             -table_cell_get_column_span
             -table_cell_get_column_header_cells
             -table_cell_get_column_index
             -table_cell_get_row_span
             -table_cell_get_row_header_cells
             -table_cell_get_row_column_span
             -table_cell_get_table
- Text:
             -text_get_character_count
             -text_get_text
             -text_get_caret_offset
             -text_get_text_attributes
             -text_get_attribute_run
             -text_get_get_text_attribute_value
             -text_get_default_attributes
             -text_set_caret_offset
             -text_get_string_at_offset
             -text_get_character_at_offset
             -text_get_character_extents
             -text_get_offset_at_point
             -text_get_range_extents
             -text_get_bounded_ranges
             -text_get_n_selections
             -text_get_selection
             -text_add_selection
             -text_remove_selection
             -text_set_selection
- Value
             -value_get_minimum_value
             -value_get_current_value
             -value_get_maximum_value
             -value_set_current_value
             -value_get_minimum_increment
