Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: content/browser/accessibility/browser_accessibility_manager_unittest.cc

Issue 2191833003: Use text affinity to return correct accessible line boundaries. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bug in browser_accessibility_win.cc Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_manager_unittest.cc
diff --git a/content/browser/accessibility/browser_accessibility_manager_unittest.cc b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
index 75342b4edfa565b4714efa2897e9e339576452c4..805edf830ff263f921ea139d475bfbe5ebd68650 100644
--- a/content/browser/accessibility/browser_accessibility_manager_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_unittest.cc
@@ -1494,4 +1494,51 @@ TEST(BrowserAccessibilityManagerTest, DeletingFocusedNodeDoesNotCrash2) {
ASSERT_EQ(3, manager->GetFocus()->GetId());
}
+TEST(BrowserAccessibilityManagerTest, LineStartBoundary) {
+ ui::AXNodeData root;
+ root.id = 1;
+ root.role = ui::AX_ROLE_ROOT_WEB_AREA;
+
+ ui::AXNodeData static_text;
+ static_text.id = 2;
+ static_text.SetName("1-2-3-4");
+ static_text.role = ui::AX_ROLE_STATIC_TEXT;
+ root.child_ids.push_back(2);
+
+ ui::AXNodeData inline_text1;
+ inline_text1.id = 3;
+ inline_text1.SetName("1-2-");
+ inline_text1.role = ui::AX_ROLE_INLINE_TEXT_BOX;
+ static_text.child_ids.push_back(3);
+
+ ui::AXNodeData inline_text2;
+ inline_text2.id = 4;
+ inline_text2.SetName("3-4");
+ inline_text2.role = ui::AX_ROLE_INLINE_TEXT_BOX;
+ static_text.child_ids.push_back(4);
+
+ std::unique_ptr<BrowserAccessibilityManager> manager(
+ BrowserAccessibilityManager::Create(
+ MakeAXTreeUpdate(root, static_text, inline_text1, inline_text2),
+ nullptr, new CountedBrowserAccessibilityFactory()));
+
+ BrowserAccessibility* root_accessible = manager->GetRoot();
+ ASSERT_NE(nullptr, root_accessible);
+ BrowserAccessibility* static_text_accessible =
+ root_accessible->PlatformGetChild(0);
+ ASSERT_NE(nullptr, static_text_accessible);
+
+ // If the affinity is downstream, check that we get the second line.
+ ASSERT_EQ(4, static_text_accessible->GetLineStartBoundary(
+ 4, ui::BACKWARDS_DIRECTION, ui::AX_TEXT_AFFINITY_DOWNSTREAM));
+ ASSERT_EQ(7, static_text_accessible->GetLineStartBoundary(
+ 4, ui::FORWARDS_DIRECTION, ui::AX_TEXT_AFFINITY_DOWNSTREAM));
+
+ // If the affinity is upstream, check that we get the second line.
+ ASSERT_EQ(0, static_text_accessible->GetLineStartBoundary(
+ 4, ui::BACKWARDS_DIRECTION, ui::AX_TEXT_AFFINITY_UPSTREAM));
+ ASSERT_EQ(4, static_text_accessible->GetLineStartBoundary(
+ 4, ui::FORWARDS_DIRECTION, ui::AX_TEXT_AFFINITY_UPSTREAM));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698