#include #define DEMO_TYPE_WIDGET (demo_widget_get_type ()) G_DECLARE_FINAL_TYPE (DemoWidget, demo_widget, DEMO, WIDGET, GtkWidget) struct _DemoWidget { GtkWidget parent_instance; }; struct _DemoWidgetClass { GtkWidgetClass parent_class; }; G_DEFINE_TYPE (DemoWidget, demo_widget, GTK_TYPE_WIDGET) static void demo_widget_init (DemoWidget *self) { } static void demo_widget_class_init (DemoWidgetClass *class) { } static void test_custom_widget_role (void) { GtkWidget *widget; widget = g_object_new (DEMO_TYPE_WIDGET, NULL); g_object_ref_sink (widget); g_assert_true (gtk_accessible_get_accessible_role (GTK_ACCESSIBLE (widget)) == GTK_ACCESSIBLE_ROLE_GENERIC); g_object_unref (widget); } static void test_custom_widget_role_explicit (void) { GtkWidget *widget; widget = g_object_new (DEMO_TYPE_WIDGET, "accessible-role", GTK_ACCESSIBLE_ROLE_LABEL, NULL); g_object_ref_sink (widget); g_assert_true (gtk_accessible_get_accessible_role (GTK_ACCESSIBLE (widget)) == GTK_ACCESSIBLE_ROLE_LABEL); g_object_unref (widget); } static void test_custom_widget_ui (void) { GtkBuilder *builder; GtkWidget *widget; g_type_ensure (DEMO_TYPE_WIDGET); builder = gtk_builder_new (); gtk_builder_add_from_string (builder, "" " " " " "", -1, NULL); widget = GTK_WIDGET (gtk_builder_get_object (builder, "test")); g_assert_true (gtk_accessible_get_accessible_role (GTK_ACCESSIBLE (widget)) == GTK_ACCESSIBLE_ROLE_GENERIC); g_object_unref (builder); } int main (int argc, char *argv[]) { gtk_test_init (&argc, &argv, NULL); g_test_add_func ("/a11y/custom-widget/role", test_custom_widget_role); g_test_add_func ("/a11y/custom-widget/explicit-role", test_custom_widget_role_explicit); g_test_add_func ("/a11y/custom-widget/ui", test_custom_widget_ui); return g_test_run (); }