178 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
181 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
182 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
183 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
184 EXPECT_TRUE(fuchsia_node.has_attributes());
185 EXPECT_TRUE(fuchsia_node.attributes().is_keyboard_key());
196 updates.emplace(0, node0);
203 updates.emplace(1, node1);
210 updates.emplace(2, node2);
217 updates.emplace(3, node3);
224 updates.emplace(4, node4);
231 updates.emplace(5, node5);
239 updates.emplace(6, node6);
246 updates.emplace(7, node7);
253 updates.emplace(7, node8);
255 accessibility_bridge_->AddSemanticsNodeUpdate(std::move(updates), 1.f);
258 std::unordered_map<uint32_t, fuchsia::accessibility::semantics::Role>
260 {0u, fuchsia::accessibility::semantics::Role::BUTTON},
261 {1u, fuchsia::accessibility::semantics::Role::HEADER},
262 {2u, fuchsia::accessibility::semantics::Role::IMAGE},
263 {3u, fuchsia::accessibility::semantics::Role::TEXT_FIELD},
264 {4u, fuchsia::accessibility::semantics::Role::SLIDER},
265 {5u, fuchsia::accessibility::semantics::Role::LINK},
266 {6u, fuchsia::accessibility::semantics::Role::RADIO_BUTTON},
267 {7u, fuchsia::accessibility::semantics::Role::CHECK_BOX},
268 {8u, fuchsia::accessibility::semantics::Role::TOGGLE_SWITCH}};
270 EXPECT_EQ(0, semantics_manager_.DeleteCount());
271 EXPECT_EQ(1, semantics_manager_.UpdateCount());
272 EXPECT_EQ(1, semantics_manager_.CommitCount());
273 EXPECT_EQ(8u, semantics_manager_.LastUpdatedNodes().size());
274 for (
const auto& node : semantics_manager_.LastUpdatedNodes()) {
275 ExpectNodeHasRole(node, roles_by_node_id);
278 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
279 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
297 accessibility_bridge_->AddSemanticsNodeUpdate(
306 EXPECT_EQ(0, semantics_manager_.DeleteCount());
307 EXPECT_EQ(1, semantics_manager_.UpdateCount());
308 EXPECT_EQ(1, semantics_manager_.CommitCount());
309 EXPECT_EQ(3U, semantics_manager_.LastUpdatedNodes().size());
310 EXPECT_EQ(0U, semantics_manager_.LastDeletedNodeIds().size());
311 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
312 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
317 accessibility_bridge_->AddSemanticsNodeUpdate(
324 EXPECT_EQ(1, semantics_manager_.DeleteCount());
325 EXPECT_EQ(2, semantics_manager_.UpdateCount());
326 EXPECT_EQ(2, semantics_manager_.CommitCount());
327 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
328 ASSERT_EQ(std::vector<uint32_t>({1, 2}),
329 semantics_manager_.LastDeletedNodeIds());
330 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
331 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
339 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
342 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
343 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
344 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
345 EXPECT_TRUE(fuchsia_node.has_role());
346 EXPECT_EQ(fuchsia_node.role(),
347 fuchsia::accessibility::semantics::Role::BUTTON);
355 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
358 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
359 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
360 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
361 EXPECT_TRUE(fuchsia_node.has_role());
362 EXPECT_EQ(fuchsia_node.role(),
363 fuchsia::accessibility::semantics::Role::IMAGE);
371 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
374 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
375 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
376 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
377 EXPECT_TRUE(fuchsia_node.has_role());
378 EXPECT_EQ(fuchsia_node.role(),
379 fuchsia::accessibility::semantics::Role::SLIDER);
387 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
390 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
391 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
392 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
393 EXPECT_TRUE(fuchsia_node.has_role());
394 EXPECT_EQ(fuchsia_node.role(),
395 fuchsia::accessibility::semantics::Role::HEADER);
404 node0.
value =
"value";
406 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
409 EXPECT_EQ(0, semantics_manager_.DeleteCount());
410 EXPECT_EQ(1, semantics_manager_.UpdateCount());
411 EXPECT_EQ(1, semantics_manager_.CommitCount());
412 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
413 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
414 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
415 EXPECT_TRUE(fuchsia_node.has_states());
416 const auto& states = fuchsia_node.states();
417 EXPECT_TRUE(states.has_checked_state());
418 EXPECT_EQ(states.checked_state(),
419 fuchsia::accessibility::semantics::CheckedState::CHECKED);
420 EXPECT_TRUE(states.has_selected());
421 EXPECT_FALSE(states.selected());
422 EXPECT_TRUE(states.has_value());
423 EXPECT_EQ(states.value(), node0.
value);
425 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
426 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
436 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
439 EXPECT_EQ(0, semantics_manager_.DeleteCount());
440 EXPECT_EQ(1, semantics_manager_.UpdateCount());
441 EXPECT_EQ(1, semantics_manager_.CommitCount());
442 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
443 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
444 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
445 EXPECT_TRUE(fuchsia_node.has_states());
446 const auto& states = fuchsia_node.states();
447 EXPECT_TRUE(states.has_checked_state());
448 EXPECT_EQ(states.checked_state(),
449 fuchsia::accessibility::semantics::CheckedState::NONE);
450 EXPECT_TRUE(states.has_selected());
451 EXPECT_TRUE(states.selected());
453 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
454 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
462 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
465 EXPECT_EQ(0, semantics_manager_.DeleteCount());
466 EXPECT_EQ(1, semantics_manager_.UpdateCount());
467 EXPECT_EQ(1, semantics_manager_.CommitCount());
468 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
469 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
470 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
471 EXPECT_TRUE(fuchsia_node.has_states());
472 const auto& states = fuchsia_node.states();
473 EXPECT_TRUE(states.has_toggled_state());
474 EXPECT_EQ(states.toggled_state(),
475 fuchsia::accessibility::semantics::ToggledState::ON);
477 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
478 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
485 node0.
value =
"value";
487 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
490 EXPECT_EQ(0, semantics_manager_.DeleteCount());
491 EXPECT_EQ(1, semantics_manager_.UpdateCount());
492 EXPECT_EQ(1, semantics_manager_.CommitCount());
493 EXPECT_EQ(1U, semantics_manager_.LastUpdatedNodes().size());
494 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
495 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
496 EXPECT_TRUE(fuchsia_node.has_states());
497 const auto& states = fuchsia_node.states();
498 EXPECT_TRUE(states.has_enabled_state());
499 EXPECT_EQ(states.enabled_state(),
500 fuchsia::accessibility::semantics::EnabledState::ENABLED);
501 EXPECT_TRUE(states.has_value());
502 EXPECT_EQ(states.value(), node0.
value);
504 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
505 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
513 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.25f);
515 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
516 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
517 EXPECT_EQ(fuchsia_node.transform().matrix[0], 0.8f);
518 EXPECT_EQ(fuchsia_node.transform().matrix[5], 0.8f);
519 EXPECT_EQ(fuchsia_node.transform().matrix[10], 1.f);
533 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
536 EXPECT_EQ(0, semantics_manager_.DeleteCount());
537 EXPECT_EQ(1, semantics_manager_.UpdateCount());
538 EXPECT_EQ(1, semantics_manager_.CommitCount());
539 EXPECT_EQ(1u, semantics_manager_.LastUpdatedNodes().size());
540 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
541 EXPECT_EQ(fuchsia_node.node_id(),
static_cast<unsigned int>(node0.
id));
542 EXPECT_TRUE(fuchsia_node.has_states());
543 const auto& states = fuchsia_node.states();
544 EXPECT_TRUE(states.has_checked_state());
545 EXPECT_EQ(states.checked_state(),
546 fuchsia::accessibility::semantics::CheckedState::NONE);
547 EXPECT_TRUE(states.has_selected());
548 EXPECT_FALSE(states.selected());
549 EXPECT_FALSE(states.has_hidden());
551 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
552 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
564 accessibility_bridge_->AddSemanticsNodeUpdate({{0, node0}}, 1.f);
567 EXPECT_EQ(0, semantics_manager_.DeleteCount());
568 EXPECT_EQ(1, semantics_manager_.UpdateCount());
569 EXPECT_EQ(1, semantics_manager_.CommitCount());
570 EXPECT_EQ(1u, semantics_manager_.LastUpdatedNodes().size());
571 const auto& fuchsia_node = semantics_manager_.LastUpdatedNodes().at(0u);
572 EXPECT_EQ(fuchsia_node.actions().size(), 5u);
573 EXPECT_EQ(fuchsia_node.actions().at(0u),
574 fuchsia::accessibility::semantics::Action::DEFAULT);
575 EXPECT_EQ(fuchsia_node.actions().at(1u),
576 fuchsia::accessibility::semantics::Action::SECONDARY);
577 EXPECT_EQ(fuchsia_node.actions().at(2u),
578 fuchsia::accessibility::semantics::Action::SHOW_ON_SCREEN);
579 EXPECT_EQ(fuchsia_node.actions().at(3u),
580 fuchsia::accessibility::semantics::Action::INCREMENT);
581 EXPECT_EQ(fuchsia_node.actions().at(4u),
582 fuchsia::accessibility::semantics::Action::DECREMENT);
596 std::string(fuchsia::accessibility::semantics::MAX_LABEL_SIZE + 1,
'2');
601 accessibility_bridge_->AddSemanticsNodeUpdate(
611 EXPECT_EQ(0, semantics_manager_.DeleteCount());
612 EXPECT_EQ(1, semantics_manager_.UpdateCount());
613 EXPECT_EQ(1, semantics_manager_.CommitCount());
614 EXPECT_EQ(3U, semantics_manager_.LastUpdatedNodes().size());
616 std::find_if(semantics_manager_.LastUpdatedNodes().begin(),
617 semantics_manager_.LastUpdatedNodes().end(),
618 [
id =
static_cast<uint32_t
>(bad_node.
id)](
619 fuchsia::accessibility::semantics::Node
const& node) {
620 return node.node_id() == id;
622 ASSERT_NE(trimmed_node, semantics_manager_.LastUpdatedNodes().end());
623 ASSERT_TRUE(trimmed_node->has_attributes());
625 trimmed_node->attributes().label(),
626 std::string(fuchsia::accessibility::semantics::MAX_LABEL_SIZE,
'2'));
627 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
628 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
642 std::string(fuchsia::accessibility::semantics::MAX_LABEL_SIZE + 1,
'2');
647 accessibility_bridge_->AddSemanticsNodeUpdate(
657 EXPECT_EQ(0, semantics_manager_.DeleteCount());
658 EXPECT_EQ(1, semantics_manager_.UpdateCount());
659 EXPECT_EQ(1, semantics_manager_.CommitCount());
660 EXPECT_EQ(3U, semantics_manager_.LastUpdatedNodes().size());
662 std::find_if(semantics_manager_.LastUpdatedNodes().begin(),
663 semantics_manager_.LastUpdatedNodes().end(),
664 [
id =
static_cast<uint32_t
>(bad_node.
id)](
665 fuchsia::accessibility::semantics::Node
const& node) {
666 return node.node_id() == id;
668 ASSERT_NE(trimmed_node, semantics_manager_.LastUpdatedNodes().end());
669 ASSERT_TRUE(trimmed_node->has_attributes());
671 trimmed_node->attributes().secondary_label(),
672 std::string(fuchsia::accessibility::semantics::MAX_LABEL_SIZE,
'2'));
673 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
674 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
688 std::string(fuchsia::accessibility::semantics::MAX_VALUE_SIZE + 1,
'2');
693 accessibility_bridge_->AddSemanticsNodeUpdate(
702 EXPECT_EQ(0, semantics_manager_.DeleteCount());
703 EXPECT_EQ(1, semantics_manager_.UpdateCount());
704 EXPECT_EQ(1, semantics_manager_.CommitCount());
705 EXPECT_EQ(3U, semantics_manager_.LastUpdatedNodes().size());
707 std::find_if(semantics_manager_.LastUpdatedNodes().begin(),
708 semantics_manager_.LastUpdatedNodes().end(),
709 [
id =
static_cast<uint32_t
>(bad_node.
id)](
710 fuchsia::accessibility::semantics::Node
const& node) {
711 return node.node_id() == id;
713 ASSERT_NE(trimmed_node, semantics_manager_.LastUpdatedNodes().end());
714 ASSERT_TRUE(trimmed_node->has_states());
716 trimmed_node->states().value(),
717 std::string(fuchsia::accessibility::semantics::MAX_VALUE_SIZE,
'2'));
718 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
719 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
730 std::string(fuchsia::accessibility::semantics::MAX_LABEL_SIZE,
'1');
743 std::string(fuchsia::accessibility::semantics::MAX_VALUE_SIZE,
'4');
750 accessibility_bridge_->AddSemanticsNodeUpdate(
762 EXPECT_EQ(0, semantics_manager_.DeleteCount());
763 EXPECT_EQ(2, semantics_manager_.UpdateCount());
764 EXPECT_EQ(1, semantics_manager_.CommitCount());
765 EXPECT_EQ(2U, semantics_manager_.LastUpdatedNodes().size());
766 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
767 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
776 accessibility_bridge_->AddSemanticsNodeUpdate(
783 EXPECT_EQ(0, semantics_manager_.DeleteCount());
784 EXPECT_EQ(1, semantics_manager_.UpdateCount());
785 EXPECT_EQ(1, semantics_manager_.CommitCount());
786 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
787 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
795 accessibility_bridge_->AddSemanticsNodeUpdate(
803 EXPECT_EQ(0, semantics_manager_.DeleteCount());
804 EXPECT_EQ(2, semantics_manager_.UpdateCount());
805 EXPECT_EQ(2, semantics_manager_.CommitCount());
806 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
807 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
817 const int32_t child_nodes = 100;
818 const int32_t leaf_nodes = 100;
819 for (int32_t
i = 1;
i < child_nodes + 1;
i++) {
824 for (int32_t j = 0; j < leaf_nodes; j++) {
826 int id = (
i * child_nodes) + ((j + 1) * leaf_nodes);
828 leaf_node.
label =
"A relatively simple label";
831 update.insert(std::make_pair(
id, std::move(leaf_node)));
833 update.insert(std::make_pair(
i, std::move(node)));
836 update.insert(std::make_pair(0, std::move(node0)));
841 semantics_manager_.SetShouldHoldCommitResponse(
true);
842 accessibility_bridge_->AddSemanticsNodeUpdate(update, 1.f);
845 EXPECT_EQ(0, semantics_manager_.DeleteCount());
847 EXPECT_TRUE(6 <= semantics_manager_.UpdateCount() &&
848 semantics_manager_.UpdateCount() <= 12);
849 EXPECT_EQ(1, semantics_manager_.CommitCount());
850 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
851 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
853 int next_update_count = semantics_manager_.UpdateCount() + 1;
857 accessibility_bridge_->AddSemanticsNodeUpdate(
865 EXPECT_EQ(0, semantics_manager_.DeleteCount());
867 semantics_manager_.InvokeCommitCallback();
870 EXPECT_EQ(1, semantics_manager_.DeleteCount());
871 EXPECT_EQ(next_update_count, semantics_manager_.UpdateCount());
872 EXPECT_EQ(2, semantics_manager_.CommitCount());
873 EXPECT_FALSE(semantics_manager_.DeleteOverflowed());
874 EXPECT_FALSE(semantics_manager_.UpdateOverflowed());
880 node0.
rect.setLTRB(0, 0, 100, 100);
885 node1.
rect.setLTRB(10, 10, 20, 20);
891 node2.
rect.setLTRB(25, 10, 45, 20);
893 node2.
label =
"label";
897 node3.
rect.setLTRB(10, 25, 20, 45);
904 node4.
rect.setLTRB(10, 10, 20, 20);
911 accessibility_bridge_->AddSemanticsNodeUpdate(
922 uint32_t hit_node_id;
923 auto callback = [&hit_node_id](fuchsia::accessibility::semantics::Hit hit) {
924 EXPECT_TRUE(hit.has_node_id());
925 hit_node_id = hit.node_id();
934 accessibility_bridge_->HitTest({1, 1},
callback);
935 EXPECT_EQ(hit_node_id, 0u);
936 accessibility_bridge_->HitTest({15, 15},
callback);
937 EXPECT_EQ(hit_node_id, 1u);
938 accessibility_bridge_->HitTest({30, 15},
callback);
939 EXPECT_EQ(hit_node_id, 2u);
940 accessibility_bridge_->HitTest({15, 30},
callback);
941 EXPECT_EQ(hit_node_id, 3u);
942 accessibility_bridge_->HitTest({30, 30},
callback);
943 EXPECT_EQ(hit_node_id, 4u);
949 node0.
rect.setLTRB(0, 0, 100, 100);
953 node1.
rect.setLTRB(10, 10, 20, 20);
960 accessibility_bridge_->AddSemanticsNodeUpdate(
971 uint32_t hit_node_id;
972 auto callback = [&hit_node_id](fuchsia::accessibility::semantics::Hit hit) {
973 EXPECT_TRUE(hit.has_node_id());
974 hit_node_id = hit.node_id();
976 accessibility_bridge_->HitTest({15, 15},
callback);
977 EXPECT_EQ(hit_node_id, 0u);
983 node0.
rect.setLTRB(0, 0, 100, 100);
987 node1.
rect.setLTRB(10, 10, 60, 60);
991 node2.
rect.setLTRB(50, 50, 100, 100);
997 accessibility_bridge_->AddSemanticsNodeUpdate(
1006 uint32_t hit_node_id;
1007 auto callback = [&hit_node_id](fuchsia::accessibility::semantics::Hit hit) {
1008 EXPECT_TRUE(hit.has_node_id());
1009 hit_node_id = hit.node_id();
1012 accessibility_bridge_->HitTest({55, 55},
callback);
1013 EXPECT_EQ(hit_node_id, 2u);
1021 node0.
rect.setLTRB(0, 0, 100, 100);
1025 node1.
rect.setLTRB(0, 0, 100, 100);
1030 node2.
rect.setLTRB(25, 10, 45, 20);
1036 accessibility_bridge_->AddSemanticsNodeUpdate(
1045 uint32_t hit_node_id;
1046 auto callback = [&hit_node_id](fuchsia::accessibility::semantics::Hit hit) {
1047 EXPECT_TRUE(hit.has_node_id());
1048 hit_node_id = hit.node_id();
1051 accessibility_bridge_->HitTest({30, 15},
callback);
1052 EXPECT_EQ(hit_node_id, 2u);
1065 accessibility_bridge_->AddSemanticsNodeUpdate(
1073 auto handled_callback = [](
bool handled) { EXPECT_TRUE(handled); };
1074 auto unhandled_callback = [](
bool handled) { EXPECT_FALSE(handled); };
1076 accessibility_bridge_->OnAccessibilityActionRequested(
1077 0u, fuchsia::accessibility::semantics::Action::DEFAULT, handled_callback);
1078 EXPECT_EQ(accessibility_delegate_.actions.size(), 1u);
1079 EXPECT_EQ(accessibility_delegate_.actions.back(),
1082 accessibility_bridge_->OnAccessibilityActionRequested(
1083 0u, fuchsia::accessibility::semantics::Action::SECONDARY,
1085 EXPECT_EQ(accessibility_delegate_.actions.size(), 2u);
1086 EXPECT_EQ(accessibility_delegate_.actions.back(),
1089 accessibility_bridge_->OnAccessibilityActionRequested(
1090 0u, fuchsia::accessibility::semantics::Action::SET_FOCUS,
1091 unhandled_callback);
1092 EXPECT_EQ(accessibility_delegate_.actions.size(), 2u);
1094 accessibility_bridge_->OnAccessibilityActionRequested(
1095 0u, fuchsia::accessibility::semantics::Action::SET_VALUE,
1096 unhandled_callback);
1097 EXPECT_EQ(accessibility_delegate_.actions.size(), 2u);
1099 accessibility_bridge_->OnAccessibilityActionRequested(
1100 0u, fuchsia::accessibility::semantics::Action::SHOW_ON_SCREEN,
1102 EXPECT_EQ(accessibility_delegate_.actions.size(), 3u);
1103 EXPECT_EQ(accessibility_delegate_.actions.back(),
1106 accessibility_bridge_->OnAccessibilityActionRequested(
1107 2u, fuchsia::accessibility::semantics::Action::DEFAULT,
1108 unhandled_callback);
1109 EXPECT_EQ(accessibility_delegate_.actions.size(), 3u);
1111 accessibility_bridge_->OnAccessibilityActionRequested(
1112 0u, fuchsia::accessibility::semantics::Action::INCREMENT,
1114 EXPECT_EQ(accessibility_delegate_.actions.size(), 4u);
1115 EXPECT_EQ(accessibility_delegate_.actions.back(),
1118 accessibility_bridge_->OnAccessibilityActionRequested(
1119 0u, fuchsia::accessibility::semantics::Action::DECREMENT,
1121 EXPECT_EQ(accessibility_delegate_.actions.size(), 5u);
1122 EXPECT_EQ(accessibility_delegate_.actions.back(),
1131 node0.
label =
"node0";
1132 node0.
hint =
"node0_hint";
1133 node0.
value =
"value";
1137 node0.
rect.setLTRB(0, 0, 100, 100);
1138 updates.emplace(0, node0);
1145 updates.emplace(1, node1);
1147 accessibility_bridge_->AddSemanticsNodeUpdate(std::move(updates), 1.f);
1150 fpromise::result<inspect::Hierarchy> hierarchy;
1151 ASSERT_FALSE(hierarchy.is_ok());
1152 RunPromiseToCompletion(
1153 inspect::ReadFromInspector(*inspector_)
1154 .then([&hierarchy](fpromise::result<inspect::Hierarchy>& result) {
1155 hierarchy = std::move(result);
1157 ASSERT_TRUE(hierarchy.is_ok());
1159 auto tree_inspect_hierarchy = hierarchy.value().GetByPath({
"test_node"});
1160 ASSERT_NE(tree_inspect_hierarchy,
nullptr);
1166 const auto& root = tree_inspect_hierarchy->children();
1167 ASSERT_EQ(root.size(), 1u);
1168 EXPECT_EQ(root[0].
name(),
"semantic_tree_root");
1169 const auto& child = root[0].children();
1170 ASSERT_EQ(child.size(), 1u);
1171 EXPECT_EQ(child[0].
name(),
"node_1");