48TEST(AXEventGeneratorTest, LoadCompleteNewTree) {
51 initial_state.
nodes.resize(1);
52 initial_state.
nodes[0].id = 1;
55 AXTree tree(initial_state);
59 load_complete_update.
root_id = 2;
60 load_complete_update.
nodes.resize(1);
61 load_complete_update.
nodes[0].id = 2;
62 load_complete_update.
nodes[0].relative_bounds.bounds =
67 ASSERT_TRUE(tree.
Unserialize(load_complete_update));
74 load_complete_update.
root_id = 3;
75 load_complete_update.
nodes.resize(1);
76 load_complete_update.
nodes[0].id = 3;
77 load_complete_update.
nodes[0].relative_bounds.bounds =
gfx::RectF(0, 0, 0, 0);
81 ASSERT_TRUE(tree.
Unserialize(load_complete_update));
87 load_complete_update.
root_id = 4;
88 load_complete_update.
nodes.resize(1);
89 load_complete_update.
nodes[0].id = 4;
90 load_complete_update.
nodes[0].relative_bounds.bounds =
92 load_complete_update.
nodes[0].AddStringAttribute(
97 ASSERT_TRUE(tree.
Unserialize(load_complete_update));
209TEST(AXEventGeneratorTest, ExpandedAndRowCount) {
212 initial_state.
nodes.resize(4);
213 initial_state.
nodes[0].id = 1;
215 initial_state.
nodes[0].child_ids.push_back(2);
216 initial_state.
nodes[0].child_ids.push_back(4);
217 initial_state.
nodes[1].id = 2;
219 initial_state.
nodes[1].child_ids.push_back(3);
220 initial_state.
nodes[2].id = 3;
222 initial_state.
nodes[3].id = 4;
225 AXTree tree(initial_state);
230 update.
nodes[3].state = 0;
239 EXPECT_TRUE(HasEvent(event_generator,
244 EXPECT_TRUE(HasEvent(event_generator,
249TEST(AXEventGeneratorTest, SelectedAndSelectedChildren) {
252 initial_state.
nodes.resize(4);
253 initial_state.
nodes[0].id = 1;
255 initial_state.
nodes[0].child_ids.push_back(2);
256 initial_state.
nodes[0].child_ids.push_back(4);
257 initial_state.
nodes[1].id = 2;
259 initial_state.
nodes[1].child_ids.push_back(3);
260 initial_state.
nodes[2].id = 3;
262 initial_state.
nodes[3].id = 4;
266 AXTree tree(initial_state);
271 update.
nodes.pop_back();
272 update.
nodes.emplace_back();
273 update.
nodes[3].id = 4;
278 EXPECT_TRUE(HasEvent(event_generator,
282 EXPECT_TRUE(HasEvent(event_generator,
287 EXPECT_TRUE(HasEvent(event_generator,
432TEST(AXEventGeneratorTest, CreateAlertAndLiveRegion) {
435 initial_state.
nodes.resize(1);
436 initial_state.
nodes[0].id = 1;
437 AXTree tree(initial_state);
441 update.
nodes.resize(4);
442 update.
nodes[0].child_ids.push_back(2);
443 update.
nodes[0].child_ids.push_back(3);
444 update.
nodes[0].child_ids.push_back(4);
446 update.
nodes[1].id = 2;
452 update.
nodes[2].id = 3;
457 update.
nodes[3].id = 4;
465 EXPECT_TRUE(HasEvent(event_generator,
475TEST(AXEventGeneratorTest, LiveRegionChanged) {
478 initial_state.
nodes.resize(3);
479 initial_state.
nodes[0].id = 1;
480 initial_state.
nodes[0].AddStringAttribute(
482 initial_state.
nodes[0].AddStringAttribute(
484 initial_state.
nodes[0].child_ids.push_back(2);
485 initial_state.
nodes[0].child_ids.push_back(3);
486 initial_state.
nodes[1].id = 2;
488 initial_state.
nodes[1].AddStringAttribute(
492 initial_state.
nodes[2].id = 3;
494 initial_state.
nodes[2].AddStringAttribute(
498 AXTree tree(initial_state);
502 update.
nodes[1].string_attributes.clear();
503 update.
nodes[1].AddStringAttribute(
507 update.
nodes[2].string_attributes.clear();
508 update.
nodes[2].AddStringAttribute(
514 EXPECT_TRUE(HasEvent(event_generator,
516 EXPECT_TRUE(HasEvent(event_generator,
518 EXPECT_TRUE(HasEvent(event_generator,
660TEST(AXEventGeneratorTest, ReorderChildren) {
663 initial_state.
nodes.resize(3);
664 initial_state.
nodes[0].id = 1;
665 initial_state.
nodes[0].child_ids.push_back(2);
666 initial_state.
nodes[0].child_ids.push_back(3);
667 initial_state.
nodes[1].id = 2;
668 initial_state.
nodes[2].id = 3;
669 AXTree tree(initial_state);
673 update.
nodes[0].child_ids.clear();
674 update.
nodes[0].child_ids.push_back(3);
675 update.
nodes[0].child_ids.push_back(2);
714TEST(AXEventGeneratorTest, TextAttributeChanged) {
717 initial_state.
nodes.resize(17);
718 initial_state.
nodes[0].id = 1;
719 initial_state.
nodes[0].child_ids = {2, 3, 4, 5, 6, 7, 8, 9,
720 10, 11, 12, 13, 14, 15, 16, 17};
721 initial_state.
nodes[1].id = 2;
722 initial_state.
nodes[2].id = 3;
723 initial_state.
nodes[3].id = 4;
724 initial_state.
nodes[4].id = 5;
725 initial_state.
nodes[5].id = 6;
726 initial_state.
nodes[6].id = 7;
727 initial_state.
nodes[7].id = 8;
728 initial_state.
nodes[8].id = 9;
729 initial_state.
nodes[9].id = 10;
730 initial_state.
nodes[10].id = 11;
731 initial_state.
nodes[11].id = 12;
732 initial_state.
nodes[12].id = 13;
733 initial_state.
nodes[13].id = 14;
734 initial_state.
nodes[14].id = 15;
735 initial_state.
nodes[15].id = 16;
736 initial_state.
nodes[16].id = 17;
739 initial_state.
nodes[11].AddIntListAttribute(
742 initial_state.
nodes[11].AddIntListAttribute(
744 initial_state.
nodes[11].AddIntListAttribute(
747 AXTree tree(initial_state);
753 update.
nodes[3].AddIntAttribute(
756 update.
nodes[4].AddIntAttribute(
759 update.
nodes[5].AddIntAttribute(
762 update.
nodes[6].AddIntAttribute(
765 update.
nodes[7].AddIntAttribute(
768 update.
nodes[8].AddIntAttribute(
771 update.
nodes[9].AddIntListAttribute(
774 update.
nodes[10].AddIntListAttribute(
779 update.
nodes[12].AddIntListAttribute(
782 update.
nodes[13].AddIntListAttribute(
793 EXPECT_TRUE(HasEvent(event_generator,
795 EXPECT_TRUE(HasEvent(event_generator,
797 EXPECT_TRUE(HasEvent(event_generator,
799 EXPECT_TRUE(HasEvent(event_generator,
801 EXPECT_TRUE(HasEvent(event_generator,
803 EXPECT_TRUE(HasEvent(event_generator,
805 EXPECT_TRUE(HasEvent(event_generator,
807 EXPECT_TRUE(HasEvent(event_generator,
809 EXPECT_TRUE(HasEvent(event_generator,
811 EXPECT_TRUE(HasEvent(event_generator,
813 EXPECT_TRUE(HasEvent(event_generator,
815 EXPECT_TRUE(HasEvent(event_generator,
817 EXPECT_TRUE(HasEvent(event_generator,
819 EXPECT_TRUE(HasEvent(event_generator,
821 EXPECT_TRUE(HasEvent(event_generator,
823 EXPECT_TRUE(HasEvent(event_generator,
855TEST(AXEventGeneratorTest, OtherAttributeChanged) {
858 initial_state.
nodes.resize(6);
859 initial_state.
nodes[0].id = 1;
860 initial_state.
nodes[0].child_ids.push_back(2);
861 initial_state.
nodes[0].child_ids.push_back(3);
862 initial_state.
nodes[0].child_ids.push_back(4);
863 initial_state.
nodes[0].child_ids.push_back(5);
864 initial_state.
nodes[0].child_ids.push_back(6);
865 initial_state.
nodes[1].id = 2;
866 initial_state.
nodes[2].id = 3;
867 initial_state.
nodes[3].id = 4;
868 initial_state.
nodes[4].id = 5;
869 initial_state.
nodes[5].id = 6;
870 AXTree tree(initial_state);
881 std::vector<int> ids = {2};
889 EXPECT_TRUE(HasEvent(event_generator,
891 EXPECT_TRUE(HasEvent(event_generator,
893 EXPECT_TRUE(HasEvent(event_generator,
895 EXPECT_TRUE(HasEvent(event_generator,
1010TEST(AXEventGeneratorTest, NodeBecomesIgnored2) {
1013 initial_state.
nodes.resize(5);
1014 initial_state.
nodes[0].id = 1;
1016 initial_state.
nodes[0].child_ids.push_back(2);
1017 initial_state.
nodes[1].id = 2;
1019 initial_state.
nodes[1].child_ids.push_back(3);
1020 initial_state.
nodes[2].id = 3;
1023 initial_state.
nodes[2].child_ids.push_back(4);
1024 initial_state.
nodes[3].id = 4;
1026 initial_state.
nodes[3].child_ids.push_back(5);
1027 initial_state.
nodes[4].id = 5;
1030 AXTree tree(initial_state);
1037 update.
nodes.pop_back();
1038 update.
nodes[3].child_ids.clear();
1046TEST(AXEventGeneratorTest, NodeBecomesUnignored) {
1049 initial_state.
nodes.resize(5);
1050 initial_state.
nodes[0].id = 1;
1052 initial_state.
nodes[0].child_ids.push_back(2);
1053 initial_state.
nodes[1].id = 2;
1055 initial_state.
nodes[1].child_ids.push_back(3);
1056 initial_state.
nodes[2].id = 3;
1059 initial_state.
nodes[2].child_ids.push_back(4);
1060 initial_state.
nodes[3].id = 4;
1063 initial_state.
nodes[3].child_ids.push_back(5);
1064 initial_state.
nodes[4].id = 5;
1067 AXTree tree(initial_state);
1071 update.
nodes[3].state = 0;
1081TEST(AXEventGeneratorTest, NodeBecomesUnignored2) {
1084 initial_state.
nodes.resize(5);
1085 initial_state.
nodes[0].id = 1;
1087 initial_state.
nodes[0].child_ids.push_back(2);
1088 initial_state.
nodes[1].id = 2;
1090 initial_state.
nodes[1].child_ids.push_back(3);
1091 initial_state.
nodes[2].id = 3;
1094 initial_state.
nodes[2].child_ids.push_back(4);
1095 initial_state.
nodes[3].id = 4;
1098 initial_state.
nodes[3].child_ids.push_back(5);
1099 initial_state.
nodes[4].id = 5;
1102 AXTree tree(initial_state);
1107 update.
nodes[3].state = 0;
1109 update.
nodes.pop_back();
1110 update.
nodes[3].child_ids.clear();
1150TEST(AXEventGeneratorTest, TwoNodesSwapIgnored) {
1153 initial_state.
nodes.resize(3);
1154 initial_state.
nodes[0].id = 1;
1156 initial_state.
nodes[0].child_ids.push_back(2);
1157 initial_state.
nodes[1].id = 2;
1159 initial_state.
nodes[1].child_ids.push_back(3);
1160 initial_state.
nodes[2].id = 3;
1164 AXTree tree(initial_state);
1181TEST(AXEventGeneratorTest, TwoNodesSwapIgnored2) {
1184 initial_state.
nodes.resize(3);
1185 initial_state.
nodes[0].id = 1;
1187 initial_state.
nodes[0].child_ids.push_back(2);
1188 initial_state.
nodes[1].id = 2;
1191 initial_state.
nodes[1].child_ids.push_back(3);
1192 initial_state.
nodes[2].id = 3;
1195 AXTree tree(initial_state);
1357TEST(AXEventGeneratorTest, IgnoredChangedFiredOnAncestorOnly4) {
1388 initial_state.
nodes.resize(8);
1389 initial_state.
nodes[0].id = 1;
1391 initial_state.
nodes[0].child_ids = {2};
1393 initial_state.
nodes[1].id = 2;
1395 initial_state.
nodes[1].child_ids = {3};
1397 initial_state.
nodes[2].id = 3;
1399 initial_state.
nodes[2].child_ids = {4};
1402 initial_state.
nodes[3].id = 4;
1404 initial_state.
nodes[3].child_ids = {5};
1407 initial_state.
nodes[4].id = 5;
1409 initial_state.
nodes[4].child_ids = {6, 7, 8};
1411 initial_state.
nodes[5].id = 6;
1415 initial_state.
nodes[6].id = 7;
1419 initial_state.
nodes[7].id = 8;
1422 AXTree tree(initial_state);
1444TEST(AXEventGeneratorTest, IgnoredChangedFiredOnAncestorOnly5) {
1475 initial_state.
nodes.resize(8);
1476 initial_state.
nodes[0].id = 1;
1478 initial_state.
nodes[0].child_ids = {2};
1480 initial_state.
nodes[1].id = 2;
1482 initial_state.
nodes[1].child_ids = {3};
1484 initial_state.
nodes[2].id = 3;
1486 initial_state.
nodes[2].child_ids = {4};
1489 initial_state.
nodes[3].id = 4;
1491 initial_state.
nodes[3].child_ids = {5};
1494 initial_state.
nodes[4].id = 5;
1496 initial_state.
nodes[4].child_ids = {6, 7, 8};
1498 initial_state.
nodes[5].id = 6;
1502 initial_state.
nodes[6].id = 7;
1505 initial_state.
nodes[7].id = 8;
1508 AXTree tree(initial_state);
1527TEST(AXEventGeneratorTest, IgnoredChangedFiredOnAncestorOnly6) {
1558 initial_state.
nodes.resize(8);
1559 initial_state.
nodes[0].id = 1;
1561 initial_state.
nodes[0].child_ids = {2};
1564 initial_state.
nodes[1].id = 2;
1566 initial_state.
nodes[1].child_ids = {3};
1568 initial_state.
nodes[2].id = 3;
1570 initial_state.
nodes[2].child_ids = {4};
1572 initial_state.
nodes[3].id = 4;
1574 initial_state.
nodes[3].child_ids = {5};
1576 initial_state.
nodes[4].id = 5;
1578 initial_state.
nodes[4].child_ids = {6, 7, 8};
1580 initial_state.
nodes[5].id = 6;
1584 initial_state.
nodes[6].id = 7;
1588 initial_state.
nodes[7].id = 8;
1591 AXTree tree(initial_state);
1839TEST(AXEventGeneratorTest, StringPropertyChanges) {
1842 initial_state.
nodes.resize(1);
1843 initial_state.
nodes[0].id = 1;
1847 std::string old_value;
1848 std::string new_value;
1856 for (
auto&& attrib : attributes) {
1857 initial_state.
nodes.push_back({});
1858 initial_state.
nodes.back().id = initial_state.
nodes.size();
1859 initial_state.
nodes.back().AddStringAttribute(attrib.id, attrib.old_value);
1860 initial_state.
nodes[0].child_ids.push_back(initial_state.
nodes.size());
1863 AXTree tree(initial_state);
1867 for (
auto&& attrib : attributes) {
1868 initial_state.
nodes[index++].AddStringAttribute(attrib.id,
1874 EXPECT_TRUE(HasEvent(event_generator,
1876 EXPECT_TRUE(HasEvent(event_generator,
1878 EXPECT_TRUE(HasEvent(event_generator,
1882 EXPECT_TRUE(HasEvent(event_generator,
1886TEST(AXEventGeneratorTest, IntPropertyChanges) {
1889 initial_state.
nodes.resize(1);
1890 initial_state.
nodes[0].id = 1;
1901 for (
auto&& attrib : attributes) {
1902 initial_state.
nodes.push_back({});
1903 initial_state.
nodes.back().id = initial_state.
nodes.size();
1904 initial_state.
nodes.back().AddIntAttribute(attrib.id, attrib.old_value);
1905 initial_state.
nodes[0].child_ids.push_back(initial_state.
nodes.size());
1908 AXTree tree(initial_state);
1912 for (
auto&& attrib : attributes)
1913 initial_state.
nodes[index++].AddIntAttribute(attrib.id, attrib.new_value);
1917 EXPECT_TRUE(HasEvent(event_generator,
1919 EXPECT_TRUE(HasEvent(event_generator,
1925TEST(AXEventGeneratorTest, IntListPropertyChanges) {
1928 initial_state.
nodes.resize(1);
1929 initial_state.
nodes[0].id = 1;
1933 std::vector<int> old_value;
1934 std::vector<int> new_value;
1940 for (
auto&& attrib : attributes) {
1941 initial_state.
nodes.push_back({});
1942 initial_state.
nodes.back().id = initial_state.
nodes.size();
1943 initial_state.
nodes.back().AddIntListAttribute(attrib.id, attrib.old_value);
1944 initial_state.
nodes[0].child_ids.push_back(initial_state.
nodes.size());
1947 AXTree tree(initial_state);
1951 for (
auto&& attrib : attributes) {
1952 initial_state.
nodes[index++].AddIntListAttribute(attrib.id,
1958 EXPECT_TRUE(HasEvent(event_generator,
1966 EXPECT_TRUE(HasEvent(event_generator,
1968 EXPECT_TRUE(HasEvent(event_generator,
1970 EXPECT_TRUE(HasEvent(event_generator,
1972 EXPECT_TRUE(HasEvent(event_generator,
2044TEST(AXEventGeneratorTest, FlowToChanged) {
2047 initial_state.
nodes.resize(6);
2048 initial_state.
nodes[0].id = 1;
2050 initial_state.
nodes[0].child_ids.assign({2, 3, 4, 5, 6});
2051 initial_state.
nodes[1].id = 2;
2053 initial_state.
nodes[1].AddIntListAttribute(
2055 initial_state.
nodes[2].id = 3;
2057 initial_state.
nodes[3].id = 4;
2059 initial_state.
nodes[4].id = 5;
2061 initial_state.
nodes[5].id = 6;
2064 AXTree tree(initial_state);
2080 EXPECT_TRUE(HasEvent(event_generator,