Chromium Code Reviews| 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 <oleacc.h> | 5 #include <oleacc.h> |
| 6 | 6 |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "base/win/scoped_comptr.h" | 8 #include "base/win/scoped_comptr.h" |
| 9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
| 10 #include "chrome/browser/ui/browser_window.h" | 10 #include "chrome/browser/ui/browser_window.h" |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 #include "ui/views/widget/widget.h" | 24 #include "ui/views/widget/widget.h" |
| 25 | 25 |
| 26 namespace { | 26 namespace { |
| 27 | 27 |
| 28 VARIANT id_self = {VT_I4, CHILDID_SELF}; | 28 VARIANT id_self = {VT_I4, CHILDID_SELF}; |
| 29 | 29 |
| 30 } // namespace | 30 } // namespace |
| 31 | 31 |
| 32 class BrowserViewsAccessibilityTest : public InProcessBrowserTest { | 32 class BrowserViewsAccessibilityTest : public InProcessBrowserTest { |
| 33 public: | 33 public: |
| 34 BrowserViewsAccessibilityTest() { | 34 BrowserViewsAccessibilityTest(); |
| 35 ui::win::CreateATLModuleIfNeeded(); | 35 ~BrowserViewsAccessibilityTest(); |
| 36 ::CoInitialize(NULL); | |
| 37 } | |
| 38 | 36 |
| 39 ~BrowserViewsAccessibilityTest() { | 37 // Retrieves an instance of BrowserWindowTesting. |
| 40 ::CoUninitialize(); | 38 BrowserWindowTesting* GetBrowserWindowTesting(); |
| 41 } | |
| 42 | 39 |
| 43 // Retrieves an instance of BrowserWindowTesting | 40 // Retrieve an instance of BrowserView. |
| 44 BrowserWindowTesting* GetBrowserWindowTesting() { | 41 BrowserView* GetBrowserView(); |
| 45 BrowserWindow* browser_window = browser()->window(); | |
| 46 | |
| 47 if (!browser_window) | |
| 48 return NULL; | |
| 49 | |
| 50 return browser_window->GetBrowserWindowTesting(); | |
| 51 } | |
| 52 | |
| 53 // Retrieve an instance of BrowserView | |
| 54 BrowserView* GetBrowserView() { | |
| 55 return BrowserView::GetBrowserViewForBrowser(browser()); | |
| 56 } | |
| 57 | 42 |
| 58 // Retrieves and initializes an instance of ToolbarView. | 43 // Retrieves and initializes an instance of ToolbarView. |
| 59 ToolbarView* GetToolbarView() { | 44 ToolbarView* GetToolbarView(); |
| 60 BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); | |
| 61 | |
| 62 if (!browser_window_testing) | |
| 63 return NULL; | |
| 64 | |
| 65 return browser_window_testing->GetToolbarView(); | |
| 66 } | |
| 67 | 45 |
| 68 // Retrieves and initializes an instance of BookmarkBarView. | 46 // Retrieves and initializes an instance of BookmarkBarView. |
| 69 BookmarkBarView* GetBookmarkBarView() { | 47 BookmarkBarView* GetBookmarkBarView(); |
| 70 BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); | |
| 71 | |
| 72 if (!browser_window_testing) | |
| 73 return NULL; | |
| 74 | |
| 75 return browser_window_testing->GetBookmarkBarView(); | |
| 76 } | |
| 77 | 48 |
| 78 // Retrieves and verifies the accessibility object for the given View. | 49 // Retrieves and verifies the accessibility object for the given View. |
| 79 void TestViewAccessibilityObject(views::View* view, std::wstring name, | 50 void TestViewAccessibilityObject(views::View* view, |
| 80 int32 role) { | 51 std::wstring name, |
| 81 ASSERT_TRUE(NULL != view); | 52 int32 role); |
| 82 | |
| 83 TestAccessibilityInfo(view->GetNativeViewAccessible(), name, role); | |
| 84 } | |
| 85 | |
| 86 | 53 |
| 87 // Verifies MSAA Name and Role properties of the given IAccessible. | 54 // Verifies MSAA Name and Role properties of the given IAccessible. |
| 88 void TestAccessibilityInfo(IAccessible* acc_obj, std::wstring name, | 55 void TestAccessibilityInfo(IAccessible* acc_obj, |
| 89 int32 role) { | 56 std::wstring name, |
| 90 // Verify MSAA Name property. | 57 int32 role); |
| 91 BSTR acc_name; | 58 }; |
| 92 | 59 |
| 93 HRESULT hr = acc_obj->get_accName(id_self, &acc_name); | 60 BrowserViewsAccessibilityTest::BrowserViewsAccessibilityTest() { |
| 94 ASSERT_EQ(S_OK, hr); | 61 ui::win::CreateATLModuleIfNeeded(); |
| 95 EXPECT_STREQ(acc_name, name.c_str()); | 62 ::CoInitialize(NULL); |
|
dmazzoni
2012/09/27 06:22:39
Should this be using ScopedComInitializer as long
Peter Kasting
2012/09/27 06:25:15
This is precisely why I said: "...done while conve
| |
| 63 } | |
| 96 | 64 |
| 97 // Verify MSAA Role property. | 65 BrowserViewsAccessibilityTest~BrowserViewsAccessibilityTest() { |
|
dmazzoni
2012/09/27 06:22:39
Typo here?
Peter Kasting
2012/09/27 06:25:15
Indeed. Good catch.
| |
| 98 VARIANT acc_role; | 66 ::CoUninitialize(); |
| 99 ::VariantInit(&acc_role); | 67 } |
| 100 | 68 |
| 101 hr = acc_obj->get_accRole(id_self, &acc_role); | 69 BrowserWindowTesting* BrowserViewsAccessibilityTest::GetBrowserWindowTesting() { |
| 102 ASSERT_EQ(S_OK, hr); | 70 BrowserWindow* browser_window = browser()->window(); |
| 103 EXPECT_EQ(VT_I4, acc_role.vt); | 71 return browser_window ? browser_window->GetBrowserWindowTesting() : NULL; |
| 104 EXPECT_EQ(role, acc_role.lVal); | 72 } |
| 105 | 73 |
| 106 ::VariantClear(&acc_role); | 74 BrowserView* BrowserViewsAccessibilityTest::GetBrowserView() { |
| 107 ::SysFreeString(acc_name); | 75 return BrowserView::GetBrowserViewForBrowser(browser()); |
| 108 } | 76 } |
| 109 }; | 77 |
| 78 ToolbarView* BrowserViewsAccessibilityTest::GetToolbarView() { | |
| 79 BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); | |
| 80 return browser_window_testing ? | |
| 81 browser_window_testing->GetToolbarView() : NULL; | |
| 82 } | |
| 83 | |
| 84 BookmarkBarView* BrowserViewsAccessibilityTest::GetBookmarkBarView() { | |
| 85 BrowserWindowTesting* browser_window_testing = GetBrowserWindowTesting(); | |
| 86 return browser_window_testing ? | |
| 87 browser_window_testing->GetBookmarkBarView() : NULL; | |
| 88 } | |
| 89 | |
| 90 void BrowserViewsAccessibilityTest::TestViewAccessibilityObject( | |
| 91 views::View* view, | |
| 92 std::wstring name, | |
| 93 int32 role) { | |
| 94 ASSERT_TRUE(view != NULL); | |
| 95 TestAccessibilityInfo(view->GetNativeViewAccessible(), name, role); | |
| 96 } | |
| 97 | |
| 98 void BrowserViewsAccessibilityTest::TestAccessibilityInfo(IAccessible* acc_obj, | |
| 99 std::wstring name, | |
| 100 int32 role) { | |
| 101 // Verify MSAA Name property. | |
| 102 BSTR acc_name; | |
| 103 | |
| 104 HRESULT hr = acc_obj->get_accName(id_self, &acc_name); | |
| 105 ASSERT_EQ(S_OK, hr); | |
| 106 EXPECT_STREQ(acc_name, name.c_str()); | |
| 107 | |
| 108 // Verify MSAA Role property. | |
| 109 VARIANT acc_role; | |
| 110 ::VariantInit(&acc_role); | |
| 111 | |
| 112 hr = acc_obj->get_accRole(id_self, &acc_role); | |
| 113 ASSERT_EQ(S_OK, hr); | |
| 114 EXPECT_EQ(VT_I4, acc_role.vt); | |
| 115 EXPECT_EQ(role, acc_role.lVal); | |
| 116 | |
| 117 ::VariantClear(&acc_role); | |
| 118 ::SysFreeString(acc_name); | |
| 119 } | |
| 110 | 120 |
| 111 // Retrieve accessibility object for main window and verify accessibility info. | 121 // Retrieve accessibility object for main window and verify accessibility info. |
| 112 IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, | 122 IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
| 113 TestChromeWindowAccObj) { | 123 TestChromeWindowAccObj) { |
| 114 BrowserWindow* browser_window = browser()->window(); | 124 BrowserWindow* browser_window = browser()->window(); |
| 115 ASSERT_TRUE(NULL != browser_window); | 125 ASSERT_TRUE(NULL != browser_window); |
| 116 | 126 |
| 117 HWND hwnd = browser_window->GetNativeWindow(); | 127 HWND hwnd = browser_window->GetNativeWindow(); |
| 118 ASSERT_TRUE(NULL != hwnd); | 128 ASSERT_TRUE(NULL != hwnd); |
| 119 | 129 |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 249 } | 259 } |
| 250 | 260 |
| 251 // http://crbug.com/104132 | 261 // http://crbug.com/104132 |
| 252 IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, | 262 IN_PROC_BROWSER_TEST_F(BrowserViewsAccessibilityTest, |
| 253 DISABLED_TestBookmarkBarViewAccObj) { | 263 DISABLED_TestBookmarkBarViewAccObj) { |
| 254 TestViewAccessibilityObject( | 264 TestViewAccessibilityObject( |
| 255 GetBookmarkBarView(), | 265 GetBookmarkBarView(), |
| 256 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_BOOKMARKS)), | 266 UTF16ToWide(l10n_util::GetStringUTF16(IDS_ACCNAME_BOOKMARKS)), |
| 257 ROLE_SYSTEM_TOOLBAR); | 267 ROLE_SYSTEM_TOOLBAR); |
| 258 } | 268 } |
| OLD | NEW |