1#include <gtk/gtk.h>
2
3static void
4scrollbar_role (void)
5{
6 GtkWidget *widget = gtk_scrollbar_new (orientation: GTK_ORIENTATION_HORIZONTAL, NULL);
7 g_object_ref_sink (widget);
8
9 gtk_test_accessible_assert_role (widget, GTK_ACCESSIBLE_ROLE_SCROLLBAR);
10
11 g_object_unref (object: widget);
12}
13
14static void
15scrollbar_state (void)
16{
17 GtkWidget *widget = gtk_scrollbar_new (orientation: GTK_ORIENTATION_HORIZONTAL, NULL);
18 g_object_ref_sink (widget);
19
20 gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_DISABLED, FALSE);
21
22 gtk_widget_set_sensitive (widget, FALSE);
23
24 gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_DISABLED, TRUE);
25
26 g_object_unref (object: widget);
27}
28
29static void
30scrollbar_properties (void)
31{
32 GtkAdjustment *adj = gtk_adjustment_new (value: 0.0, lower: 0.0, upper: 100.0, step_increment: 1.0, page_increment: 10.0, page_size: 10.0);
33 GtkWidget *widget = gtk_scrollbar_new (orientation: GTK_ORIENTATION_HORIZONTAL, adjustment: adj);
34 g_object_ref_sink (widget);
35
36 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_ORIENTATION, GTK_ORIENTATION_HORIZONTAL);
37
38 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_MAX, 100.);
39 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_MIN, 0.);
40 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, 0.);
41
42 gtk_orientable_set_orientation (GTK_ORIENTABLE (widget), orientation: GTK_ORIENTATION_VERTICAL);
43 gtk_adjustment_set_value (adjustment: adj, value: 50.0);
44
45 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_ORIENTATION, GTK_ORIENTATION_VERTICAL);
46 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_MAX, 100.);
47 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_MIN, 0.);
48 gtk_test_accessible_assert_property (widget, GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, 50.0);
49
50 g_object_unref (object: widget);
51}
52
53static void
54scrollbar_relations (void)
55{
56 GtkWidget *sw = gtk_scrolled_window_new ();
57 GtkWidget *hscrollbar;
58 GtkWidget *vscrollbar;
59 GtkWidget *child;
60
61 g_object_ref_sink (sw);
62
63 hscrollbar = gtk_scrolled_window_get_hscrollbar (GTK_SCROLLED_WINDOW (sw));
64 vscrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (sw));
65
66 gtk_test_accessible_assert_relation (hscrollbar, GTK_ACCESSIBLE_RELATION_CONTROLS, NULL);
67 gtk_test_accessible_assert_relation (vscrollbar, GTK_ACCESSIBLE_RELATION_CONTROLS, NULL);
68
69 child = gtk_text_view_new ();
70 gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), child);
71
72 gtk_test_accessible_assert_relation (hscrollbar, GTK_ACCESSIBLE_RELATION_CONTROLS, child, NULL);
73 gtk_test_accessible_assert_relation (vscrollbar, GTK_ACCESSIBLE_RELATION_CONTROLS, child, NULL);
74
75 g_object_unref (object: sw);
76}
77
78int
79main (int argc, char *argv[])
80{
81 gtk_test_init (argcp: &argc, argvp: &argv, NULL);
82
83 g_test_add_func (testpath: "/a11y/scrollbar/role", test_func: scrollbar_role);
84 g_test_add_func (testpath: "/a11y/scrollbar/state", test_func: scrollbar_state);
85 g_test_add_func (testpath: "/a11y/scrollbar/properties", test_func: scrollbar_properties);
86 g_test_add_func (testpath: "/a11y/scrollbar/relations", test_func: scrollbar_relations);
87
88 return g_test_run ();
89}
90

source code of gtk/testsuite/a11y/scrollbar.c