| 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 <atlbase.h> | 5 #include <atlbase.h> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 | 343 |
| 344 void AccessibleChecker::CheckIA2Role(IAccessible* accessible) { | 344 void AccessibleChecker::CheckIA2Role(IAccessible* accessible) { |
| 345 base::win::ScopedComPtr<IAccessible2> accessible2; | 345 base::win::ScopedComPtr<IAccessible2> accessible2; |
| 346 HRESULT hr = QueryIAccessible2(accessible, accessible2.Receive()); | 346 HRESULT hr = QueryIAccessible2(accessible, accessible2.Receive()); |
| 347 ASSERT_EQ(S_OK, hr); | 347 ASSERT_EQ(S_OK, hr); |
| 348 long ia2_role = 0; | 348 long ia2_role = 0; |
| 349 hr = accessible2->role(&ia2_role); | 349 hr = accessible2->role(&ia2_role); |
| 350 ASSERT_EQ(S_OK, hr); | 350 ASSERT_EQ(S_OK, hr); |
| 351 EXPECT_EQ(ia2_role_, ia2_role); | 351 EXPECT_EQ(ia2_role_, ia2_role); |
| 352 if (ia2_role_ != ia2_role) { | 352 if (ia2_role_ != ia2_role) { |
| 353 LOG(ERROR) << "Expected ia2 role: " << IAccessible2RoleToString(ia2_role_); | 353 LOG(ERROR) << "Expected ia2 role: " << |
| 354 LOG(ERROR) << "Got ia2 role: " << IAccessible2RoleToString(ia2_role); | 354 content::IAccessible2RoleToString(ia2_role_); |
| 355 LOG(ERROR) << "Got ia2 role: " << |
| 356 content::IAccessible2RoleToString(ia2_role); |
| 355 } | 357 } |
| 356 } | 358 } |
| 357 | 359 |
| 358 void AccessibleChecker::CheckAccessibleValue(IAccessible* accessible) { | 360 void AccessibleChecker::CheckAccessibleValue(IAccessible* accessible) { |
| 359 CComBSTR value; | 361 CComBSTR value; |
| 360 HRESULT hr = | 362 HRESULT hr = |
| 361 accessible->get_accValue(CreateI4Variant(CHILDID_SELF), &value); | 363 accessible->get_accValue(CreateI4Variant(CHILDID_SELF), &value); |
| 362 EXPECT_EQ(S_OK, hr); | 364 EXPECT_EQ(S_OK, hr); |
| 363 | 365 |
| 364 // Test that the correct string was returned. | 366 // Test that the correct string was returned. |
| 365 EXPECT_STREQ(value_.c_str(), | 367 EXPECT_STREQ(value_.c_str(), |
| 366 wstring(value.m_str, SysStringLen(value)).c_str()); | 368 wstring(value.m_str, SysStringLen(value)).c_str()); |
| 367 } | 369 } |
| 368 | 370 |
| 369 void AccessibleChecker::CheckAccessibleState(IAccessible* accessible) { | 371 void AccessibleChecker::CheckAccessibleState(IAccessible* accessible) { |
| 370 if (state_ < 0) | 372 if (state_ < 0) |
| 371 return; | 373 return; |
| 372 | 374 |
| 373 VARIANT var_state = {0}; | 375 VARIANT var_state = {0}; |
| 374 HRESULT hr = | 376 HRESULT hr = |
| 375 accessible->get_accState(CreateI4Variant(CHILDID_SELF), &var_state); | 377 accessible->get_accState(CreateI4Variant(CHILDID_SELF), &var_state); |
| 376 EXPECT_EQ(S_OK, hr); | 378 EXPECT_EQ(S_OK, hr); |
| 377 ASSERT_EQ(VT_I4, V_VT(&var_state)); | 379 ASSERT_EQ(VT_I4, V_VT(&var_state)); |
| 378 EXPECT_EQ(state_, V_I4(&var_state)); | 380 EXPECT_EQ(state_, V_I4(&var_state)); |
| 379 if (state_ != V_I4(&var_state)) { | 381 if (state_ != V_I4(&var_state)) { |
| 380 LOG(ERROR) << "Expected state: " << IAccessibleStateToString(state_); | 382 LOG(ERROR) << "Expected state: " << |
| 381 LOG(ERROR) << "Got state: " << IAccessibleStateToString(V_I4(&var_state)); | 383 content::IAccessibleStateToString(state_); |
| 384 LOG(ERROR) << "Got state: " << |
| 385 content::IAccessibleStateToString(V_I4(&var_state)); |
| 382 } | 386 } |
| 383 } | 387 } |
| 384 | 388 |
| 385 void AccessibleChecker::CheckAccessibleChildren(IAccessible* parent) { | 389 void AccessibleChecker::CheckAccessibleChildren(IAccessible* parent) { |
| 386 LONG child_count = 0; | 390 LONG child_count = 0; |
| 387 HRESULT hr = parent->get_accChildCount(&child_count); | 391 HRESULT hr = parent->get_accChildCount(&child_count); |
| 388 EXPECT_EQ(S_OK, hr); | 392 EXPECT_EQ(S_OK, hr); |
| 389 ASSERT_EQ(child_count, children_.size()); | 393 ASSERT_EQ(child_count, children_.size()); |
| 390 | 394 |
| 391 auto_ptr<VARIANT> child_array(new VARIANT[child_count]); | 395 auto_ptr<VARIANT> child_array(new VARIANT[child_count]); |
| 392 LONG obtained_count = 0; | 396 LONG obtained_count = 0; |
| 393 hr = AccessibleChildren(parent, 0, child_count, | 397 hr = AccessibleChildren(parent, 0, child_count, |
| 394 child_array.get(), &obtained_count); | 398 child_array.get(), &obtained_count); |
| 395 ASSERT_EQ(S_OK, hr); | 399 ASSERT_EQ(S_OK, hr); |
| 396 ASSERT_EQ(child_count, obtained_count); | 400 ASSERT_EQ(child_count, obtained_count); |
| 397 | 401 |
| 398 VARIANT* child = child_array.get(); | 402 VARIANT* child = child_array.get(); |
| 399 for (AccessibleCheckerVector::iterator child_checker = children_.begin(); | 403 for (AccessibleCheckerVector::iterator child_checker = children_.begin(); |
| 400 child_checker != children_.end(); | 404 child_checker != children_.end(); |
| 401 ++child_checker, ++child) { | 405 ++child_checker, ++child) { |
| 402 base::win::ScopedComPtr<IAccessible> child_accessible; | 406 base::win::ScopedComPtr<IAccessible> child_accessible; |
| 403 child_accessible.Attach(GetAccessibleFromResultVariant(parent, child)); | 407 child_accessible.Attach(GetAccessibleFromResultVariant(parent, child)); |
| 404 ASSERT_TRUE(child_accessible.get()); | 408 ASSERT_TRUE(child_accessible.get()); |
| 405 (*child_checker)->CheckAccessible(child_accessible); | 409 (*child_checker)->CheckAccessible(child_accessible); |
| 406 } | 410 } |
| 407 } | 411 } |
| 408 | 412 |
| 409 string16 AccessibleChecker::RoleVariantToString(VARIANT* role_variant) { | 413 string16 AccessibleChecker::RoleVariantToString(VARIANT* role_variant) { |
| 410 if (V_VT(role_variant) == VT_I4) | 414 if (V_VT(role_variant) == VT_I4) |
| 411 return IAccessibleRoleToString(V_I4(role_variant)); | 415 return content::IAccessibleRoleToString(V_I4(role_variant)); |
| 412 else if (V_VT(role_variant) == VT_BSTR) | 416 else if (V_VT(role_variant) == VT_BSTR) |
| 413 return string16(V_BSTR(role_variant), SysStringLen(V_BSTR(role_variant))); | 417 return string16(V_BSTR(role_variant), SysStringLen(V_BSTR(role_variant))); |
| 414 return string16(); | 418 return string16(); |
| 415 } | 419 } |
| 416 | 420 |
| 417 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, | 421 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, |
| 418 TestBusyAccessibilityTree) { | 422 TestBusyAccessibilityTree) { |
| 419 // The initial accessible returned should have state STATE_SYSTEM_BUSY while | 423 // The initial accessible returned should have state STATE_SYSTEM_BUSY while |
| 420 // the accessibility tree is being requested from the renderer. | 424 // the accessibility tree is being requested from the renderer. |
| 421 AccessibleChecker document1_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 425 AccessibleChecker document1_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
| (...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 | 834 |
| 831 // Check the browser's copy of the renderer accessibility tree. | 835 // Check the browser's copy of the renderer accessibility tree. |
| 832 AccessibleChecker grouping1_checker(L"", ROLE_SYSTEM_GROUPING, L""); | 836 AccessibleChecker grouping1_checker(L"", ROLE_SYSTEM_GROUPING, L""); |
| 833 AccessibleChecker grouping2_checker(L"", ROLE_SYSTEM_GROUPING, L""); | 837 AccessibleChecker grouping2_checker(L"", ROLE_SYSTEM_GROUPING, L""); |
| 834 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); | 838 AccessibleChecker document_checker(L"", ROLE_SYSTEM_DOCUMENT, L""); |
| 835 document_checker.AppendExpectedChild(&grouping1_checker); | 839 document_checker.AppendExpectedChild(&grouping1_checker); |
| 836 document_checker.AppendExpectedChild(&grouping2_checker); | 840 document_checker.AppendExpectedChild(&grouping2_checker); |
| 837 document_checker.CheckAccessible(GetRendererAccessible()); | 841 document_checker.CheckAccessible(GetRendererAccessible()); |
| 838 } | 842 } |
| 839 } // namespace. | 843 } // namespace. |
| OLD | NEW |