OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
7 #include "base/win/scoped_bstr.h" | 7 #include "base/win/scoped_bstr.h" |
8 #include "base/win/scoped_comptr.h" | 8 #include "base/win/scoped_comptr.h" |
9 #include "base/win/scoped_variant.h" | 9 #include "base/win/scoped_variant.h" |
10 #include "content/browser/accessibility/browser_accessibility_manager.h" | 10 #include "content/browser/accessibility/browser_accessibility_manager.h" |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 ASSERT_EQ(S_OK, hr); | 212 ASSERT_EQ(S_OK, hr); |
213 | 213 |
214 base::win::ScopedComPtr<IAccessible> text_accessible; | 214 base::win::ScopedComPtr<IAccessible> text_accessible; |
215 hr = text_dispatch.QueryInterface(text_accessible.Receive()); | 215 hr = text_dispatch.QueryInterface(text_accessible.Receive()); |
216 ASSERT_EQ(S_OK, hr); | 216 ASSERT_EQ(S_OK, hr); |
217 | 217 |
218 base::win::ScopedVariant childid_self(CHILDID_SELF); | 218 base::win::ScopedVariant childid_self(CHILDID_SELF); |
219 base::win::ScopedBstr name; | 219 base::win::ScopedBstr name; |
220 hr = text_accessible->get_accName(childid_self, name.Receive()); | 220 hr = text_accessible->get_accName(childid_self, name.Receive()); |
221 ASSERT_EQ(S_OK, hr); | 221 ASSERT_EQ(S_OK, hr); |
222 EXPECT_EQ(L"old text", string16(name)); | 222 EXPECT_EQ(L"old text", base::string16(name)); |
223 name.Reset(); | 223 name.Reset(); |
224 | 224 |
225 text_dispatch.Release(); | 225 text_dispatch.Release(); |
226 text_accessible.Release(); | 226 text_accessible.Release(); |
227 | 227 |
228 // Notify the BrowserAccessibilityManager that the text child has changed. | 228 // Notify the BrowserAccessibilityManager that the text child has changed. |
229 AccessibilityNodeData text2; | 229 AccessibilityNodeData text2; |
230 text2.id = 2; | 230 text2.id = 2; |
231 text2.role = blink::WebAXRoleStaticText; | 231 text2.role = blink::WebAXRoleStaticText; |
232 text2.SetName("new text"); | 232 text2.SetName("new text"); |
(...skipping 10 matching lines...) Expand all Loading... |
243 // as its value. | 243 // as its value. |
244 hr = manager->GetRoot()->ToBrowserAccessibilityWin()->get_accChild( | 244 hr = manager->GetRoot()->ToBrowserAccessibilityWin()->get_accChild( |
245 one, text_dispatch.Receive()); | 245 one, text_dispatch.Receive()); |
246 ASSERT_EQ(S_OK, hr); | 246 ASSERT_EQ(S_OK, hr); |
247 | 247 |
248 hr = text_dispatch.QueryInterface(text_accessible.Receive()); | 248 hr = text_dispatch.QueryInterface(text_accessible.Receive()); |
249 ASSERT_EQ(S_OK, hr); | 249 ASSERT_EQ(S_OK, hr); |
250 | 250 |
251 hr = text_accessible->get_accName(childid_self, name.Receive()); | 251 hr = text_accessible->get_accName(childid_self, name.Receive()); |
252 ASSERT_EQ(S_OK, hr); | 252 ASSERT_EQ(S_OK, hr); |
253 EXPECT_EQ(L"new text", string16(name)); | 253 EXPECT_EQ(L"new text", base::string16(name)); |
254 | 254 |
255 text_dispatch.Release(); | 255 text_dispatch.Release(); |
256 text_accessible.Release(); | 256 text_accessible.Release(); |
257 | 257 |
258 // Delete the manager and test that all BrowserAccessibility instances are | 258 // Delete the manager and test that all BrowserAccessibility instances are |
259 // deleted. | 259 // deleted. |
260 manager.reset(); | 260 manager.reset(); |
261 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); | 261 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); |
262 } | 262 } |
263 | 263 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 BrowserAccessibilityWin* root_obj = | 347 BrowserAccessibilityWin* root_obj = |
348 manager->GetRoot()->ToBrowserAccessibilityWin(); | 348 manager->GetRoot()->ToBrowserAccessibilityWin(); |
349 BrowserAccessibilityWin* text1_obj = | 349 BrowserAccessibilityWin* text1_obj = |
350 root_obj->PlatformGetChild(0)->ToBrowserAccessibilityWin(); | 350 root_obj->PlatformGetChild(0)->ToBrowserAccessibilityWin(); |
351 | 351 |
352 long text1_len; | 352 long text1_len; |
353 ASSERT_EQ(S_OK, text1_obj->get_nCharacters(&text1_len)); | 353 ASSERT_EQ(S_OK, text1_obj->get_nCharacters(&text1_len)); |
354 | 354 |
355 base::win::ScopedBstr text; | 355 base::win::ScopedBstr text; |
356 ASSERT_EQ(S_OK, text1_obj->get_text(0, text1_len, text.Receive())); | 356 ASSERT_EQ(S_OK, text1_obj->get_text(0, text1_len, text.Receive())); |
357 ASSERT_EQ(text1_value, base::UTF16ToUTF8(string16(text))); | 357 ASSERT_EQ(text1_value, base::UTF16ToUTF8(base::string16(text))); |
358 text.Reset(); | 358 text.Reset(); |
359 | 359 |
360 ASSERT_EQ(S_OK, text1_obj->get_text(0, 4, text.Receive())); | 360 ASSERT_EQ(S_OK, text1_obj->get_text(0, 4, text.Receive())); |
361 ASSERT_STREQ(L"One ", text); | 361 ASSERT_STREQ(L"One ", text); |
362 text.Reset(); | 362 text.Reset(); |
363 | 363 |
364 long start; | 364 long start; |
365 long end; | 365 long end; |
366 ASSERT_EQ(S_OK, text1_obj->get_textAtOffset( | 366 ASSERT_EQ(S_OK, text1_obj->get_textAtOffset( |
367 1, IA2_TEXT_BOUNDARY_CHAR, &start, &end, text.Receive())); | 367 1, IA2_TEXT_BOUNDARY_CHAR, &start, &end, text.Receive())); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); | 445 ASSERT_EQ(3, CountedBrowserAccessibility::num_instances()); |
446 | 446 |
447 BrowserAccessibilityWin* root_obj = | 447 BrowserAccessibilityWin* root_obj = |
448 manager->GetRoot()->ToBrowserAccessibilityWin(); | 448 manager->GetRoot()->ToBrowserAccessibilityWin(); |
449 | 449 |
450 long text_len; | 450 long text_len; |
451 ASSERT_EQ(S_OK, root_obj->get_nCharacters(&text_len)); | 451 ASSERT_EQ(S_OK, root_obj->get_nCharacters(&text_len)); |
452 | 452 |
453 base::win::ScopedBstr text; | 453 base::win::ScopedBstr text; |
454 ASSERT_EQ(S_OK, root_obj->get_text(0, text_len, text.Receive())); | 454 ASSERT_EQ(S_OK, root_obj->get_text(0, text_len, text.Receive())); |
455 EXPECT_EQ(text1_name + text2_name, base::UTF16ToUTF8(string16(text))); | 455 EXPECT_EQ(text1_name + text2_name, base::UTF16ToUTF8(base::string16(text))); |
456 | 456 |
457 long hyperlink_count; | 457 long hyperlink_count; |
458 ASSERT_EQ(S_OK, root_obj->get_nHyperlinks(&hyperlink_count)); | 458 ASSERT_EQ(S_OK, root_obj->get_nHyperlinks(&hyperlink_count)); |
459 EXPECT_EQ(0, hyperlink_count); | 459 EXPECT_EQ(0, hyperlink_count); |
460 | 460 |
461 base::win::ScopedComPtr<IAccessibleHyperlink> hyperlink; | 461 base::win::ScopedComPtr<IAccessibleHyperlink> hyperlink; |
462 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(-1, hyperlink.Receive())); | 462 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(-1, hyperlink.Receive())); |
463 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(0, hyperlink.Receive())); | 463 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(0, hyperlink.Receive())); |
464 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(28, hyperlink.Receive())); | 464 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(28, hyperlink.Receive())); |
465 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(29, hyperlink.Receive())); | 465 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(29, hyperlink.Receive())); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 manager->GetRoot()->ToBrowserAccessibilityWin(); | 541 manager->GetRoot()->ToBrowserAccessibilityWin(); |
542 | 542 |
543 long text_len; | 543 long text_len; |
544 ASSERT_EQ(S_OK, root_obj->get_nCharacters(&text_len)); | 544 ASSERT_EQ(S_OK, root_obj->get_nCharacters(&text_len)); |
545 | 545 |
546 base::win::ScopedBstr text; | 546 base::win::ScopedBstr text; |
547 ASSERT_EQ(S_OK, root_obj->get_text(0, text_len, text.Receive())); | 547 ASSERT_EQ(S_OK, root_obj->get_text(0, text_len, text.Receive())); |
548 const std::string embed = base::UTF16ToUTF8( | 548 const std::string embed = base::UTF16ToUTF8( |
549 BrowserAccessibilityWin::kEmbeddedCharacter); | 549 BrowserAccessibilityWin::kEmbeddedCharacter); |
550 EXPECT_EQ(text1_name + embed + text2_name + embed, | 550 EXPECT_EQ(text1_name + embed + text2_name + embed, |
551 UTF16ToUTF8(string16(text))); | 551 UTF16ToUTF8(base::string16(text))); |
552 text.Reset(); | 552 text.Reset(); |
553 | 553 |
554 long hyperlink_count; | 554 long hyperlink_count; |
555 ASSERT_EQ(S_OK, root_obj->get_nHyperlinks(&hyperlink_count)); | 555 ASSERT_EQ(S_OK, root_obj->get_nHyperlinks(&hyperlink_count)); |
556 EXPECT_EQ(2, hyperlink_count); | 556 EXPECT_EQ(2, hyperlink_count); |
557 | 557 |
558 base::win::ScopedComPtr<IAccessibleHyperlink> hyperlink; | 558 base::win::ScopedComPtr<IAccessibleHyperlink> hyperlink; |
559 base::win::ScopedComPtr<IAccessibleText> hypertext; | 559 base::win::ScopedComPtr<IAccessibleText> hypertext; |
560 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(-1, hyperlink.Receive())); | 560 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(-1, hyperlink.Receive())); |
561 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(2, hyperlink.Receive())); | 561 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(2, hyperlink.Receive())); |
562 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(28, hyperlink.Receive())); | 562 EXPECT_EQ(E_INVALIDARG, root_obj->get_hyperlink(28, hyperlink.Receive())); |
563 | 563 |
564 EXPECT_EQ(S_OK, root_obj->get_hyperlink(0, hyperlink.Receive())); | 564 EXPECT_EQ(S_OK, root_obj->get_hyperlink(0, hyperlink.Receive())); |
565 EXPECT_EQ(S_OK, | 565 EXPECT_EQ(S_OK, |
566 hyperlink.QueryInterface<IAccessibleText>(hypertext.Receive())); | 566 hyperlink.QueryInterface<IAccessibleText>(hypertext.Receive())); |
567 EXPECT_EQ(S_OK, hypertext->get_text(0, 3, text.Receive())); | 567 EXPECT_EQ(S_OK, hypertext->get_text(0, 3, text.Receive())); |
568 EXPECT_STREQ(button1_text_name.c_str(), | 568 EXPECT_STREQ(button1_text_name.c_str(), |
569 base::UTF16ToUTF8(string16(text)).c_str()); | 569 base::UTF16ToUTF8(base::string16(text)).c_str()); |
570 text.Reset(); | 570 text.Reset(); |
571 hyperlink.Release(); | 571 hyperlink.Release(); |
572 hypertext.Release(); | 572 hypertext.Release(); |
573 | 573 |
574 EXPECT_EQ(S_OK, root_obj->get_hyperlink(1, hyperlink.Receive())); | 574 EXPECT_EQ(S_OK, root_obj->get_hyperlink(1, hyperlink.Receive())); |
575 EXPECT_EQ(S_OK, | 575 EXPECT_EQ(S_OK, |
576 hyperlink.QueryInterface<IAccessibleText>(hypertext.Receive())); | 576 hyperlink.QueryInterface<IAccessibleText>(hypertext.Receive())); |
577 EXPECT_EQ(S_OK, hypertext->get_text(0, 4, text.Receive())); | 577 EXPECT_EQ(S_OK, hypertext->get_text(0, 4, text.Receive())); |
578 EXPECT_STREQ(link1_text_name.c_str(), | 578 EXPECT_STREQ(link1_text_name.c_str(), |
579 base::UTF16ToUTF8(string16(text)).c_str()); | 579 base::UTF16ToUTF8(base::string16(text)).c_str()); |
580 text.Reset(); | 580 text.Reset(); |
581 hyperlink.Release(); | 581 hyperlink.Release(); |
582 hypertext.Release(); | 582 hypertext.Release(); |
583 | 583 |
584 long hyperlink_index; | 584 long hyperlink_index; |
585 EXPECT_EQ(E_FAIL, root_obj->get_hyperlinkIndex(0, &hyperlink_index)); | 585 EXPECT_EQ(E_FAIL, root_obj->get_hyperlinkIndex(0, &hyperlink_index)); |
586 EXPECT_EQ(-1, hyperlink_index); | 586 EXPECT_EQ(-1, hyperlink_index); |
587 EXPECT_EQ(E_FAIL, root_obj->get_hyperlinkIndex(28, &hyperlink_index)); | 587 EXPECT_EQ(E_FAIL, root_obj->get_hyperlinkIndex(28, &hyperlink_index)); |
588 EXPECT_EQ(-1, hyperlink_index); | 588 EXPECT_EQ(-1, hyperlink_index); |
589 EXPECT_EQ(S_OK, root_obj->get_hyperlinkIndex(14, &hyperlink_index)); | 589 EXPECT_EQ(S_OK, root_obj->get_hyperlinkIndex(14, &hyperlink_index)); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 // And the new child exists. | 674 // And the new child exists. |
675 EXPECT_EQ(blink::WebAXRoleButton, acc2_2->role()); | 675 EXPECT_EQ(blink::WebAXRoleButton, acc2_2->role()); |
676 EXPECT_EQ(3, acc2_2->renderer_id()); | 676 EXPECT_EQ(3, acc2_2->renderer_id()); |
677 | 677 |
678 // Ensure we properly cleaned up. | 678 // Ensure we properly cleaned up. |
679 manager.reset(); | 679 manager.reset(); |
680 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); | 680 ASSERT_EQ(0, CountedBrowserAccessibility::num_instances()); |
681 } | 681 } |
682 | 682 |
683 } // namespace content | 683 } // namespace content |
OLD | NEW |