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

Unified Diff: chrome/browser/accessibility/browser_accessibility_win_unittest.cc

Issue 3550017: Implement additional IAccessibleText methods to return the nearest... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 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
« no previous file with comments | « chrome/browser/accessibility/browser_accessibility_win.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/accessibility/browser_accessibility_win_unittest.cc
===================================================================
--- chrome/browser/accessibility/browser_accessibility_win_unittest.cc (revision 61950)
+++ chrome/browser/accessibility/browser_accessibility_win_unittest.cc (working copy)
@@ -274,3 +274,88 @@
delete manager;
ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_);
}
+
+TEST_F(BrowserAccessibilityTest, TestTextBoundaries) {
+ WebAccessibility text1;
+ text1.id = 11;
+ text1.role = WebAccessibility::ROLE_TEXT_FIELD;
+ text1.state = 0;
+ text1.value = L"One two three.\nFour five six.";
+
+ WebAccessibility root;
+ root.id = 1;
+ root.role = WebAccessibility::ROLE_DOCUMENT;
+ root.state = 0;
+ root.children.push_back(text1);
+
+ CountedBrowserAccessibility::global_obj_count_ = 0;
+ BrowserAccessibilityManager* manager = BrowserAccessibilityManager::Create(
+ GetDesktopWindow(), root, NULL,
+ new CountedBrowserAccessibilityFactory());
+ ASSERT_EQ(2, CountedBrowserAccessibility::global_obj_count_);
+
+ BrowserAccessibilityWin* root_obj =
+ static_cast<BrowserAccessibilityWin*>(manager->GetRoot());
Chris Guillory 2010/10/08 17:15:06 You can avoid a cast here by using toBrowserAccess
+ BrowserAccessibilityWin* text1_obj =
Chris Guillory 2010/10/08 17:15:06 Optional: It might be interesting to see if you co
+ static_cast<BrowserAccessibilityWin*>(root_obj->GetChild(0));
+
+ BSTR text;
+ long start;
+ long end;
+
+ long text1_len;
+ ASSERT_EQ(S_OK, text1_obj->get_nCharacters(&text1_len));
+
+ ASSERT_EQ(S_OK, text1_obj->get_text(0, text1_len, &text));
+ ASSERT_EQ(text, text1.value);
+ SysFreeString(text);
+
+ ASSERT_EQ(S_OK, text1_obj->get_text(0, 4, &text));
+ ASSERT_EQ(text, std::wstring(L"One "));
+ SysFreeString(text);
+
+ ASSERT_EQ(S_OK, text1_obj->get_textAtOffset(
+ 1, IA2_TEXT_BOUNDARY_CHAR, &start, &end, &text));
+ ASSERT_EQ(start, 1);
+ ASSERT_EQ(end, 2);
+ ASSERT_EQ(text, std::wstring(L"n"));
+ SysFreeString(text);
+
+ ASSERT_EQ(S_FALSE, text1_obj->get_textAtOffset(
+ text1_len, IA2_TEXT_BOUNDARY_CHAR, &start, &end, &text));
+ ASSERT_EQ(start, text1_len);
+ ASSERT_EQ(end, text1_len);
+
+ ASSERT_EQ(S_OK, text1_obj->get_textAtOffset(
+ 1, IA2_TEXT_BOUNDARY_WORD, &start, &end, &text));
+ ASSERT_EQ(start, 0);
+ ASSERT_EQ(end, 3);
+ ASSERT_EQ(text, std::wstring(L"One"));
+ SysFreeString(text);
+
+ ASSERT_EQ(S_OK, text1_obj->get_textAtOffset(
+ 6, IA2_TEXT_BOUNDARY_WORD, &start, &end, &text));
+ ASSERT_EQ(start, 4);
+ ASSERT_EQ(end, 7);
+ ASSERT_EQ(text, std::wstring(L"two"));
+ SysFreeString(text);
+
+ ASSERT_EQ(S_OK, text1_obj->get_textAtOffset(
+ text1_len, IA2_TEXT_BOUNDARY_WORD, &start, &end, &text));
+ ASSERT_EQ(start, 25);
+ ASSERT_EQ(end, 29);
+ ASSERT_EQ(text, std::wstring(L"six."));
+ SysFreeString(text);
+
+ ASSERT_EQ(S_OK, text1_obj->get_textAtOffset(
+ 1, IA2_TEXT_BOUNDARY_LINE, &start, &end, &text));
+ ASSERT_EQ(start, 0);
+ ASSERT_EQ(end, 13);
+ ASSERT_EQ(text, std::wstring(L"One two three"));
+ SysFreeString(text);
+
+ // Delete the manager and test that all BrowserAccessibility instances are
+ // deleted.
+ delete manager;
+ ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_);
+}
« no previous file with comments | « chrome/browser/accessibility/browser_accessibility_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698