Index: chrome/browser/views/browser_views_accessibility_browsertest.cc |
=================================================================== |
--- chrome/browser/views/browser_views_accessibility_browsertest.cc (revision 61015) |
+++ chrome/browser/views/browser_views_accessibility_browsertest.cc (working copy) |
@@ -1,265 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <oleacc.h> |
- |
-#include "app/l10n_util.h" |
-#include "base/scoped_comptr_win.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/browser.h" |
-#include "chrome/browser/browser_window.h" |
-#include "chrome/browser/view_ids.h" |
-#include "chrome/browser/views/bookmark_bar_view.h" |
-#include "chrome/browser/views/frame/browser_view.h" |
-#include "chrome/browser/views/toolbar_view.h" |
-#include "chrome/common/url_constants.h" |
-#include "chrome/test/in_process_browser_test.h" |
-#include "chrome/test/ui_test_utils.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
-#include "views/accessibility/view_accessibility_wrapper.h" |
-#include "views/widget/root_view.h" |
-#include "views/widget/widget_win.h" |
-#include "views/window/window.h" |
- |
-namespace { |
- |
-VARIANT id_self = {VT_I4, CHILDID_SELF}; |
- |
-// Dummy class to force creation of ATL module, needed by COM to instantiate |
-// ViewAccessibility. |
-class TestAtlModule : public CAtlDllModuleT< TestAtlModule > {}; |
-TestAtlModule test_atl_module_; |
- |
-class BrowserViewsAccessibilityTest : public InProcessBrowserTest { |
- public: |
- BrowserViewsAccessibilityTest() { |
- ::CoInitialize(NULL); |
- } |
- |
- ~BrowserViewsAccessibilityTest() { |
- ::CoUninitialize(); |
- } |
- |
- // Retrieves an instance of BrowserWindowTesting |
- BrowserWindowTesting* GetBrowserWindowTesting() { |
- BrowserWindow* browser_window = browser()->window(); |
- |
- if (!browser_window) |
- return NULL; |
- |
- return browser_window->GetBrowserWindowTesting(); |
- } |
- |
- // Retrieve an instance of BrowserView |
- BrowserView* GetBrowserView() { |
- return BrowserView::GetBrowserViewForNativeWindow( |
- browser()->window()->GetNativeHandle()); |
- } |
- |
- // Retrieves and initializes an instance of ToolbarView. |
- ToolbarView* GetToolbarView() { |
- BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); |
- |
- if (!browser_window_testing) |
- return NULL; |
- |
- return browser_window_testing->GetToolbarView(); |
- } |
- |
- // Retrieves and initializes an instance of BookmarkBarView. |
- BookmarkBarView* GetBookmarkBarView() { |
- BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); |
- |
- if (!browser_window_testing) |
- return NULL; |
- |
- return browser_window_testing->GetBookmarkBarView(); |
- } |
- |
- // Retrieves and verifies the accessibility object for the given View. |
- void TestViewAccessibilityObject(views::View* view, std::wstring name, |
- int32 role) { |
- ASSERT_TRUE(NULL != view); |
- |
- IAccessible* acc_obj = NULL; |
- HRESULT hr = view->GetViewAccessibilityWrapper()->GetInstance( |
- IID_IAccessible, reinterpret_cast<void**>(&acc_obj)); |
- ASSERT_EQ(S_OK, hr); |
- ASSERT_TRUE(NULL != acc_obj); |
- |
- TestAccessibilityInfo(acc_obj, name, role); |
- } |
- |
- |
- // Verifies MSAA Name and Role properties of the given IAccessible. |
- void TestAccessibilityInfo(IAccessible* acc_obj, std::wstring name, |
- int32 role) { |
- // Verify MSAA Name property. |
- BSTR acc_name; |
- |
- HRESULT hr = acc_obj->get_accName(id_self, &acc_name); |
- ASSERT_EQ(S_OK, hr); |
- EXPECT_STREQ(acc_name, name.c_str()); |
- |
- // Verify MSAA Role property. |
- VARIANT acc_role; |
- ::VariantInit(&acc_role); |
- |
- hr = acc_obj->get_accRole(id_self, &acc_role); |
- ASSERT_EQ(S_OK, hr); |
- EXPECT_EQ(VT_I4, acc_role.vt); |
- EXPECT_EQ(role, acc_role.lVal); |
- |
- ::VariantClear(&acc_role); |
- ::SysFreeString(acc_name); |
- } |
-}; |
- |
-// Retrieve accessibility object for main window and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
- TestChromeWindowAccObj) { |
- BrowserWindow* browser_window = browser()->window(); |
- ASSERT_TRUE(NULL != browser_window); |
- |
- HWND hwnd = browser_window->GetNativeHandle(); |
- ASSERT_TRUE(NULL != hwnd); |
- |
- // Get accessibility object. |
- ScopedComPtr<IAccessible> acc_obj; |
- HRESULT hr = ::AccessibleObjectFromWindow(hwnd, OBJID_WINDOW, IID_IAccessible, |
- reinterpret_cast<void**>(&acc_obj)); |
- ASSERT_EQ(S_OK, hr); |
- ASSERT_TRUE(NULL != acc_obj); |
- |
- ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); |
- std::wstring title = |
- l10n_util::GetStringF(IDS_BROWSER_WINDOW_TITLE_FORMAT, |
- ASCIIToWide(chrome::kAboutBlankURL)); |
- TestAccessibilityInfo(acc_obj, title, ROLE_SYSTEM_WINDOW); |
-} |
- |
-// Retrieve accessibility object for non client view and verify accessibility |
-// info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestNonClientViewAccObj) { |
- views::View* non_client_view = |
- GetBrowserView()->GetWindow()->GetNonClientView(); |
- |
- TestViewAccessibilityObject(non_client_view, |
- l10n_util::GetString(IDS_PRODUCT_NAME), |
- ROLE_SYSTEM_WINDOW); |
-} |
- |
-// Retrieve accessibility object for browser root view and verify |
-// accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
- TestBrowserRootViewAccObj) { |
- views::View* browser_root_view = |
- GetBrowserView()->frame()->GetFrameView()->GetRootView(); |
- |
- TestViewAccessibilityObject(browser_root_view, |
- l10n_util::GetString(IDS_PRODUCT_NAME), |
- ROLE_SYSTEM_APPLICATION); |
-} |
- |
-// Retrieve accessibility object for browser view and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestBrowserViewAccObj) { |
- // Verify root view MSAA name and role. |
- TestViewAccessibilityObject(GetBrowserView(), |
- l10n_util::GetString(IDS_PRODUCT_NAME), |
- ROLE_SYSTEM_CLIENT); |
-} |
- |
-// Retrieve accessibility object for toolbar view and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestToolbarViewAccObj) { |
- // Verify toolbar MSAA name and role. |
- TestViewAccessibilityObject(GetToolbarView(), |
- l10n_util::GetString(IDS_ACCNAME_TOOLBAR), |
- ROLE_SYSTEM_TOOLBAR); |
-} |
- |
-// Retrieve accessibility object for Back button and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestBackButtonAccObj) { |
- // Verify Back button MSAA name and role. |
- TestViewAccessibilityObject( |
- GetToolbarView()->GetViewByID(VIEW_ID_BACK_BUTTON), |
- l10n_util::GetString(IDS_ACCNAME_BACK), ROLE_SYSTEM_BUTTONDROPDOWN); |
-} |
- |
-// Retrieve accessibility object for Forward button and verify accessibility |
-// info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestForwardButtonAccObj) { |
- // Verify Forward button MSAA name and role. |
- TestViewAccessibilityObject( |
- GetToolbarView()->GetViewByID(VIEW_ID_FORWARD_BUTTON), |
- l10n_util::GetString(IDS_ACCNAME_FORWARD), ROLE_SYSTEM_BUTTONDROPDOWN); |
-} |
- |
-// Retrieve accessibility object for Reload button and verify accessibility |
-// info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestReloadButtonAccObj) { |
- // Verify Reload button MSAA name and role. |
- TestViewAccessibilityObject( |
- GetToolbarView()->GetViewByID(VIEW_ID_RELOAD_BUTTON), |
- l10n_util::GetString(IDS_ACCNAME_RELOAD), ROLE_SYSTEM_PUSHBUTTON); |
-} |
- |
-// Retrieve accessibility object for Home button and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestHomeButtonAccObj) { |
- // Verify Home button MSAA name and role. |
- TestViewAccessibilityObject( |
- GetToolbarView()->GetViewByID(VIEW_ID_HOME_BUTTON), |
- l10n_util::GetString(IDS_ACCNAME_HOME), ROLE_SYSTEM_PUSHBUTTON); |
-} |
- |
-// Retrieve accessibility object for Star button and verify accessibility info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
- TestStarButtonAccObj) { |
- // Verify Star button MSAA name and role. |
- TestViewAccessibilityObject( |
- GetToolbarView()->GetViewByID(VIEW_ID_STAR_BUTTON), |
- l10n_util::GetString(IDS_ACCNAME_STAR), ROLE_SYSTEM_PUSHBUTTON); |
-} |
- |
-// Retrieve accessibility object for App menu button and verify accessibility |
-// info. |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, TestAppMenuAccObj) { |
- // Verify App menu button MSAA name and role. |
- TestViewAccessibilityObject(GetToolbarView()->GetViewByID(VIEW_ID_APP_MENU), |
- l10n_util::GetString(IDS_ACCNAME_APP), |
- ROLE_SYSTEM_BUTTONMENU); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
- TestBookmarkBarViewAccObj) { |
- TestViewAccessibilityObject(GetBookmarkBarView(), |
- l10n_util::GetString(IDS_ACCNAME_BOOKMARKS), |
- ROLE_SYSTEM_TOOLBAR); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
- TestAboutChromeViewAccObj) { |
- // Firstly, test that the WindowDelegate got updated. |
- views::Window* aboutChromeWindow = GetBrowserView()->ShowAboutChromeDialog(); |
- EXPECT_STREQ(aboutChromeWindow->GetDelegate()->GetWindowTitle().c_str(), |
- l10n_util::GetString(IDS_ABOUT_CHROME_TITLE).c_str()); |
- EXPECT_EQ(aboutChromeWindow->GetDelegate()->accessible_role(), |
- AccessibilityTypes::ROLE_DIALOG); |
- |
- // Also test the accessibility object directly. |
- IAccessible* acc_obj = NULL; |
- HRESULT hr = |
- ::AccessibleObjectFromWindow(aboutChromeWindow->GetNativeWindow(), |
- OBJID_CLIENT, |
- IID_IAccessible, |
- reinterpret_cast<void**>(&acc_obj)); |
- ASSERT_EQ(S_OK, hr); |
- ASSERT_TRUE(NULL != acc_obj); |
- |
- TestAccessibilityInfo(acc_obj, l10n_util::GetString(IDS_ABOUT_CHROME_TITLE), |
- ROLE_SYSTEM_DIALOG); |
- |
- acc_obj->Release(); |
-} |
-} // Namespace. |