| 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 <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 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 // Find the input text field. | 154 // Find the input text field. |
| 155 base::win::ScopedComPtr<IAccessible2> input; | 155 base::win::ScopedComPtr<IAccessible2> input; |
| 156 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( | 156 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( |
| 157 GetAccessibleFromVariant(form.Get(), form_children[1].AsInput()).Get(), | 157 GetAccessibleFromVariant(form.Get(), form_children[1].AsInput()).Get(), |
| 158 input.Receive())); | 158 input.Receive())); |
| 159 LONG input_role = 0; | 159 LONG input_role = 0; |
| 160 ASSERT_HRESULT_SUCCEEDED(input->role(&input_role)); | 160 ASSERT_HRESULT_SUCCEEDED(input->role(&input_role)); |
| 161 ASSERT_EQ(ROLE_SYSTEM_TEXT, input_role); | 161 ASSERT_EQ(ROLE_SYSTEM_TEXT, input_role); |
| 162 | 162 |
| 163 // Retrieve the IAccessibleText interface for the field. | 163 // Retrieve the IAccessibleText interface for the field. |
| 164 ASSERT_HRESULT_SUCCEEDED(input.QueryInterface(input_text->Receive())); | 164 ASSERT_HRESULT_SUCCEEDED(input.CopyTo(input_text->Receive())); |
| 165 | 165 |
| 166 // Set the caret on the last character. | 166 // Set the caret on the last character. |
| 167 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 167 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
| 168 kAccessibilityModeComplete, | 168 kAccessibilityModeComplete, |
| 169 ui::AX_EVENT_TEXT_SELECTION_CHANGED); | 169 ui::AX_EVENT_TEXT_SELECTION_CHANGED); |
| 170 std::wstring caret_offset = base::UTF16ToWide(base::IntToString16( | 170 std::wstring caret_offset = base::UTF16ToWide(base::IntToString16( |
| 171 static_cast<int>(CONTENTS_LENGTH - 1))); | 171 static_cast<int>(CONTENTS_LENGTH - 1))); |
| 172 ExecuteScript(std::wstring( | 172 ExecuteScript(std::wstring( |
| 173 L"var textField = document.getElementById('textField');" | 173 L"var textField = document.getElementById('textField');" |
| 174 L"textField.focus();" | 174 L"textField.focus();" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 base::win::ScopedComPtr<IAccessible2> textarea; | 206 base::win::ScopedComPtr<IAccessible2> textarea; |
| 207 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( | 207 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( |
| 208 GetAccessibleFromVariant(section.Get(), section_children[0].AsInput()) | 208 GetAccessibleFromVariant(section.Get(), section_children[0].AsInput()) |
| 209 .Get(), | 209 .Get(), |
| 210 textarea.Receive())); | 210 textarea.Receive())); |
| 211 LONG textarea_role = 0; | 211 LONG textarea_role = 0; |
| 212 ASSERT_HRESULT_SUCCEEDED(textarea->role(&textarea_role)); | 212 ASSERT_HRESULT_SUCCEEDED(textarea->role(&textarea_role)); |
| 213 ASSERT_EQ(ROLE_SYSTEM_TEXT, textarea_role); | 213 ASSERT_EQ(ROLE_SYSTEM_TEXT, textarea_role); |
| 214 | 214 |
| 215 // Retrieve the IAccessibleText interface for the field. | 215 // Retrieve the IAccessibleText interface for the field. |
| 216 ASSERT_HRESULT_SUCCEEDED(textarea.QueryInterface(textarea_text->Receive())); | 216 ASSERT_HRESULT_SUCCEEDED(textarea.CopyTo(textarea_text->Receive())); |
| 217 | 217 |
| 218 // Set the caret on the last character. | 218 // Set the caret on the last character. |
| 219 AccessibilityNotificationWaiter waiter(shell()->web_contents(), | 219 AccessibilityNotificationWaiter waiter(shell()->web_contents(), |
| 220 kAccessibilityModeComplete, | 220 kAccessibilityModeComplete, |
| 221 ui::AX_EVENT_TEXT_SELECTION_CHANGED); | 221 ui::AX_EVENT_TEXT_SELECTION_CHANGED); |
| 222 std::wstring caret_offset = base::UTF16ToWide(base::IntToString16( | 222 std::wstring caret_offset = base::UTF16ToWide(base::IntToString16( |
| 223 static_cast<int>(CONTENTS_LENGTH - 1))); | 223 static_cast<int>(CONTENTS_LENGTH - 1))); |
| 224 ExecuteScript(std::wstring( | 224 ExecuteScript(std::wstring( |
| 225 L"var textField = document.getElementById('textField');" | 225 L"var textField = document.getElementById('textField');" |
| 226 L"textField.focus();" | 226 L"textField.focus();" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 250 ASSERT_EQ(1u, document_children.size()); | 250 ASSERT_EQ(1u, document_children.size()); |
| 251 | 251 |
| 252 base::win::ScopedComPtr<IAccessible2> paragraph; | 252 base::win::ScopedComPtr<IAccessible2> paragraph; |
| 253 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( | 253 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( |
| 254 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput()) | 254 GetAccessibleFromVariant(document.Get(), document_children[0].AsInput()) |
| 255 .Get(), | 255 .Get(), |
| 256 paragraph.Receive())); | 256 paragraph.Receive())); |
| 257 LONG paragraph_role = 0; | 257 LONG paragraph_role = 0; |
| 258 ASSERT_HRESULT_SUCCEEDED(paragraph->role(¶graph_role)); | 258 ASSERT_HRESULT_SUCCEEDED(paragraph->role(¶graph_role)); |
| 259 ASSERT_EQ(IA2_ROLE_PARAGRAPH, paragraph_role); | 259 ASSERT_EQ(IA2_ROLE_PARAGRAPH, paragraph_role); |
| 260 ASSERT_HRESULT_SUCCEEDED(paragraph.QueryInterface( | 260 ASSERT_HRESULT_SUCCEEDED(paragraph.CopyTo( |
| 261 accessible_text->Receive())); | 261 accessible_text->Receive())); |
| 262 } | 262 } |
| 263 | 263 |
| 264 // Static helpers ------------------------------------------------ | 264 // Static helpers ------------------------------------------------ |
| 265 | 265 |
| 266 base::win::ScopedComPtr<IAccessible> | 266 base::win::ScopedComPtr<IAccessible> |
| 267 AccessibilityWinBrowserTest::GetAccessibleFromVariant( | 267 AccessibilityWinBrowserTest::GetAccessibleFromVariant( |
| 268 IAccessible* parent, | 268 IAccessible* parent, |
| 269 VARIANT* var) { | 269 VARIANT* var) { |
| 270 base::win::ScopedComPtr<IAccessible> ptr; | 270 base::win::ScopedComPtr<IAccessible> ptr; |
| 271 switch (V_VT(var)) { | 271 switch (V_VT(var)) { |
| 272 case VT_DISPATCH: { | 272 case VT_DISPATCH: { |
| 273 IDispatch* dispatch = V_DISPATCH(var); | 273 IDispatch* dispatch = V_DISPATCH(var); |
| 274 if (dispatch) | 274 if (dispatch) |
| 275 dispatch->QueryInterface(ptr.Receive()); | 275 dispatch->QueryInterface(ptr.Receive()); |
| 276 break; | 276 break; |
| 277 } | 277 } |
| 278 | 278 |
| 279 case VT_I4: { | 279 case VT_I4: { |
| 280 base::win::ScopedComPtr<IDispatch> dispatch; | 280 base::win::ScopedComPtr<IDispatch> dispatch; |
| 281 HRESULT hr = parent->get_accChild(*var, dispatch.Receive()); | 281 HRESULT hr = parent->get_accChild(*var, dispatch.Receive()); |
| 282 EXPECT_TRUE(SUCCEEDED(hr)); | 282 EXPECT_TRUE(SUCCEEDED(hr)); |
| 283 if (dispatch.Get()) | 283 if (dispatch.Get()) |
| 284 dispatch.QueryInterface(ptr.Receive()); | 284 dispatch.CopyTo(ptr.Receive()); |
| 285 break; | 285 break; |
| 286 } | 286 } |
| 287 } | 287 } |
| 288 return ptr; | 288 return ptr; |
| 289 } | 289 } |
| 290 | 290 |
| 291 HRESULT AccessibilityWinBrowserTest::QueryIAccessible2( | 291 HRESULT AccessibilityWinBrowserTest::QueryIAccessible2( |
| 292 IAccessible* accessible, | 292 IAccessible* accessible, |
| 293 IAccessible2** accessible2) { | 293 IAccessible2** accessible2) { |
| 294 // IA2 Spec dictates that IServiceProvider should be used instead of | 294 // IA2 Spec dictates that IServiceProvider should be used instead of |
| (...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1115 EXPECT_LT(0, y); | 1115 EXPECT_LT(0, y); |
| 1116 EXPECT_LT(0, width); | 1116 EXPECT_LT(0, width); |
| 1117 EXPECT_LT(0, height); | 1117 EXPECT_LT(0, height); |
| 1118 } | 1118 } |
| 1119 | 1119 |
| 1120 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, TestScrollToPoint) { | 1120 IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, TestScrollToPoint) { |
| 1121 base::win::ScopedComPtr<IAccessibleText> accessible_text; | 1121 base::win::ScopedComPtr<IAccessibleText> accessible_text; |
| 1122 SetUpSampleParagraph(&accessible_text); | 1122 SetUpSampleParagraph(&accessible_text); |
| 1123 base::win::ScopedComPtr<IAccessible2> paragraph; | 1123 base::win::ScopedComPtr<IAccessible2> paragraph; |
| 1124 ASSERT_HRESULT_SUCCEEDED( | 1124 ASSERT_HRESULT_SUCCEEDED( |
| 1125 accessible_text.QueryInterface(IID_PPV_ARGS(¶graph))); | 1125 accessible_text.CopyTo(IID_PPV_ARGS(¶graph))); |
| 1126 | 1126 |
| 1127 LONG prev_x, prev_y, x, y, width, height; | 1127 LONG prev_x, prev_y, x, y, width, height; |
| 1128 base::win::ScopedVariant childid_self(CHILDID_SELF); | 1128 base::win::ScopedVariant childid_self(CHILDID_SELF); |
| 1129 ASSERT_HRESULT_SUCCEEDED( | 1129 ASSERT_HRESULT_SUCCEEDED( |
| 1130 paragraph->accLocation(&prev_x, &prev_y, &width, &height, childid_self)); | 1130 paragraph->accLocation(&prev_x, &prev_y, &width, &height, childid_self)); |
| 1131 AccessibilityNotificationWaiter location_changed_waiter( | 1131 AccessibilityNotificationWaiter location_changed_waiter( |
| 1132 shell()->web_contents(), kAccessibilityModeComplete, | 1132 shell()->web_contents(), kAccessibilityModeComplete, |
| 1133 ui::AX_EVENT_LOCATION_CHANGED); | 1133 ui::AX_EVENT_LOCATION_CHANGED); |
| 1134 EXPECT_HRESULT_SUCCEEDED( | 1134 EXPECT_HRESULT_SUCCEEDED( |
| 1135 paragraph->scrollToPoint(IA2_COORDTYPE_PARENT_RELATIVE, 0, 0)); | 1135 paragraph->scrollToPoint(IA2_COORDTYPE_PARENT_RELATIVE, 0, 0)); |
| (...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1874 | 1874 |
| 1875 base::win::ScopedComPtr<IAccessible2> image; | 1875 base::win::ScopedComPtr<IAccessible2> image; |
| 1876 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( | 1876 ASSERT_HRESULT_SUCCEEDED(QueryIAccessible2( |
| 1877 GetAccessibleFromVariant(div.Get(), div_children[0].AsInput()).Get(), | 1877 GetAccessibleFromVariant(div.Get(), div_children[0].AsInput()).Get(), |
| 1878 image.Receive())); | 1878 image.Receive())); |
| 1879 LONG image_role = 0; | 1879 LONG image_role = 0; |
| 1880 ASSERT_HRESULT_SUCCEEDED(image->role(&image_role)); | 1880 ASSERT_HRESULT_SUCCEEDED(image->role(&image_role)); |
| 1881 ASSERT_EQ(ROLE_SYSTEM_GRAPHIC, image_role); | 1881 ASSERT_EQ(ROLE_SYSTEM_GRAPHIC, image_role); |
| 1882 | 1882 |
| 1883 base::win::ScopedComPtr<IAccessibleAction> image_action; | 1883 base::win::ScopedComPtr<IAccessibleAction> image_action; |
| 1884 ASSERT_HRESULT_SUCCEEDED(image.QueryInterface(image_action.Receive())); | 1884 ASSERT_HRESULT_SUCCEEDED(image.CopyTo(image_action.Receive())); |
| 1885 | 1885 |
| 1886 LONG n_actions = 0; | 1886 LONG n_actions = 0; |
| 1887 EXPECT_HRESULT_SUCCEEDED(image_action->nActions(&n_actions)); | 1887 EXPECT_HRESULT_SUCCEEDED(image_action->nActions(&n_actions)); |
| 1888 EXPECT_EQ(1, n_actions); | 1888 EXPECT_EQ(1, n_actions); |
| 1889 | 1889 |
| 1890 base::win::ScopedBstr action_name; | 1890 base::win::ScopedBstr action_name; |
| 1891 EXPECT_HRESULT_SUCCEEDED(image_action->get_name(0, action_name.Receive())); | 1891 EXPECT_HRESULT_SUCCEEDED(image_action->get_name(0, action_name.Receive())); |
| 1892 EXPECT_EQ(L"click", std::wstring(action_name, action_name.Length())); | 1892 EXPECT_EQ(L"click", std::wstring(action_name, action_name.Length())); |
| 1893 action_name.Release(); | 1893 action_name.Release(); |
| 1894 EXPECT_HRESULT_FAILED(image_action->get_name(1, action_name.Receive())); | 1894 EXPECT_HRESULT_FAILED(image_action->get_name(1, action_name.Receive())); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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.CopyTo(table2.Receive())); |
| 1982 EXPECT_HRESULT_SUCCEEDED(table2->get_cellAt(0, 0, cell.Receive())); | 1982 EXPECT_HRESULT_SUCCEEDED(table2->get_cellAt(0, 0, cell.Receive())); |
| 1983 EXPECT_HRESULT_SUCCEEDED(cell.QueryInterface(cell1.Receive())); | 1983 EXPECT_HRESULT_SUCCEEDED(cell.CopyTo(cell1.Receive())); |
| 1984 | 1984 |
| 1985 base::win::ScopedBstr name; | 1985 base::win::ScopedBstr name; |
| 1986 base::win::ScopedVariant childid_self(CHILDID_SELF); | 1986 base::win::ScopedVariant childid_self(CHILDID_SELF); |
| 1987 base::win::ScopedComPtr<IAccessibleTableCell> accessible_cell; | 1987 base::win::ScopedComPtr<IAccessibleTableCell> accessible_cell; |
| 1988 LONG row_index = -1; | 1988 LONG row_index = -1; |
| 1989 LONG column_index = -1; | 1989 LONG column_index = -1; |
| 1990 EXPECT_HRESULT_SUCCEEDED(cell1->role(&role)); | 1990 EXPECT_HRESULT_SUCCEEDED(cell1->role(&role)); |
| 1991 EXPECT_EQ(ROLE_SYSTEM_CELL, role); | 1991 EXPECT_EQ(ROLE_SYSTEM_CELL, role); |
| 1992 EXPECT_HRESULT_SUCCEEDED(cell1->get_accName(childid_self, name.Receive())); | 1992 EXPECT_HRESULT_SUCCEEDED(cell1->get_accName(childid_self, name.Receive())); |
| 1993 // EXPECT_STREQ(L"AD", name); | 1993 // EXPECT_STREQ(L"AD", name); |
| 1994 EXPECT_HRESULT_SUCCEEDED(cell1.QueryInterface(accessible_cell.Receive())); | 1994 EXPECT_HRESULT_SUCCEEDED(cell1.CopyTo(accessible_cell.Receive())); |
| 1995 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index)); | 1995 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index)); |
| 1996 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index)); | 1996 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index)); |
| 1997 EXPECT_EQ(0, row_index); | 1997 EXPECT_EQ(0, row_index); |
| 1998 EXPECT_EQ(0, column_index); | 1998 EXPECT_EQ(0, column_index); |
| 1999 name.Reset(); | 1999 name.Reset(); |
| 2000 accessible_cell.Reset(); | 2000 accessible_cell.Reset(); |
| 2001 | 2001 |
| 2002 // The first cell has a rowspan of 2, try navigating down and expect to get | 2002 // The first cell has a rowspan of 2, try navigating down and expect to get |
| 2003 // at the end of the table. | 2003 // at the end of the table. |
| 2004 base::win::ScopedVariant variant; | 2004 base::win::ScopedVariant variant; |
| 2005 EXPECT_HRESULT_SUCCEEDED( | 2005 EXPECT_HRESULT_SUCCEEDED( |
| 2006 cell1->accNavigate(NAVDIR_DOWN, childid_self, variant.Receive())); | 2006 cell1->accNavigate(NAVDIR_DOWN, childid_self, variant.Receive())); |
| 2007 ASSERT_EQ(VT_EMPTY, variant.type()); | 2007 ASSERT_EQ(VT_EMPTY, variant.type()); |
| 2008 | 2008 |
| 2009 // Try navigating to the cell in the first row, 2nd column. | 2009 // Try navigating to the cell in the first row, 2nd column. |
| 2010 base::win::ScopedComPtr<IAccessible2> cell2; | 2010 base::win::ScopedComPtr<IAccessible2> cell2; |
| 2011 EXPECT_HRESULT_SUCCEEDED( | 2011 EXPECT_HRESULT_SUCCEEDED( |
| 2012 cell1->accNavigate(NAVDIR_RIGHT, childid_self, variant.Receive())); | 2012 cell1->accNavigate(NAVDIR_RIGHT, childid_self, variant.Receive())); |
| 2013 ASSERT_NE(nullptr, V_DISPATCH(variant.AsInput())); | 2013 ASSERT_NE(nullptr, V_DISPATCH(variant.AsInput())); |
| 2014 ASSERT_EQ(VT_DISPATCH, variant.type()); | 2014 ASSERT_EQ(VT_DISPATCH, variant.type()); |
| 2015 V_DISPATCH(variant.AsInput())->QueryInterface(cell2.Receive()); | 2015 V_DISPATCH(variant.AsInput())->QueryInterface(cell2.Receive()); |
| 2016 EXPECT_HRESULT_SUCCEEDED(cell2->role(&role)); | 2016 EXPECT_HRESULT_SUCCEEDED(cell2->role(&role)); |
| 2017 EXPECT_EQ(ROLE_SYSTEM_CELL, role); | 2017 EXPECT_EQ(ROLE_SYSTEM_CELL, role); |
| 2018 EXPECT_HRESULT_SUCCEEDED(cell2->get_accName(childid_self, name.Receive())); | 2018 EXPECT_HRESULT_SUCCEEDED(cell2->get_accName(childid_self, name.Receive())); |
| 2019 // EXPECT_STREQ(L"BC", name); | 2019 // EXPECT_STREQ(L"BC", name); |
| 2020 EXPECT_HRESULT_SUCCEEDED(cell2.QueryInterface(accessible_cell.Receive())); | 2020 EXPECT_HRESULT_SUCCEEDED(cell2.CopyTo(accessible_cell.Receive())); |
| 2021 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index)); | 2021 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_rowIndex(&row_index)); |
| 2022 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index)); | 2022 EXPECT_HRESULT_SUCCEEDED(accessible_cell->get_columnIndex(&column_index)); |
| 2023 EXPECT_EQ(0, row_index); | 2023 EXPECT_EQ(0, row_index); |
| 2024 EXPECT_EQ(1, column_index); | 2024 EXPECT_EQ(1, column_index); |
| 2025 variant.Reset(); | 2025 variant.Reset(); |
| 2026 name.Reset(); | 2026 name.Reset(); |
| 2027 accessible_cell.Reset(); | 2027 accessible_cell.Reset(); |
| 2028 | 2028 |
| 2029 // Try navigating to the cell in the second row, 2nd column. | 2029 // Try navigating to the cell in the second row, 2nd column. |
| 2030 base::win::ScopedComPtr<IAccessible2> cell3; | 2030 base::win::ScopedComPtr<IAccessible2> cell3; |
| 2031 EXPECT_HRESULT_SUCCEEDED( | 2031 EXPECT_HRESULT_SUCCEEDED( |
| 2032 cell2->accNavigate(NAVDIR_DOWN, childid_self, variant.Receive())); | 2032 cell2->accNavigate(NAVDIR_DOWN, childid_self, variant.Receive())); |
| 2033 ASSERT_NE(nullptr, V_DISPATCH(variant.AsInput())); | 2033 ASSERT_NE(nullptr, V_DISPATCH(variant.AsInput())); |
| 2034 ASSERT_EQ(VT_DISPATCH, variant.type()); | 2034 ASSERT_EQ(VT_DISPATCH, variant.type()); |
| 2035 V_DISPATCH(variant.AsInput())->QueryInterface(cell3.Receive()); | 2035 V_DISPATCH(variant.AsInput())->QueryInterface(cell3.Receive()); |
| 2036 EXPECT_HRESULT_SUCCEEDED(cell3->role(&role)); | 2036 EXPECT_HRESULT_SUCCEEDED(cell3->role(&role)); |
| 2037 EXPECT_EQ(ROLE_SYSTEM_CELL, role); | 2037 EXPECT_EQ(ROLE_SYSTEM_CELL, role); |
| 2038 EXPECT_HRESULT_SUCCEEDED(cell3->get_accName(childid_self, name.Receive())); | 2038 EXPECT_HRESULT_SUCCEEDED(cell3->get_accName(childid_self, name.Receive())); |
| 2039 // EXPECT_STREQ(L"EF", name); | 2039 // EXPECT_STREQ(L"EF", name); |
| 2040 EXPECT_HRESULT_SUCCEEDED(cell3.QueryInterface(accessible_cell.Receive())); | 2040 EXPECT_HRESULT_SUCCEEDED(cell3.CopyTo(accessible_cell.Receive())); |
| 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 |
| OLD | NEW |