| 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.
|
|
|