12TEST(FlViewAccessibleTest, BuildTree) {
17 int32_t children[] = {111, 222};
22 .children_in_traversal_order = children,
26 .
id = 111, .label =
"child 1", .flags2 = &flags};
28 .
id = 222, .label =
"child 2", .flags2 = &flags};
33 AtkObject* root_object =
34 atk_object_ref_accessible_child(ATK_OBJECT(accessible), 0);
35 EXPECT_STREQ(atk_object_get_name(root_object),
"root");
36 EXPECT_EQ(atk_object_get_index_in_parent(root_object), 0);
37 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 2);
39 AtkObject* child1_object = atk_object_ref_accessible_child(root_object, 0);
40 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
41 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
42 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
43 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
45 AtkObject* child2_object = atk_object_ref_accessible_child(root_object, 1);
46 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
47 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
48 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 1);
49 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
52TEST(FlViewAccessibleTest, AddRemoveChildren) {
59 .
id = 0, .label =
"root", .child_count = 0, .flags2 = &flags};
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;
71 .
id = 111, .label =
"child 1", .flags2 = &flags};
74 root_object,
"children-changed::add");
75 EXPECT_SIGNAL2(child1_added, ::testing::Eq(0), ::testing::A<AtkObject*>())
76 .WillOnce(::testing::SaveArg<1>(&child1_object));
78 int32_t children[] = {111};
86 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 1);
87 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child1_object);
89 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
90 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
91 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
92 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
95 AtkObject* child2_object =
nullptr;
97 .
id = 222, .label =
"child 2", .flags2 = &flags};
100 root_object,
"children-changed::add");
101 EXPECT_SIGNAL2(child2_added, ::testing::Eq(1), ::testing::A<AtkObject*>())
102 .WillOnce(::testing::SaveArg<1>(&child2_object));
104 int32_t children[] = {111, 222};
112 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 2);
113 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child1_object);
114 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 1), child2_object);
116 EXPECT_STREQ(atk_object_get_name(child1_object),
"child 1");
117 EXPECT_EQ(atk_object_get_parent(child1_object), root_object);
118 EXPECT_EQ(atk_object_get_index_in_parent(child1_object), 0);
119 EXPECT_EQ(atk_object_get_n_accessible_children(child1_object), 0);
121 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
122 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
123 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 1);
124 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
129 root_object,
"children-changed::remove");
131 ::testing::Eq(child1_object));
133 const int32_t children[] = {222};
141 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 1);
142 EXPECT_EQ(atk_object_ref_accessible_child(root_object, 0), child2_object);
144 EXPECT_STREQ(atk_object_get_name(child2_object),
"child 2");
145 EXPECT_EQ(atk_object_get_parent(child2_object), root_object);
146 EXPECT_EQ(atk_object_get_index_in_parent(child2_object), 0);
147 EXPECT_EQ(atk_object_get_n_accessible_children(child2_object), 0);
152 root_object,
"children-changed::remove");
154 ::testing::Eq(child2_object));
162 EXPECT_EQ(atk_object_get_n_accessible_children(root_object), 0);