## Testing

Testing — Test utilities

## Synopsis

    #include <gdk/gdk.h>

    void                gdk_test_render_sync                (GdkWindow *window);
    gboolean            gdk_test_simulate_button            (GdkWindow *window,
                                                             gint x,
                                                             gint y,
                                                             guint button,
                                                             GdkModifierType modifiers,
                                                             GdkEventType button_pressrelease);
    gboolean            gdk_test_simulate_key               (GdkWindow *window,
                                                             gint x,
                                                             gint y,
                                                             guint keyval,
                                                             GdkModifierType modifiers,
                                                             GdkEventType key_pressrelease);

## Description

The functions in this section are intended to be used in test programs. They allow to simulate some user input.

## Details

### gdk_test_render_sync ()

    void                gdk_test_render_sync                (GdkWindow *window);

This function retrives a pixel from `window` to force the windowing system to carry out any pending rendering commands. This function is intended to be used to syncronize with rendering pipelines, to benchmark windowing system rendering operations.

`window` : | a mapped GdkWindow

Since 2.14

### gdk_test_simulate_button ()

    gboolean            gdk_test_simulate_button            (GdkWindow *window,
                                                             gint x,
                                                             gint y,
                                                             guint button,
                                                             GdkModifierType modifiers,
                                                             GdkEventType button_pressrelease);

This function is intended to be used in Gtk+ test programs. It will warp the mouse pointer to the given (`x`,`y`) corrdinates within `window` and simulate a button press or release event. Because the mouse pointer needs to be warped to the target location, use of this function outside of test programs that run in their own virtual windowing system (e.g. Xvfb) is not recommended. Also, `gtk_test_simulate_button()` is a fairly low level function, for most testing purposes, `gtk_test_widget_click()` is the right function to call which will generate a button press event followed by its accompanying button release event.

`window` : | Gdk window to simulate a button event for.
`x` : | x coordinate within `window` for the button event.
`y` : | y coordinate within `window` for the button event.
`button` : | Number of the pointer button for the event, usually 1, 2 or 3.
`modifiers` : | Keyboard modifiers the event is setup with.
`button_pressrelease` : | either `GDK_BUTTON_PRESS` or `GDK_BUTTON_RELEASE`
Returns : | wether all actions neccessary for a button event simulation were carried out successfully.

Since 2.14

### gdk_test_simulate_key ()

    gboolean            gdk_test_simulate_key               (GdkWindow *window,
                                                             gint x,
                                                             gint y,
                                                             guint keyval,
                                                             GdkModifierType modifiers,
                                                             GdkEventType key_pressrelease);

This function is intended to be used in Gtk+ test programs. If (`x`,`y`) are > (-1,-1), it will warp the mouse pointer to the given (`x`,`y`) corrdinates within `window` and simulate a key press or release event. When the mouse pointer is warped to the target location, use of this function outside of test programs that run in their own virtual windowing system (e.g. Xvfb) is not recommended. If (`x`,`y`) are passed as (-1,-1), the mouse pointer will not be warped and `window` origin will be used as mouse pointer location for the event. Also, `gtk_test_simulate_key()` is a fairly low level function, for most testing purposes, `gtk_test_widget_send_key()` is the right function to call which will generate a key press event followed by its accompanying key release event.

`window` : | Gdk window to simulate a key event for.
`x` : | x coordinate within `window` for the key event.
`y` : | y coordinate within `window` for the key event.
`keyval` : | A Gdk keyboard value.
`modifiers` : | Keyboard modifiers the event is setup with.
`key_pressrelease` : | either `GDK_KEY_PRESS` or `GDK_KEY_RELEASE`
Returns : | wether all actions neccessary for a key event simulation were carried out successfully.

Since 2.14