13TEST(FlViewAccessibleTest, BuildTree) {
15 g_autoptr(FlViewAccessible) accessible = FL_VIEW_ACCESSIBLE(
16 g_object_new(fl_view_accessible_get_type(),
"engine",
engine,
nullptr));
18 int32_t children[] = {111, 222};
23 .children_in_traversal_order = children,
31 AtkObject* root_object =
32 atk_object_ref_accessible_child(ATK_OBJECT(accessible), 0);
33 EXPECT_STREQ(atk_object_get_name(root_object),
"root");
34 EXPECT_EQ(atk_object_get_index_in_parent(root_object), 0);
35 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 2);
37 AtkObject* child1_object = atk_object_ref_accessible_child(root_object, 0);
38 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
39 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
40 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
41 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
43 AtkObject* child2_object = atk_object_ref_accessible_child(root_object, 1);
44 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
45 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
46 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 1);
47 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
50TEST(FlViewAccessibleTest, AddRemoveChildren) {
52 g_autoptr(FlViewAccessible) accessible = FL_VIEW_ACCESSIBLE(
53 g_object_new(fl_view_accessible_get_type(),
"engine",
engine,
nullptr));
64 AtkObject* root_object =
65 atk_object_ref_accessible_child(ATK_OBJECT(accessible), 0);
66 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 0);
69 AtkObject* child1_object =
nullptr;
73 root_object,
"children-changed::add");
74 EXPECT_SIGNAL2(child1_added, ::testing::Eq(0), ::testing::A<AtkObject*>())
75 .WillOnce(::testing::SaveArg<1>(&child1_object));
77 int32_t children[] = {111};
85 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 1);
86 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child1_object);
88 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
89 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
90 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
91 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
94 AtkObject* child2_object =
nullptr;
98 root_object,
"children-changed::add");
99 EXPECT_SIGNAL2(child2_added, ::testing::Eq(1), ::testing::A<AtkObject*>())
100 .WillOnce(::testing::SaveArg<1>(&child2_object));
102 int32_t children[] = {111, 222};
110 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 2);
111 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child1_object);
112 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 1), child2_object);
114 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
115 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
116 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
117 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
119 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
120 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
121 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 1);
122 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
127 root_object,
"children-changed::remove");
129 ::testing::Eq(child1_object));
131 const int32_t children[] = {222};
139 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 1);
140 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child2_object);
142 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
143 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
144 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 0);
145 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
150 root_object,
"children-changed::remove");
152 ::testing::Eq(child2_object));
160 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 0);