15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <oleacc.h> 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/win/scoped_bstr.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/win/scoped_com_initializer.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/win/scoped_comptr.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/win/scoped_variant.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser_window.h" 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/ui/browser_window_testing_views.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/view_ids.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/frame/browser_view.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/views/toolbar_view.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/url_constants.h" 206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "chrome/grit/chromium_strings.h" 216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "chrome/grit/generated_resources.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/in_process_browser_test.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/ui_test_utils.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/accessibility/accessibility_types.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/win/atl_module.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/accessibility/native_view_accessibility_win.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using base::UTF16ToWide; 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BrowserViewsAccessibilityTest : public InProcessBrowserTest { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserViewsAccessibilityTest(); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~BrowserViewsAccessibilityTest(); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves an instance of BrowserWindowTesting. 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWindowTesting* GetBrowserWindowTesting(); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieve an instance of BrowserView. 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserView* GetBrowserView(); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves and initializes an instance of ToolbarView. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ToolbarView* GetToolbarView(); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves and initializes an instance of BookmarkBarView. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BookmarkBarView* GetBookmarkBarView(); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves and verifies the accessibility object for the given View. 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void TestViewAccessibilityObject(views::View* view, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::wstring name, 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 role); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Verifies MSAA Name and Role properties of the given IAccessible. 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void TestAccessibilityInfo(IAccessible* acc_obj, 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::wstring name, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 role); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::win::ScopedCOMInitializer com_initializer_; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(BrowserViewsAccessibilityTest); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserViewsAccessibilityTest::BrowserViewsAccessibilityTest() { 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::win::CreateATLModuleIfNeeded(); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserViewsAccessibilityTest::~BrowserViewsAccessibilityTest() { 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserWindowTesting* BrowserViewsAccessibilityTest::GetBrowserWindowTesting() { 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWindow* browser_window = browser()->window(); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return browser_window ? browser_window->GetBrowserWindowTesting() : NULL; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserView* BrowserViewsAccessibilityTest::GetBrowserView() { 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return BrowserView::GetBrowserViewForBrowser(browser()); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ToolbarView* BrowserViewsAccessibilityTest::GetToolbarView() { 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return browser_window_testing ? 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) browser_window_testing->GetToolbarView() : NULL; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BookmarkBarView* BrowserViewsAccessibilityTest::GetBookmarkBarView() { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return browser_window_testing ? 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) browser_window_testing->GetBookmarkBarView() : NULL; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BrowserViewsAccessibilityTest::TestViewAccessibilityObject( 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) views::View* view, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::wstring name, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 role) { 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(view != NULL); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestAccessibilityInfo(view->GetNativeViewAccessible(), name, role); 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BrowserViewsAccessibilityTest::TestAccessibilityInfo(IAccessible* acc_obj, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::wstring name, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 role) { 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Verify MSAA Name property. 105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::win::ScopedVariant childid_self(CHILDID_SELF); 106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::win::ScopedBstr acc_name; 107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASSERT_EQ(S_OK, acc_obj->get_accName(childid_self, acc_name.Receive())); 108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_EQ(name, base::string16(acc_name)); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Verify MSAA Role property. 111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::win::ScopedVariant acc_role; 112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ASSERT_EQ(S_OK, acc_obj->get_accRole(childid_self, acc_role.Receive())); 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(VT_I4, acc_role.type()); 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_EQ(role, V_I4(&acc_role)); 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for main window and verify accessibility info. 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestChromeWindowAccObj) { 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWindow* browser_window = browser()->window(); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(NULL != browser_window); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HWND hwnd = browser_window->GetNativeWindow(); 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(NULL != hwnd); 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get accessibility object. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::win::ScopedComPtr<IAccessible> acc_obj; 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HRESULT hr = ::AccessibleObjectFromWindow(hwnd, OBJID_WINDOW, IID_IAccessible, 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) reinterpret_cast<void**>(&acc_obj)); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_EQ(S_OK, hr); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(NULL != acc_obj); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 133f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); 134f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) std::wstring title = UTF16ToWide( 135f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) l10n_util::GetStringFUTF16(IDS_BROWSER_WINDOW_TITLE_FORMAT, 136f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::ASCIIToUTF16(url::kAboutBlankURL))); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestAccessibilityInfo(acc_obj, title, ROLE_SYSTEM_WINDOW); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for non client view and verify accessibility 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// info. 1427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// TODO(pkasting): Disabled pending resolution of whether this should be 1437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// ROLE_SYSTEM_CLIENT or ROLE_SYSTEM_WINDOW. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISABLED_TestNonClientViewAccObj) { 1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TestViewAccessibilityObject( 1477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch GetBrowserView()->GetWidget()->non_client_view(), 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)), 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_WINDOW); 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Retrieve accessibility object for browser root view and verify accessibility 1537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// info. 1547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// TODO(pkasting): Disabled pending resolution of whether this should be 1557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// ROLE_SYSTEM_WINDOW or ROLE_SYSTEM_APPLICATION, as well as what the name 1567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// should be. 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISABLED_TestBrowserRootViewAccObj) { 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 1607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch GetBrowserView()->frame()->GetRootView(), 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)), 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_APPLICATION); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for browser view and verify accessibility info. 1667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// TODO(pkasting): Disabled pending resolution of whether this object should 1677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// have an accessible name. 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISABLED_TestBrowserViewAccObj) { 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetBrowserView(), 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)), 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_CLIENT); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for toolbar view and verify accessibility info. 1777dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestToolbarViewAccObj) { 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView(), 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_TOOLBAR)), 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_TOOLBAR); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for Back button and verify accessibility info. 1857dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestBackButtonAccObj) { 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_BACK_BUTTON), 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_BACK)), 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_BUTTONDROPDOWN); 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for Forward button and verify accessibility 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// info. 1947dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestForwardButtonAccObj) { 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_FORWARD_BUTTON), 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_FORWARD)), 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_BUTTONDROPDOWN); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for Reload button and verify accessibility 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// info. 2037dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestReloadButtonAccObj) { 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_RELOAD_BUTTON), 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_RELOAD)), 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_PUSHBUTTON); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for Home button and verify accessibility info. 2117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestHomeButtonAccObj) { 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_HOME_BUTTON), 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_HOME)), 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_PUSHBUTTON); 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Retrieve accessibility object for Star button and verify accessibility info. 2197dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestStarButtonAccObj) { 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_STAR_BUTTON), 2227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_STAR)), 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_PUSHBUTTON); 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Retrieve accessibility object for Mic search button and verify accessibility 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// info. 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 2297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TestMicSearchButtonViewAccObj) { 2307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TestViewAccessibilityObject( 2317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch GetToolbarView()->GetViewByID(VIEW_ID_MIC_SEARCH_BUTTON), 2327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch UTF16ToWide(l10n_util::GetStringUTF16(IDS_TOOLTIP_MIC_SEARCH)), 2337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch ROLE_SYSTEM_PUSHBUTTON); 2347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 2357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Retrieve accessibility object for App menu button and verify accessibility 2377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// info. 2387dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestAppMenuAccObj) { 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetToolbarView()->GetViewByID(VIEW_ID_APP_MENU), 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_APP)), 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_BUTTONMENU); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Retrieve accessibility object for bookmark bar and verify accessibility info. 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, 2477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TestBookmarkBarViewAccObj) { 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TestViewAccessibilityObject( 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetBookmarkBarView(), 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_BOOKMARKS)), 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ROLE_SYSTEM_TOOLBAR); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 253