Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: content/browser/accessibility/accessibility_win_browsertest.cc

Issue 2824773002: Rename ScopedComPtr::get() to ScopedComPtr::Get() (Closed)
Patch Set: Update to 5293966 Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 ASSERT_NE(nullptr, input_text); 133 ASSERT_NE(nullptr, input_text);
134 LoadInitialAccessibilityTreeFromHtml(std::string("<!DOCTYPE html><html><body>" 134 LoadInitialAccessibilityTreeFromHtml(std::string("<!DOCTYPE html><html><body>"
135 "<form><label for='textField'>Browser name:</label>" 135 "<form><label for='textField'>Browser name:</label>"
136 "<input type='text' id='textField' name='name' value='") + 136 "<input type='text' id='textField' name='name' value='") +
137 net::EscapeQueryParamValue(INPUT_CONTENTS, false) + std::string( 137 net::EscapeQueryParamValue(INPUT_CONTENTS, false) + std::string(
138 "'></form></body></html>")); 138 "'></form></body></html>"));
139 139
140 // Retrieve the IAccessible interface for the web page. 140 // Retrieve the IAccessible interface for the web page.
141 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible()); 141 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible());
142 std::vector<base::win::ScopedVariant> document_children = 142 std::vector<base::win::ScopedVariant> document_children =
143 GetAllAccessibleChildren(document.get()); 143 GetAllAccessibleChildren(document.Get());
144 ASSERT_EQ(1u, document_children.size()); 144 ASSERT_EQ(1u, document_children.size());
145 145
146 base::win::ScopedComPtr<IAccessible2> form; 146 base::win::ScopedComPtr<IAccessible2> form;
147 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 147 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
148 GetAccessibleFromVariant(document.get(), document_children[0].AsInput()) 148 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput())
149 .get(), 149 .Get(),
150 form.Receive())); 150 form.Receive()));
151 std::vector<base::win::ScopedVariant> form_children = 151 std::vector<base::win::ScopedVariant> form_children =
152 GetAllAccessibleChildren(form.get()); 152 GetAllAccessibleChildren(form.Get());
153 ASSERT_EQ(2u, form_children.size()); 153 ASSERT_EQ(2u, form_children.size());
154 154
155 // Find the input text field. 155 // Find the input text field.
156 base::win::ScopedComPtr<IAccessible2> input; 156 base::win::ScopedComPtr<IAccessible2> input;
157 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 157 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
158 GetAccessibleFromVariant(form.get(), form_children[1].AsInput()).get(), 158 GetAccessibleFromVariant(form.Get(), form_children[1].AsInput()).Get(),
159 input.Receive())); 159 input.Receive()));
160 LONG input_role = 0; 160 LONG input_role = 0;
161 ASSERT_HRESULT_SUCCEEDED(input->role(&input_role)); 161 ASSERT_HRESULT_SUCCEEDED(input->role(&input_role));
162 ASSERT_EQ(ROLE_SYSTEM_TEXT, input_role); 162 ASSERT_EQ(ROLE_SYSTEM_TEXT, input_role);
163 163
164 // Retrieve the IAccessibleText interface for the field. 164 // Retrieve the IAccessibleText interface for the field.
165 ASSERT_HRESULT_SUCCEEDED(input.QueryInterface(input_text->Receive())); 165 ASSERT_HRESULT_SUCCEEDED(input.QueryInterface(input_text->Receive()));
166 166
167 // Set the caret on the last character. 167 // Set the caret on the last character.
168 AccessibilityNotificationWaiter waiter(shell()->web_contents(), 168 AccessibilityNotificationWaiter waiter(shell()->web_contents(),
(...skipping 15 matching lines...) Expand all
184 base::win::ScopedComPtr<IAccessibleText>* textarea_text) { 184 base::win::ScopedComPtr<IAccessibleText>* textarea_text) {
185 ASSERT_NE(nullptr, textarea_text); 185 ASSERT_NE(nullptr, textarea_text);
186 LoadInitialAccessibilityTreeFromHtml(std::string("<!DOCTYPE html><html><body>" 186 LoadInitialAccessibilityTreeFromHtml(std::string("<!DOCTYPE html><html><body>"
187 "<textarea id='textField' rows='3' cols='60'>") + 187 "<textarea id='textField' rows='3' cols='60'>") +
188 net::EscapeQueryParamValue(TEXTAREA_CONTENTS, false) + std::string( 188 net::EscapeQueryParamValue(TEXTAREA_CONTENTS, false) + std::string(
189 "</textarea></body></html>")); 189 "</textarea></body></html>"));
190 190
191 // Retrieve the IAccessible interface for the web page. 191 // Retrieve the IAccessible interface for the web page.
192 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible()); 192 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible());
193 std::vector<base::win::ScopedVariant> document_children = 193 std::vector<base::win::ScopedVariant> document_children =
194 GetAllAccessibleChildren(document.get()); 194 GetAllAccessibleChildren(document.Get());
195 ASSERT_EQ(1u, document_children.size()); 195 ASSERT_EQ(1u, document_children.size());
196 196
197 base::win::ScopedComPtr<IAccessible2> section; 197 base::win::ScopedComPtr<IAccessible2> section;
198 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 198 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
199 GetAccessibleFromVariant(document.get(), document_children[0].AsInput()) 199 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput())
200 .get(), 200 .Get(),
201 section.Receive())); 201 section.Receive()));
202 std::vector<base::win::ScopedVariant> section_children = 202 std::vector<base::win::ScopedVariant> section_children =
203 GetAllAccessibleChildren(section.get()); 203 GetAllAccessibleChildren(section.Get());
204 ASSERT_EQ(1u, section_children.size()); 204 ASSERT_EQ(1u, section_children.size());
205 205
206 // Find the textarea text field. 206 // Find the textarea text field.
207 base::win::ScopedComPtr<IAccessible2> textarea; 207 base::win::ScopedComPtr<IAccessible2> textarea;
208 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 208 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
209 GetAccessibleFromVariant(section.get(), section_children[0].AsInput()) 209 GetAccessibleFromVariant(section.Get(), section_children[0].AsInput())
210 .get(), 210 .Get(),
211 textarea.Receive())); 211 textarea.Receive()));
212 LONG textarea_role = 0; 212 LONG textarea_role = 0;
213 ASSERT_HRESULT_SUCCEEDED(textarea->role(&textarea_role)); 213 ASSERT_HRESULT_SUCCEEDED(textarea->role(&textarea_role));
214 ASSERT_EQ(ROLE_SYSTEM_TEXT, textarea_role); 214 ASSERT_EQ(ROLE_SYSTEM_TEXT, textarea_role);
215 215
216 // Retrieve the IAccessibleText interface for the field. 216 // Retrieve the IAccessibleText interface for the field.
217 ASSERT_HRESULT_SUCCEEDED(textarea.QueryInterface(textarea_text->Receive())); 217 ASSERT_HRESULT_SUCCEEDED(textarea.QueryInterface(textarea_text->Receive()));
218 218
219 // Set the caret on the last character. 219 // Set the caret on the last character.
220 AccessibilityNotificationWaiter waiter(shell()->web_contents(), 220 AccessibilityNotificationWaiter waiter(shell()->web_contents(),
(...skipping 20 matching lines...) Expand all
241 "<body style=\"overflow: scroll; margin-top: 100vh\">" 241 "<body style=\"overflow: scroll; margin-top: 100vh\">"
242 "<p><b>Game theory</b> is \"the study of " 242 "<p><b>Game theory</b> is \"the study of "
243 "<a href=\"#\" title=\"Mathematical model\">mathematical models</a> " 243 "<a href=\"#\" title=\"Mathematical model\">mathematical models</a> "
244 "of conflict and<br>cooperation between intelligent rational " 244 "of conflict and<br>cooperation between intelligent rational "
245 "decision-makers.\"</p></body></html>", 245 "decision-makers.\"</p></body></html>",
246 accessibility_mode); 246 accessibility_mode);
247 247
248 // Retrieve the IAccessible interface for the web page. 248 // Retrieve the IAccessible interface for the web page.
249 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible()); 249 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible());
250 std::vector<base::win::ScopedVariant> document_children = 250 std::vector<base::win::ScopedVariant> document_children =
251 GetAllAccessibleChildren(document.get()); 251 GetAllAccessibleChildren(document.Get());
252 ASSERT_EQ(1u, document_children.size()); 252 ASSERT_EQ(1u, document_children.size());
253 253
254 base::win::ScopedComPtr<IAccessible2> paragraph; 254 base::win::ScopedComPtr<IAccessible2> paragraph;
255 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 255 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
256 GetAccessibleFromVariant(document.get(), document_children[0].AsInput()) 256 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput())
257 .get(), 257 .Get(),
258 paragraph.Receive())); 258 paragraph.Receive()));
259 LONG paragraph_role = 0; 259 LONG paragraph_role = 0;
260 ASSERT_HRESULT_SUCCEEDED(paragraph->role(&paragraph_role)); 260 ASSERT_HRESULT_SUCCEEDED(paragraph->role(&paragraph_role));
261 ASSERT_EQ(IA2_ROLE_PARAGRAPH, paragraph_role); 261 ASSERT_EQ(IA2_ROLE_PARAGRAPH, paragraph_role);
262 ASSERT_HRESULT_SUCCEEDED(paragraph.QueryInterface(com_interface->Receive())); 262 ASSERT_HRESULT_SUCCEEDED(paragraph.QueryInterface(com_interface->Receive()));
263 } 263 }
264 264
265 // Static helpers ------------------------------------------------ 265 // Static helpers ------------------------------------------------
266 266
267 base::win::ScopedComPtr<IAccessible> 267 base::win::ScopedComPtr<IAccessible>
268 AccessibilityWinBrowserTest::GetAccessibleFromVariant( 268 AccessibilityWinBrowserTest::GetAccessibleFromVariant(
269 IAccessible* parent, 269 IAccessible* parent,
270 VARIANT* var) { 270 VARIANT* var) {
271 base::win::ScopedComPtr<IAccessible> ptr; 271 base::win::ScopedComPtr<IAccessible> ptr;
272 switch (V_VT(var)) { 272 switch (V_VT(var)) {
273 case VT_DISPATCH: { 273 case VT_DISPATCH: {
274 IDispatch* dispatch = V_DISPATCH(var); 274 IDispatch* dispatch = V_DISPATCH(var);
275 if (dispatch) 275 if (dispatch)
276 dispatch->QueryInterface(ptr.Receive()); 276 dispatch->QueryInterface(ptr.Receive());
277 break; 277 break;
278 } 278 }
279 279
280 case VT_I4: { 280 case VT_I4: {
281 base::win::ScopedComPtr<IDispatch> dispatch; 281 base::win::ScopedComPtr<IDispatch> dispatch;
282 HRESULT hr = parent->get_accChild(*var, dispatch.Receive()); 282 HRESULT hr = parent->get_accChild(*var, dispatch.Receive());
283 EXPECT_TRUE(SUCCEEDED(hr)); 283 EXPECT_TRUE(SUCCEEDED(hr));
284 if (dispatch.get()) 284 if (dispatch.Get())
285 dispatch.QueryInterface(ptr.Receive()); 285 dispatch.QueryInterface(ptr.Receive());
286 break; 286 break;
287 } 287 }
288 } 288 }
289 return ptr; 289 return ptr;
290 } 290 }
291 291
292 HRESULT AccessibilityWinBrowserTest::QueryIAccessible2( 292 HRESULT AccessibilityWinBrowserTest::QueryIAccessible2(
293 IAccessible* accessible, 293 IAccessible* accessible,
294 IAccessible2** accessible2) { 294 IAccessible2** accessible2) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 return; 330 return;
331 } 331 }
332 332
333 std::vector<base::win::ScopedVariant> children = GetAllAccessibleChildren( 333 std::vector<base::win::ScopedVariant> children = GetAllAccessibleChildren(
334 node); 334 node);
335 for (size_t i = 0; i < children.size(); ++i) { 335 for (size_t i = 0; i < children.size(); ++i) {
336 base::win::ScopedComPtr<IAccessible> child_accessible( 336 base::win::ScopedComPtr<IAccessible> child_accessible(
337 GetAccessibleFromVariant(node, children[i].AsInput())); 337 GetAccessibleFromVariant(node, children[i].AsInput()));
338 if (child_accessible) { 338 if (child_accessible) {
339 FindNodeInAccessibilityTree( 339 FindNodeInAccessibilityTree(
340 child_accessible.get(), expected_role, expected_name, depth + 1, 340 child_accessible.Get(), expected_role, expected_name, depth + 1,
341 found); 341 found);
342 if (*found) 342 if (*found)
343 return; 343 return;
344 } 344 }
345 } 345 }
346 } 346 }
347 347
348 // Ensures that the text and the start and end offsets retrieved using 348 // Ensures that the text and the start and end offsets retrieved using
349 // get_textAtOffset match the expected values. 349 // get_textAtOffset match the expected values.
350 void AccessibilityWinBrowserTest::CheckTextAtOffset( 350 void AccessibilityWinBrowserTest::CheckTextAtOffset(
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 608
609 AccessibleCheckerVector::iterator child_checker; 609 AccessibleCheckerVector::iterator child_checker;
610 std::vector<base::win::ScopedVariant>::iterator child; 610 std::vector<base::win::ScopedVariant>::iterator child;
611 for (child_checker = children_.begin(), 611 for (child_checker = children_.begin(),
612 child = obtained_children.begin(); 612 child = obtained_children.begin();
613 child_checker != children_.end() 613 child_checker != children_.end()
614 && child != obtained_children.end(); 614 && child != obtained_children.end();
615 ++child_checker, ++child) { 615 ++child_checker, ++child) {
616 base::win::ScopedComPtr<IAccessible> child_accessible( 616 base::win::ScopedComPtr<IAccessible> child_accessible(
617 GetAccessibleFromVariant(parent, child->AsInput())); 617 GetAccessibleFromVariant(parent, child->AsInput()));
618 ASSERT_TRUE(child_accessible.get()); 618 ASSERT_TRUE(child_accessible.Get());
619 (*child_checker)->CheckAccessible(child_accessible.get()); 619 (*child_checker)->CheckAccessible(child_accessible.Get());
620 } 620 }
621 } 621 }
622 622
623 base::string16 623 base::string16
624 AccessibilityWinBrowserTest::AccessibleChecker::RoleVariantToString( 624 AccessibilityWinBrowserTest::AccessibleChecker::RoleVariantToString(
625 const base::win::ScopedVariant& role) { 625 const base::win::ScopedVariant& role) {
626 if (role.type() == VT_I4) 626 if (role.type() == VT_I4)
627 return IAccessibleRoleToString(V_I4(role.ptr())); 627 return IAccessibleRoleToString(V_I4(role.ptr()));
628 if (role.type() == VT_BSTR) 628 if (role.type() == VT_BSTR)
629 return base::string16(V_BSTR(role.ptr()), SysStringLen(V_BSTR(role.ptr()))); 629 return base::string16(V_BSTR(role.ptr()), SysStringLen(V_BSTR(role.ptr())));
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 SCOPED_TRACE("Check updated tree after focusing div"); 817 SCOPED_TRACE("Check updated tree after focusing div");
818 group_checker.SetExpectedState( 818 group_checker.SetExpectedState(
819 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_FOCUSED); 819 STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_FOCUSED);
820 document_checker.CheckAccessible(GetRendererAccessible()); 820 document_checker.CheckAccessible(GetRendererAccessible());
821 821
822 // Focus the document accessible. This will un-focus the current node. 822 // Focus the document accessible. This will un-focus the current node.
823 waiter.reset(new AccessibilityNotificationWaiter( 823 waiter.reset(new AccessibilityNotificationWaiter(
824 shell()->web_contents(), kAccessibilityModeComplete, ui::AX_EVENT_BLUR)); 824 shell()->web_contents(), kAccessibilityModeComplete, ui::AX_EVENT_BLUR));
825 base::win::ScopedComPtr<IAccessible> document_accessible( 825 base::win::ScopedComPtr<IAccessible> document_accessible(
826 GetRendererAccessible()); 826 GetRendererAccessible());
827 ASSERT_NE(document_accessible.get(), reinterpret_cast<IAccessible*>(NULL)); 827 ASSERT_NE(document_accessible.Get(), reinterpret_cast<IAccessible*>(NULL));
828 base::win::ScopedVariant childid_self(CHILDID_SELF); 828 base::win::ScopedVariant childid_self(CHILDID_SELF);
829 HRESULT hr = document_accessible->accSelect(SELFLAG_TAKEFOCUS, childid_self); 829 HRESULT hr = document_accessible->accSelect(SELFLAG_TAKEFOCUS, childid_self);
830 ASSERT_EQ(S_OK, hr); 830 ASSERT_EQ(S_OK, hr);
831 waiter->WaitForNotification(); 831 waiter->WaitForNotification();
832 832
833 // Check that the accessibility tree of the browser has been updated. 833 // Check that the accessibility tree of the browser has been updated.
834 SCOPED_TRACE("Check updated tree after focusing document again"); 834 SCOPED_TRACE("Check updated tree after focusing document again");
835 group_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE); 835 group_checker.SetExpectedState(STATE_SYSTEM_FOCUSABLE);
836 document_checker.CheckAccessible(GetRendererAccessible()); 836 document_checker.CheckAccessible(GetRendererAccessible());
837 } 837 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 base::win::ScopedComPtr<IAccessible> browser_accessible; 891 base::win::ScopedComPtr<IAccessible> browser_accessible;
892 HRESULT hr = AccessibleObjectFromWindow( 892 HRESULT hr = AccessibleObjectFromWindow(
893 hwnd, 893 hwnd,
894 OBJID_WINDOW, 894 OBJID_WINDOW,
895 IID_IAccessible, 895 IID_IAccessible,
896 reinterpret_cast<void**>(browser_accessible.Receive())); 896 reinterpret_cast<void**>(browser_accessible.Receive()));
897 ASSERT_EQ(S_OK, hr); 897 ASSERT_EQ(S_OK, hr);
898 898
899 bool found = false; 899 bool found = false;
900 FindNodeInAccessibilityTree( 900 FindNodeInAccessibilityTree(
901 browser_accessible.get(), ROLE_SYSTEM_DOCUMENT, L"MyDocument", 0, &found); 901 browser_accessible.Get(), ROLE_SYSTEM_DOCUMENT, L"MyDocument", 0, &found);
902 ASSERT_EQ(found, true); 902 ASSERT_EQ(found, true);
903 } 903 }
904 904
905 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, 905 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest,
906 SupportsISimpleDOM) { 906 SupportsISimpleDOM) {
907 LoadInitialAccessibilityTreeFromHtml( 907 LoadInitialAccessibilityTreeFromHtml(
908 "<body><input type='checkbox'></body>"); 908 "<body><input type='checkbox'></body>");
909 909
910 // Get the IAccessible object for the document. 910 // Get the IAccessible object for the document.
911 base::win::ScopedComPtr<IAccessible> document_accessible( 911 base::win::ScopedComPtr<IAccessible> document_accessible(
912 GetRendererAccessible()); 912 GetRendererAccessible());
913 ASSERT_NE(document_accessible.get(), reinterpret_cast<IAccessible*>(NULL)); 913 ASSERT_NE(document_accessible.Get(), reinterpret_cast<IAccessible*>(NULL));
914 914
915 // Get the ISimpleDOM object for the document. 915 // Get the ISimpleDOM object for the document.
916 base::win::ScopedComPtr<IServiceProvider> service_provider; 916 base::win::ScopedComPtr<IServiceProvider> service_provider;
917 HRESULT hr = static_cast<IAccessible*>(document_accessible.get()) 917 HRESULT hr = static_cast<IAccessible*>(document_accessible.Get())
918 ->QueryInterface(service_provider.Receive()); 918 ->QueryInterface(service_provider.Receive());
919 ASSERT_EQ(S_OK, hr); 919 ASSERT_EQ(S_OK, hr);
920 const GUID refguid = {0x0c539790, 920 const GUID refguid = {0x0c539790,
921 0x12e4, 921 0x12e4,
922 0x11cf, 922 0x11cf,
923 {0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8}}; 923 {0xb6, 0x61, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8}};
924 base::win::ScopedComPtr<ISimpleDOMNode> document_isimpledomnode; 924 base::win::ScopedComPtr<ISimpleDOMNode> document_isimpledomnode;
925 hr = static_cast<IServiceProvider*>(service_provider.get()) 925 hr = static_cast<IServiceProvider*>(service_provider.Get())
926 ->QueryService( 926 ->QueryService(
927 refguid, IID_ISimpleDOMNode, 927 refguid, IID_ISimpleDOMNode,
928 reinterpret_cast<void**>(document_isimpledomnode.Receive())); 928 reinterpret_cast<void**>(document_isimpledomnode.Receive()));
929 ASSERT_EQ(S_OK, hr); 929 ASSERT_EQ(S_OK, hr);
930 930
931 base::win::ScopedBstr node_name; 931 base::win::ScopedBstr node_name;
932 short name_space_id; // NOLINT 932 short name_space_id; // NOLINT
933 base::win::ScopedBstr node_value; 933 base::win::ScopedBstr node_value;
934 unsigned int num_children; 934 unsigned int num_children;
935 unsigned int unique_id; 935 unsigned int unique_id;
(...skipping 915 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, TestIAccessibleAction) { 1851 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, TestIAccessibleAction) {
1852 LoadInitialAccessibilityTreeFromHtml( 1852 LoadInitialAccessibilityTreeFromHtml(
1853 "<!DOCTYPE html><html><body>" 1853 "<!DOCTYPE html><html><body>"
1854 "<img src=\"\" alt=\"image\" " 1854 "<img src=\"\" alt=\"image\" "
1855 "onclick=\"document.querySelector('img').alt = 'image2';\">" 1855 "onclick=\"document.querySelector('img').alt = 'image2';\">"
1856 "</body></html>"); 1856 "</body></html>");
1857 1857
1858 // Retrieve the IAccessible interface for the web page. 1858 // Retrieve the IAccessible interface for the web page.
1859 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible()); 1859 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible());
1860 std::vector<base::win::ScopedVariant> document_children = 1860 std::vector<base::win::ScopedVariant> document_children =
1861 GetAllAccessibleChildren(document.get()); 1861 GetAllAccessibleChildren(document.Get());
1862 ASSERT_EQ(1u, document_children.size()); 1862 ASSERT_EQ(1u, document_children.size());
1863 1863
1864 base::win::ScopedComPtr<IAccessible2> div; 1864 base::win::ScopedComPtr<IAccessible2> div;
1865 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 1865 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
1866 GetAccessibleFromVariant(document.get(), document_children[0].AsInput()) 1866 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput())
1867 .get(), 1867 .Get(),
1868 div.Receive())); 1868 div.Receive()));
1869 std::vector<base::win::ScopedVariant> div_children = 1869 std::vector<base::win::ScopedVariant> div_children =
1870 GetAllAccessibleChildren(div.get()); 1870 GetAllAccessibleChildren(div.Get());
1871 ASSERT_EQ(1u, div_children.size()); 1871 ASSERT_EQ(1u, div_children.size());
1872 1872
1873 base::win::ScopedComPtr<IAccessible2> image; 1873 base::win::ScopedComPtr<IAccessible2> image;
1874 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 1874 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
1875 GetAccessibleFromVariant(div.get(), div_children[0].AsInput()).get(), 1875 GetAccessibleFromVariant(div.Get(), div_children[0].AsInput()).Get(),
1876 image.Receive())); 1876 image.Receive()));
1877 LONG image_role = 0; 1877 LONG image_role = 0;
1878 ASSERT_HRESULT_SUCCEEDED(image->role(&image_role)); 1878 ASSERT_HRESULT_SUCCEEDED(image->role(&image_role));
1879 ASSERT_EQ(ROLE_SYSTEM_GRAPHIC, image_role); 1879 ASSERT_EQ(ROLE_SYSTEM_GRAPHIC, image_role);
1880 1880
1881 base::win::ScopedComPtr<IAccessibleAction> image_action; 1881 base::win::ScopedComPtr<IAccessibleAction> image_action;
1882 ASSERT_HRESULT_SUCCEEDED(image.QueryInterface(image_action.Receive())); 1882 ASSERT_HRESULT_SUCCEEDED(image.QueryInterface(image_action.Receive()));
1883 1883
1884 LONG n_actions = 0; 1884 LONG n_actions = 0;
1885 EXPECT_HRESULT_SUCCEEDED(image_action->nActions(&n_actions)); 1885 EXPECT_HRESULT_SUCCEEDED(image_action->nActions(&n_actions));
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1954 ASSERT_TRUE(embedded_test_server()->Start()); 1954 ASSERT_TRUE(embedded_test_server()->Start());
1955 AccessibilityNotificationWaiter waiter(shell()->web_contents(), 1955 AccessibilityNotificationWaiter waiter(shell()->web_contents(),
1956 kAccessibilityModeComplete, 1956 kAccessibilityModeComplete,
1957 ui::AX_EVENT_LOAD_COMPLETE); 1957 ui::AX_EVENT_LOAD_COMPLETE);
1958 NavigateToURL(shell(), embedded_test_server()->GetURL( 1958 NavigateToURL(shell(), embedded_test_server()->GetURL(
1959 "/accessibility/html/table-spans.html")); 1959 "/accessibility/html/table-spans.html"));
1960 waiter.WaitForNotification(); 1960 waiter.WaitForNotification();
1961 1961
1962 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible()); 1962 base::win::ScopedComPtr<IAccessible> document(GetRendererAccessible());
1963 std::vector<base::win::ScopedVariant> document_children = 1963 std::vector<base::win::ScopedVariant> document_children =
1964 GetAllAccessibleChildren(document.get()); 1964 GetAllAccessibleChildren(document.Get());
1965 // There are two tables in this test file. Use only the first one. 1965 // There are two tables in this test file. Use only the first one.
1966 ASSERT_EQ(2u, document_children.size()); 1966 ASSERT_EQ(2u, document_children.size());
1967 1967
1968 base::win::ScopedComPtr<IAccessible2> table; 1968 base::win::ScopedComPtr<IAccessible2> table;
1969 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( 1969 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2(
1970 GetAccessibleFromVariant(document.get(), document_children[0].AsInput()) 1970 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput())
1971 .get(), 1971 .Get(),
1972 table.Receive())); 1972 table.Receive()));
1973 LONG role = 0; 1973 LONG role = 0;
1974 ASSERT_HRESULT_SUCCEEDED(table->role(&role)); 1974 ASSERT_HRESULT_SUCCEEDED(table->role(&role));
1975 ASSERT_EQ(ROLE_SYSTEM_TABLE, role); 1975 ASSERT_EQ(ROLE_SYSTEM_TABLE, role);
1976 1976
1977 // Retrieve the first cell. 1977 // Retrieve the first cell.
1978 base::win::ScopedComPtr<IAccessibleTable2> table2; 1978 base::win::ScopedComPtr<IAccessibleTable2> table2;
1979 base::win::ScopedComPtr<IUnknown> cell; 1979 base::win::ScopedComPtr<IUnknown> cell;
1980 base::win::ScopedComPtr<IAccessible2> cell1; 1980 base::win::ScopedComPtr<IAccessible2> cell1;
1981 EXPECT_HRESULT_SUCCEEDED(table.QueryInterface(table2.Receive())); 1981 EXPECT_HRESULT_SUCCEEDED(table.QueryInterface(table2.Receive()));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2041 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index)); 2041 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index));
2042 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index)); 2042 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index));
2043 EXPECT_EQ(1, row_index); 2043 EXPECT_EQ(1, row_index);
2044 EXPECT_EQ(1, column_index); 2044 EXPECT_EQ(1, column_index);
2045 variant.Reset(); 2045 variant.Reset();
2046 name.Reset(); 2046 name.Reset();
2047 accessible_cell.Reset(); 2047 accessible_cell.Reset();
2048 } 2048 }
2049 2049
2050 } // namespace content 2050 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698