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

Unified Diff: content/browser/accessibility/browser_accessibility_win_unittest.cc

Issue 2864953002: Split out the MSCOM pieces of BrowserAccessibilityWin into a seperate class. (Closed)
Patch Set: follow up comment Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_win_unittest.cc
diff --git a/content/browser/accessibility/browser_accessibility_win_unittest.cc b/content/browser/accessibility/browser_accessibility_win_unittest.cc
index bad00f3dbfa8bf73da8ba30e9063de8bf7a6722b..27ad112411f971963a810577f296223491ff95ca 100644
--- a/content/browser/accessibility/browser_accessibility_win_unittest.cc
+++ b/content/browser/accessibility/browser_accessibility_win_unittest.cc
@@ -24,70 +24,6 @@
#include "ui/base/win/atl_module.h"
namespace content {
-namespace {
-
-
-// CountedBrowserAccessibility ------------------------------------------------
-
-// Subclass of BrowserAccessibilityWin that counts the number of instances.
-class CountedBrowserAccessibility : public BrowserAccessibilityWin {
- public:
- CountedBrowserAccessibility();
- ~CountedBrowserAccessibility() override;
-
- static void reset() { num_instances_ = 0; }
- static int num_instances() { return num_instances_; }
-
- private:
- static int num_instances_;
-
- DISALLOW_COPY_AND_ASSIGN(CountedBrowserAccessibility);
-};
-
-// static
-int CountedBrowserAccessibility::num_instances_ = 0;
-
-CountedBrowserAccessibility::CountedBrowserAccessibility() {
- ++num_instances_;
-}
-
-CountedBrowserAccessibility::~CountedBrowserAccessibility() {
- --num_instances_;
-}
-
-
-// CountedBrowserAccessibilityFactory -----------------------------------------
-
-// Factory that creates a CountedBrowserAccessibility.
-class CountedBrowserAccessibilityFactory : public BrowserAccessibilityFactory {
- public:
- CountedBrowserAccessibilityFactory();
-
- private:
- ~CountedBrowserAccessibilityFactory() override;
-
- BrowserAccessibility* Create() override;
-
- DISALLOW_COPY_AND_ASSIGN(CountedBrowserAccessibilityFactory);
-};
-
-CountedBrowserAccessibilityFactory::CountedBrowserAccessibilityFactory() {
-}
-
-CountedBrowserAccessibilityFactory::~CountedBrowserAccessibilityFactory() {
-}
-
-BrowserAccessibility* CountedBrowserAccessibilityFactory::Create() {
- CComObject<CountedBrowserAccessibility>* instance;
- HRESULT hr = CComObject<CountedBrowserAccessibility>::CreateInstance(
- &instance);
- DCHECK(SUCCEEDED(hr));
- instance->AddRef();
- return instance;
-}
-
-} // namespace
-
// BrowserAccessibilityTest ---------------------------------------------------
@@ -147,24 +83,21 @@ TEST_F(BrowserAccessibilityTest, TestNoLeaks) {
// ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility, and ensure that exactly 3 instances were
// created. Note that the manager takes ownership of the factory.
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, button, checkbox), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
+ new BrowserAccessibilityFactory()));
// Delete the manager and test that all 3 instances are deleted.
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
// Construct a manager again, and this time use the IAccessible interface
// to get new references to two of the three nodes in the tree.
manager.reset(BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, button, checkbox), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
- IAccessible* root_accessible = ToBrowserAccessibilityWin(manager->GetRoot());
+ new BrowserAccessibilityFactory()));
+ IAccessible* root_accessible =
+ ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM();
IDispatch* root_iaccessible = NULL;
IDispatch* child1_iaccessible = NULL;
base::win::ScopedVariant childid_self(CHILDID_SELF);
@@ -177,14 +110,11 @@ TEST_F(BrowserAccessibilityTest, TestNoLeaks) {
// Now delete the manager, and only one of the three nodes in the tree
// should be released.
manager.reset();
- ASSERT_EQ(2, CountedBrowserAccessibility::num_instances());
// Release each of our references and make sure that each one results in
// the instance being deleted as its reference count hits zero.
root_iaccessible->Release();
- ASSERT_EQ(1, CountedBrowserAccessibility::num_instances());
child1_iaccessible->Release();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
@@ -207,18 +137,17 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
// Construct a BrowserAccessibilityManager with this
// ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility.
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
- BrowserAccessibilityManager::Create(
- MakeAXTreeUpdate(root, text), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ BrowserAccessibilityManager::Create(MakeAXTreeUpdate(root, text), nullptr,
+ new BrowserAccessibilityFactory()));
// Query for the text IAccessible and verify that it returns "old text" as its
// value.
base::win::ScopedVariant one(1);
base::win::ScopedComPtr<IDispatch> text_dispatch;
- HRESULT hr = ToBrowserAccessibilityWin(manager->GetRoot())->get_accChild(
- one, text_dispatch.Receive());
+ HRESULT hr = ToBrowserAccessibilityWin(manager->GetRoot())
+ ->GetCOM()
+ ->get_accChild(one, text_dispatch.Receive());
ASSERT_EQ(S_OK, hr);
base::win::ScopedComPtr<IAccessible> text_accessible;
@@ -250,8 +179,9 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
// Query for the text IAccessible and verify that it now returns "new text"
// as its value.
- hr = ToBrowserAccessibilityWin(manager->GetRoot())->get_accChild(
- one, text_dispatch.Receive());
+ hr = ToBrowserAccessibilityWin(manager->GetRoot())
+ ->GetCOM()
+ ->get_accChild(one, text_dispatch.Receive());
ASSERT_EQ(S_OK, hr);
hr = text_dispatch.CopyTo(text_accessible.Receive());
@@ -267,7 +197,6 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChange) {
// Delete the manager and test that all BrowserAccessibility instances are
// deleted.
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
@@ -302,12 +231,10 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
// ui::AXNodeData tree and a factory for an instance-counting
// BrowserAccessibility and ensure that exactly 4 instances were
// created. Note that the manager takes ownership of the factory.
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, div, text3, text4), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(4, CountedBrowserAccessibility::num_instances());
+ new BrowserAccessibilityFactory()));
// Notify the BrowserAccessibilityManager that the div node and its children
// were removed and ensure that only one BrowserAccessibility instance exists.
@@ -319,12 +246,10 @@ TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) {
std::vector<AXEventNotificationDetails> events;
events.push_back(param);
manager->OnAccessibilityEvents(events);
- ASSERT_EQ(1, CountedBrowserAccessibility::num_instances());
// Delete the manager and test that all BrowserAccessibility instances are
// deleted.
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestTextBoundaries) {
@@ -394,21 +319,19 @@ TEST_F(BrowserAccessibilityTest, TestTextBoundaries) {
inline_box2.AddIntListAttribute(
ui::AX_ATTR_WORD_STARTS, word_start_offsets2);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, text_field, static_text1, inline_box1,
line_break, static_text2, inline_box2),
- nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(7, CountedBrowserAccessibility::num_instances());
+ nullptr, new BrowserAccessibilityFactory()));
BrowserAccessibilityWin* root_obj =
ToBrowserAccessibilityWin(manager->GetRoot());
ASSERT_NE(nullptr, root_obj);
ASSERT_EQ(1U, root_obj->PlatformChildCount());
- BrowserAccessibilityWin* text_field_obj =
- ToBrowserAccessibilityWin(root_obj->PlatformGetChild(0));
+ BrowserAccessibilityComWin* text_field_obj =
+ ToBrowserAccessibilityWin(root_obj->PlatformGetChild(0))->GetCOM();
ASSERT_NE(nullptr, text_field_obj);
long text_len;
@@ -488,7 +411,6 @@ TEST_F(BrowserAccessibilityTest, TestTextBoundaries) {
// Delete the manager and test that all BrowserAccessibility instances are
// deleted.
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestSimpleHypertext) {
@@ -515,15 +437,13 @@ TEST_F(BrowserAccessibilityTest, TestSimpleHypertext) {
root.child_ids.push_back(text1.id);
root.child_ids.push_back(text2.id);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
- BrowserAccessibilityManager::Create(
- MakeAXTreeUpdate(root, text1, text2), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
+ BrowserAccessibilityManager::Create(MakeAXTreeUpdate(root, text1, text2),
+ nullptr,
+ new BrowserAccessibilityFactory()));
- BrowserAccessibilityWin* root_obj =
- ToBrowserAccessibilityWin(manager->GetRoot());
+ BrowserAccessibilityComWin* root_obj =
+ ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM();
long text_len;
EXPECT_EQ(S_OK, root_obj->get_nCharacters(&text_len));
@@ -560,7 +480,6 @@ TEST_F(BrowserAccessibilityTest, TestSimpleHypertext) {
EXPECT_EQ(-2, hyperlink_index);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestComplexHypertext) {
@@ -574,7 +493,7 @@ TEST_F(BrowserAccessibilityTest, TestComplexHypertext) {
const base::string16 link_text_name = L"Blue";
// Each control (combo / check box, button and link) will be represented by an
// embedded object character.
- const base::string16 embed(1, BrowserAccessibilityWin::kEmbeddedCharacter);
+ const base::string16 embed(1, BrowserAccessibilityComWin::kEmbeddedCharacter);
const base::string16 root_hypertext =
text1_name + embed + text2_name + embed + embed + embed;
const long root_hypertext_len = root_hypertext.length();
@@ -637,16 +556,14 @@ TEST_F(BrowserAccessibilityTest, TestComplexHypertext) {
root.child_ids.push_back(button.id);
root.child_ids.push_back(link.id);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, text1, combo_box, text2, check_box, button,
button_text, link, link_text),
- nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(9, CountedBrowserAccessibility::num_instances());
+ nullptr, new BrowserAccessibilityFactory()));
- BrowserAccessibilityWin* root_obj =
- ToBrowserAccessibilityWin(manager->GetRoot());
+ BrowserAccessibilityComWin* root_obj =
+ ToBrowserAccessibilityWin(manager->GetRoot())->GetCOM();
long text_len;
EXPECT_EQ(S_OK, root_obj->get_nCharacters(&text_len));
@@ -725,19 +642,17 @@ TEST_F(BrowserAccessibilityTest, TestComplexHypertext) {
EXPECT_EQ(3, hyperlink_index);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
// Try creating an empty document with busy state. Readonly is
// set automatically.
- CountedBrowserAccessibility::reset();
const int32_t busy_state = 1 << ui::AX_STATE_BUSY;
const int32_t readonly_state = 1 << ui::AX_STATE_READ_ONLY;
std::unique_ptr<BrowserAccessibilityManager> manager(
new BrowserAccessibilityManagerWin(
BrowserAccessibilityManagerWin::GetEmptyDocument(), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ new BrowserAccessibilityFactory()));
// Verify the root is as we expect by default.
BrowserAccessibility* root = manager->GetRoot();
@@ -805,7 +720,6 @@ TEST_F(BrowserAccessibilityTest, TestCreateEmptyDocument) {
// Ensure we properly cleaned up.
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
// This is a regression test for a bug where the initial empty document
@@ -817,7 +731,7 @@ TEST_F(BrowserAccessibilityTest, EmptyDocHasUniqueIdWin) {
std::unique_ptr<BrowserAccessibilityManagerWin> manager(
new BrowserAccessibilityManagerWin(
BrowserAccessibilityManagerWin::GetEmptyDocument(), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ new BrowserAccessibilityFactory()));
// Verify the root is as we expect by default.
BrowserAccessibility* root = manager->GetRoot();
@@ -853,12 +767,10 @@ TEST_F(BrowserAccessibilityTest, TestIA2Attributes) {
root.child_ids.push_back(2);
root.child_ids.push_back(3);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, pseudo_before, checkbox), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -871,7 +783,8 @@ TEST_F(BrowserAccessibilityTest, TestIA2Attributes) {
ASSERT_NE(nullptr, pseudo_accessible);
base::win::ScopedBstr attributes;
- HRESULT hr = pseudo_accessible->get_attributes(attributes.Receive());
+ HRESULT hr =
+ pseudo_accessible->GetCOM()->get_attributes(attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_NE(nullptr, static_cast<BSTR>(attributes));
std::wstring attributes_str(attributes, attributes.Length());
@@ -882,14 +795,13 @@ TEST_F(BrowserAccessibilityTest, TestIA2Attributes) {
ASSERT_NE(nullptr, checkbox_accessible);
attributes.Reset();
- hr = checkbox_accessible->get_attributes(attributes.Receive());
+ hr = checkbox_accessible->GetCOM()->get_attributes(attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_NE(nullptr, static_cast<BSTR>(attributes));
attributes_str = std::wstring(attributes, attributes.Length());
EXPECT_EQ(L"checkable:true;", attributes_str);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestValueAttributeInTextControls) {
@@ -958,14 +870,12 @@ TEST_F(BrowserAccessibilityTest, TestValueAttributeInTextControls) {
root.child_ids.push_back(8); // Link.
root.child_ids.push_back(10); // Slider.
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, combo_box, combo_box_text, search_box,
search_box_text, new_line, text_field, link,
link_text, slider, slider_text),
- nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(11, CountedBrowserAccessibility::num_instances());
+ nullptr, new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -996,23 +906,25 @@ TEST_F(BrowserAccessibilityTest, TestValueAttributeInTextControls) {
base::win::ScopedVariant childid_slider(5);
base::win::ScopedBstr value;
- HRESULT hr =
- combo_box_accessible->get_accValue(childid_self, value.Receive());
+ HRESULT hr = combo_box_accessible->GetCOM()->get_accValue(childid_self,
+ value.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_STREQ(L"Combo box text", value);
value.Reset();
- hr = search_box_accessible->get_accValue(childid_self, value.Receive());
+ hr = search_box_accessible->GetCOM()->get_accValue(childid_self,
+ value.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_STREQ(L"Search box text\n", value);
value.Reset();
- hr = text_field_accessible->get_accValue(childid_self, value.Receive());
+ hr = text_field_accessible->GetCOM()->get_accValue(childid_self,
+ value.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_STREQ(L"Text field text", value);
value.Reset();
// Other controls, such as links, should not use their inner text as their
// value. Only text entry controls.
- hr = link_accessible->get_accValue(childid_self, value.Receive());
+ hr = link_accessible->GetCOM()->get_accValue(childid_self, value.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0u, value.Length());
value.Reset();
@@ -1020,13 +932,12 @@ TEST_F(BrowserAccessibilityTest, TestValueAttributeInTextControls) {
// Sliders and other range controls should expose their current value and not
// their inner text.
// Also, try accessing the slider via its child number instead of directly.
- hr = root_accessible->get_accValue(childid_slider, value.Receive());
+ hr = root_accessible->GetCOM()->get_accValue(childid_slider, value.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_STREQ(L"5", value);
value.Reset();
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestWordBoundariesInTextControls) {
@@ -1123,14 +1034,12 @@ TEST_F(BrowserAccessibilityTest, TestWordBoundariesInTextControls) {
root.child_ids.push_back(2); // Textarea.
root.child_ids.push_back(7); // Text field.
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, textarea, textarea_div, textarea_text,
textarea_line1, textarea_line2, text_field,
text_field_div, text_field_text, text_field_line),
- nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(10, CountedBrowserAccessibility::num_instances());
+ nullptr, new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -1146,11 +1055,11 @@ TEST_F(BrowserAccessibilityTest, TestWordBoundariesInTextControls) {
ASSERT_NE(nullptr, text_field_accessible);
base::win::ScopedComPtr<IAccessibleText> textarea_object;
- EXPECT_HRESULT_SUCCEEDED(textarea_accessible->QueryInterface(
+ EXPECT_HRESULT_SUCCEEDED(textarea_accessible->GetCOM()->QueryInterface(
IID_IAccessibleText,
reinterpret_cast<void**>(textarea_object.Receive())));
base::win::ScopedComPtr<IAccessibleText> text_field_object;
- EXPECT_HRESULT_SUCCEEDED(text_field_accessible->QueryInterface(
+ EXPECT_HRESULT_SUCCEEDED(text_field_accessible->GetCOM()->QueryInterface(
IID_IAccessibleText,
reinterpret_cast<void**>(text_field_object.Receive())));
@@ -1192,7 +1101,6 @@ TEST_F(BrowserAccessibilityTest, TestWordBoundariesInTextControls) {
text_field_object.Reset();
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestCaretAndSelectionInSimpleFields) {
@@ -1224,12 +1132,10 @@ TEST_F(BrowserAccessibilityTest, TestCaretAndSelectionInSimpleFields) {
root.child_ids.push_back(2);
root.child_ids.push_back(3);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, combo_box, text_field), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(3, CountedBrowserAccessibility::num_instances());
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -1254,11 +1160,11 @@ TEST_F(BrowserAccessibilityTest, TestCaretAndSelectionInSimpleFields) {
LONG selection_end = -2;
// Test get_caretOffset.
- HRESULT hr = combo_box_accessible->get_caretOffset(&caret_offset);
+ HRESULT hr = combo_box_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, caret_offset);
// The caret should be at the end of the selection.
- hr = text_field_accessible->get_caretOffset(&caret_offset);
+ hr = text_field_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(2, caret_offset);
@@ -1268,30 +1174,29 @@ TEST_F(BrowserAccessibilityTest, TestCaretAndSelectionInSimpleFields) {
ToBrowserAccessibilityWin(manager->GetFocus()));
// The caret should not have moved.
- hr = text_field_accessible->get_caretOffset(&caret_offset);
+ hr = text_field_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(2, caret_offset);
// Test get_nSelections.
- hr = combo_box_accessible->get_nSelections(&n_selections);
+ hr = combo_box_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, n_selections);
- hr = text_field_accessible->get_nSelections(&n_selections);
+ hr = text_field_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, n_selections);
// Test get_selection.
- hr = combo_box_accessible->get_selection(
+ hr = combo_box_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(E_INVALIDARG, hr); // No selections available.
- hr = text_field_accessible->get_selection(
+ hr = text_field_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, selection_start);
EXPECT_EQ(2, selection_end);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) {
@@ -1341,11 +1246,9 @@ TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) {
update.tree_data.sel_focus_object_id = 5;
update.tree_data.sel_focus_offset = 1;
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
- BrowserAccessibilityManager::Create(
- update, nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(5, CountedBrowserAccessibility::num_instances());
+ BrowserAccessibilityManager::Create(update, nullptr,
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -1363,12 +1266,13 @@ TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) {
LONG n_selections = -2;
// No selection should be present.
- HRESULT hr = div_editable_accessible->get_nSelections(&n_selections);
+ HRESULT hr =
+ div_editable_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, n_selections);
// The caret should be on the embedded object character.
- hr = div_editable_accessible->get_caretOffset(&caret_offset);
+ hr = div_editable_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(6, caret_offset);
@@ -1390,29 +1294,28 @@ TEST_F(BrowserAccessibilityTest, TestCaretInContentEditables) {
ASSERT_NE(nullptr, link_text_accessible);
// The caret should not have moved.
- hr = div_editable_accessible->get_nSelections(&n_selections);
+ hr = div_editable_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, n_selections);
- hr = div_editable_accessible->get_caretOffset(&caret_offset);
+ hr = div_editable_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(6, caret_offset);
- hr = link_accessible->get_nSelections(&n_selections);
+ hr = link_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, n_selections);
- hr = link_text_accessible->get_nSelections(&n_selections);
+ hr = link_text_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, n_selections);
- hr = link_accessible->get_caretOffset(&caret_offset);
+ hr = link_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, caret_offset);
- hr = link_text_accessible->get_caretOffset(&caret_offset);
+ hr = link_text_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, caret_offset);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) {
@@ -1462,11 +1365,9 @@ TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) {
update.tree_data.sel_focus_object_id = 5;
update.tree_data.sel_focus_offset = 4;
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
- BrowserAccessibilityManager::Create(
- update, nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(5, CountedBrowserAccessibility::num_instances());
+ BrowserAccessibilityManager::Create(update, nullptr,
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -1498,46 +1399,47 @@ TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) {
ASSERT_NE(nullptr, link_text_accessible);
// get_nSelections should work on all objects.
- HRESULT hr = div_editable_accessible->get_nSelections(&n_selections);
+ HRESULT hr =
+ div_editable_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, n_selections);
- hr = text_accessible->get_nSelections(&n_selections);
+ hr = text_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, n_selections);
- hr = link_accessible->get_nSelections(&n_selections);
+ hr = link_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, n_selections);
- hr = link_text_accessible->get_nSelections(&n_selections);
+ hr = link_text_accessible->GetCOM()->get_nSelections(&n_selections);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, n_selections);
// get_selection should be unaffected by focus placement.
- hr = div_editable_accessible->get_selection(
+ hr = div_editable_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, selection_start);
// selection_end should be after embedded object character.
EXPECT_EQ(7, selection_end);
- hr = text_accessible->get_selection(
+ hr = text_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, selection_start);
// No embedded character on this object, only the first part of the text.
EXPECT_EQ(6, selection_end);
- hr = link_accessible->get_selection(
+ hr = link_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, selection_start);
EXPECT_EQ(4, selection_end);
- hr = link_text_accessible->get_selection(
+ hr = link_text_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, selection_start);
EXPECT_EQ(4, selection_end);
// The caret should be at the focus (the end) of the selection.
- hr = div_editable_accessible->get_caretOffset(&caret_offset);
+ hr = div_editable_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(7, caret_offset);
@@ -1547,27 +1449,26 @@ TEST_F(BrowserAccessibilityTest, TestSelectionInContentEditables) {
ToBrowserAccessibilityWin(manager->GetFocus()));
// The caret should not have moved.
- hr = div_editable_accessible->get_caretOffset(&caret_offset);
+ hr = div_editable_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(7, caret_offset);
// The caret offset should reflect the position of the selection's focus in
// any given object.
- hr = link_accessible->get_caretOffset(&caret_offset);
+ hr = link_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(4, caret_offset);
- hr = link_text_accessible->get_caretOffset(&caret_offset);
+ hr = link_text_accessible->GetCOM()->get_caretOffset(&caret_offset);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(4, caret_offset);
- hr = div_editable_accessible->get_selection(
+ hr = div_editable_accessible->GetCOM()->get_selection(
0L /* selection_index */, &selection_start, &selection_end);
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(1, selection_start);
EXPECT_EQ(7, selection_end);
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) {
@@ -1597,12 +1498,10 @@ TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) {
div.child_ids.push_back(3);
div.child_ids.push_back(4);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, div, link, text), nullptr,
- new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(4, CountedBrowserAccessibility::num_instances());
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* root_accessible =
@@ -1633,58 +1532,62 @@ TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) {
base::win::ScopedBstr bstr;
base::string16 div_hypertext(L"Click ");
- div_hypertext.push_back(BrowserAccessibilityWin::kEmbeddedCharacter);
+ div_hypertext.push_back(BrowserAccessibilityComWin::kEmbeddedCharacter);
// div_accessible and link_accessible are the only IA2 hyperlinks.
- EXPECT_HRESULT_FAILED(root_accessible->QueryInterface(
+ EXPECT_HRESULT_FAILED(root_accessible->GetCOM()->QueryInterface(
IID_IAccessibleHyperlink, reinterpret_cast<void**>(hyperlink.Receive())));
hyperlink.Reset();
- EXPECT_HRESULT_SUCCEEDED(div_accessible->QueryInterface(
+ EXPECT_HRESULT_SUCCEEDED(div_accessible->GetCOM()->QueryInterface(
IID_IAccessibleHyperlink, reinterpret_cast<void**>(hyperlink.Receive())));
hyperlink.Reset();
- EXPECT_HRESULT_FAILED(text_accessible->QueryInterface(
+ EXPECT_HRESULT_FAILED(text_accessible->GetCOM()->QueryInterface(
IID_IAccessibleHyperlink, reinterpret_cast<void**>(hyperlink.Receive())));
hyperlink.Reset();
- EXPECT_HRESULT_SUCCEEDED(link_accessible->QueryInterface(
+ EXPECT_HRESULT_SUCCEEDED(link_accessible->GetCOM()->QueryInterface(
IID_IAccessibleHyperlink, reinterpret_cast<void**>(hyperlink.Receive())));
hyperlink.Reset();
- EXPECT_HRESULT_SUCCEEDED(root_accessible->nActions(&n_actions));
+ EXPECT_HRESULT_SUCCEEDED(root_accessible->GetCOM()->nActions(&n_actions));
EXPECT_EQ(0, n_actions);
- EXPECT_HRESULT_SUCCEEDED(div_accessible->nActions(&n_actions));
+ EXPECT_HRESULT_SUCCEEDED(div_accessible->GetCOM()->nActions(&n_actions));
EXPECT_EQ(1, n_actions);
- EXPECT_HRESULT_SUCCEEDED(text_accessible->nActions(&n_actions));
+ EXPECT_HRESULT_SUCCEEDED(text_accessible->GetCOM()->nActions(&n_actions));
EXPECT_EQ(0, n_actions);
- EXPECT_HRESULT_SUCCEEDED(link_accessible->nActions(&n_actions));
+ EXPECT_HRESULT_SUCCEEDED(link_accessible->GetCOM()->nActions(&n_actions));
EXPECT_EQ(1, n_actions);
- EXPECT_HRESULT_FAILED(root_accessible->get_anchor(0, anchor.Receive()));
+ EXPECT_HRESULT_FAILED(
+ root_accessible->GetCOM()->get_anchor(0, anchor.Receive()));
anchor.Reset();
- HRESULT hr = div_accessible->get_anchor(0, anchor.Receive());
+ HRESULT hr = div_accessible->GetCOM()->get_anchor(0, anchor.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(VT_BSTR, anchor.type());
bstr.Reset(V_BSTR(anchor.ptr()));
EXPECT_STREQ(div_hypertext.c_str(), bstr);
bstr.Reset();
anchor.Reset();
- EXPECT_HRESULT_FAILED(text_accessible->get_anchor(0, anchor.Receive()));
+ EXPECT_HRESULT_FAILED(
+ text_accessible->GetCOM()->get_anchor(0, anchor.Receive()));
anchor.Reset();
- hr = link_accessible->get_anchor(0, anchor.Receive());
+ hr = link_accessible->GetCOM()->get_anchor(0, anchor.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(VT_BSTR, anchor.type());
bstr.Reset(V_BSTR(anchor.ptr()));
EXPECT_STREQ(L"here", bstr);
bstr.Reset();
anchor.Reset();
- EXPECT_HRESULT_FAILED(div_accessible->get_anchor(1, anchor.Receive()));
+ EXPECT_HRESULT_FAILED(
+ div_accessible->GetCOM()->get_anchor(1, anchor.Receive()));
anchor.Reset();
- EXPECT_HRESULT_FAILED(link_accessible->get_anchor(1, anchor.Receive()));
+ EXPECT_HRESULT_FAILED(
+ link_accessible->GetCOM()->get_anchor(1, anchor.Receive()));
anchor.Reset();
EXPECT_HRESULT_FAILED(
- root_accessible->get_anchorTarget(0, anchor_target.Receive()));
+ root_accessible->GetCOM()->get_anchorTarget(0, anchor_target.Receive()));
anchor_target.Reset();
- hr = div_accessible->get_anchorTarget(0, anchor_target.Receive());
+ hr = div_accessible->GetCOM()->get_anchorTarget(0, anchor_target.Receive());
EXPECT_EQ(S_FALSE, hr);
EXPECT_EQ(VT_BSTR, anchor_target.type());
bstr.Reset(V_BSTR(anchor_target.ptr()));
@@ -1693,9 +1596,9 @@ TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) {
bstr.Reset();
anchor_target.Reset();
EXPECT_HRESULT_FAILED(
- text_accessible->get_anchorTarget(0, anchor_target.Receive()));
+ text_accessible->GetCOM()->get_anchorTarget(0, anchor_target.Receive()));
anchor_target.Reset();
- hr = link_accessible->get_anchorTarget(0, anchor_target.Receive());
+ hr = link_accessible->GetCOM()->get_anchorTarget(0, anchor_target.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(VT_BSTR, anchor_target.type());
bstr.Reset(V_BSTR(anchor_target.ptr()));
@@ -1703,24 +1606,28 @@ TEST_F(BrowserAccessibilityTest, TestIAccessibleHyperlink) {
bstr.Reset();
anchor_target.Reset();
EXPECT_HRESULT_FAILED(
- div_accessible->get_anchorTarget(1, anchor_target.Receive()));
+ div_accessible->GetCOM()->get_anchorTarget(1, anchor_target.Receive()));
anchor_target.Reset();
EXPECT_HRESULT_FAILED(
- link_accessible->get_anchorTarget(1, anchor_target.Receive()));
+ link_accessible->GetCOM()->get_anchorTarget(1, anchor_target.Receive()));
anchor_target.Reset();
- EXPECT_HRESULT_FAILED(root_accessible->get_startIndex(&start_index));
- EXPECT_HRESULT_SUCCEEDED(div_accessible->get_startIndex(&start_index));
+ EXPECT_HRESULT_FAILED(
+ root_accessible->GetCOM()->get_startIndex(&start_index));
+ EXPECT_HRESULT_SUCCEEDED(
+ div_accessible->GetCOM()->get_startIndex(&start_index));
EXPECT_EQ(0, start_index);
- EXPECT_HRESULT_FAILED(text_accessible->get_startIndex(&start_index));
- EXPECT_HRESULT_SUCCEEDED(link_accessible->get_startIndex(&start_index));
+ EXPECT_HRESULT_FAILED(
+ text_accessible->GetCOM()->get_startIndex(&start_index));
+ EXPECT_HRESULT_SUCCEEDED(
+ link_accessible->GetCOM()->get_startIndex(&start_index));
EXPECT_EQ(6, start_index);
- EXPECT_HRESULT_FAILED(root_accessible->get_endIndex(&end_index));
- EXPECT_HRESULT_SUCCEEDED(div_accessible->get_endIndex(&end_index));
+ EXPECT_HRESULT_FAILED(root_accessible->GetCOM()->get_endIndex(&end_index));
+ EXPECT_HRESULT_SUCCEEDED(div_accessible->GetCOM()->get_endIndex(&end_index));
EXPECT_EQ(1, end_index);
- EXPECT_HRESULT_FAILED(text_accessible->get_endIndex(&end_index));
- EXPECT_HRESULT_SUCCEEDED(link_accessible->get_endIndex(&end_index));
+ EXPECT_HRESULT_FAILED(text_accessible->GetCOM()->get_endIndex(&end_index));
+ EXPECT_HRESULT_SUCCEEDED(link_accessible->GetCOM()->get_endIndex(&end_index));
EXPECT_EQ(7, end_index);
}
@@ -1790,11 +1697,9 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
ui::AXTreeUpdate update = MakeAXTreeUpdate(root, div_editable, text_before,
link, link_text, text_after);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
- BrowserAccessibilityManager::Create(
- update, nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(6, CountedBrowserAccessibility::num_instances());
+ BrowserAccessibilityManager::Create(update, nullptr,
+ new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* ax_root =
@@ -1826,14 +1731,14 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
LONG n_characters, start_offset, end_offset;
base::win::ScopedBstr text_attributes;
- ASSERT_HRESULT_SUCCEEDED(ax_root->get_nCharacters(&n_characters));
+ ASSERT_HRESULT_SUCCEEDED(ax_root->GetCOM()->get_nCharacters(&n_characters));
ASSERT_EQ(1, n_characters);
- ASSERT_HRESULT_SUCCEEDED(ax_div->get_nCharacters(&n_characters));
+ ASSERT_HRESULT_SUCCEEDED(ax_div->GetCOM()->get_nCharacters(&n_characters));
ASSERT_EQ(15, n_characters);
// Test the style of the root.
- hr = ax_root->get_attributes(0, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_root->GetCOM()->get_attributes(0, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(1, end_offset);
@@ -1843,8 +1748,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
// Test the style of text_before.
for (LONG offset = 0; offset < 7; ++offset) {
- hr = ax_div->get_attributes(0, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_div->GetCOM()->get_attributes(0, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(7, end_offset);
@@ -1856,8 +1761,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
}
// Test the style of the link.
- hr = ax_link->get_attributes(0, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_link->GetCOM()->get_attributes(0, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(3, end_offset);
@@ -1875,8 +1780,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
base::string16(text_attributes).find(L"text-underline-type:single"));
text_attributes.Reset();
- hr = ax_link_text->get_attributes(2, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_link_text->GetCOM()->get_attributes(2, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(3, end_offset);
@@ -1898,8 +1803,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
// Test the style of text_after.
for (LONG offset = 8; offset < 15; ++offset) {
- hr = ax_div->get_attributes(offset, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_div->GetCOM()->get_attributes(offset, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(8, start_offset);
EXPECT_EQ(15, end_offset);
@@ -1918,8 +1823,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
}
// Test the style of the static text nodes.
- hr = ax_before->get_attributes(6, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_before->GetCOM()->get_attributes(6, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(7, end_offset);
@@ -1933,8 +1838,8 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
base::string16(text_attributes).find(L"invalid:spelling"));
text_attributes.Reset();
- hr = ax_after->get_attributes(6, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_after->GetCOM()->get_attributes(6, &start_offset, &end_offset,
+ text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(7, end_offset);
@@ -1953,7 +1858,6 @@ TEST_F(BrowserAccessibilityTest, TestTextAttributesInContentEditables) {
text_attributes.Reset();
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
@@ -2009,13 +1913,11 @@ TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
combo_box_div.child_ids.push_back(static_text1.id);
combo_box_div.child_ids.push_back(static_text2.id);
- CountedBrowserAccessibility::reset();
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, combo_box, combo_box_div, static_text1,
static_text2),
- nullptr, new CountedBrowserAccessibilityFactory()));
- ASSERT_EQ(5, CountedBrowserAccessibility::num_instances());
+ nullptr, new BrowserAccessibilityFactory()));
ASSERT_NE(nullptr, manager->GetRoot());
BrowserAccessibilityWin* ax_root =
@@ -2034,8 +1936,8 @@ TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
// Ensure that the first part of the value is not marked misspelled.
for (LONG offset = 0; offset < value1_length; ++offset) {
- hr = ax_combo_box->get_attributes(offset, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_combo_box->GetCOM()->get_attributes(
+ offset, &start_offset, &end_offset, text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(0, start_offset);
EXPECT_EQ(value1_length, end_offset);
@@ -2046,8 +1948,8 @@ TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
// Ensure that "helo" is marked misspelled.
for (LONG offset = value1_length; offset < value1_length + 4; ++offset) {
- hr = ax_combo_box->get_attributes(offset, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_combo_box->GetCOM()->get_attributes(
+ offset, &start_offset, &end_offset, text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(value1_length, start_offset);
EXPECT_EQ(value1_length + 4, end_offset);
@@ -2059,8 +1961,8 @@ TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
// Ensure that the last part of the value is not marked misspelled.
for (LONG offset = value1_length + 4; offset < combo_box_value_length;
++offset) {
- hr = ax_combo_box->get_attributes(offset, &start_offset, &end_offset,
- text_attributes.Receive());
+ hr = ax_combo_box->GetCOM()->get_attributes(
+ offset, &start_offset, &end_offset, text_attributes.Receive());
EXPECT_EQ(S_OK, hr);
EXPECT_EQ(value1_length + 4, start_offset);
EXPECT_EQ(combo_box_value_length, end_offset);
@@ -2070,7 +1972,6 @@ TEST_F(BrowserAccessibilityTest, TestMisspellingsInSimpleTextFields) {
}
manager.reset();
- ASSERT_EQ(0, CountedBrowserAccessibility::num_instances());
}
TEST_F(BrowserAccessibilityTest, TestDeepestFirstLastChild) {
@@ -2101,7 +2002,7 @@ TEST_F(BrowserAccessibilityTest, TestDeepestFirstLastChild) {
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2),
- nullptr, new CountedBrowserAccessibilityFactory()));
+ nullptr, new BrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
ASSERT_NE(nullptr, root_accessible);
@@ -2184,7 +2085,7 @@ TEST_F(BrowserAccessibilityTest, TestInheritedStringAttributes) {
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, child1, child2, child2_child1, child2_child2),
- nullptr, new CountedBrowserAccessibilityFactory()));
+ nullptr, new BrowserAccessibilityFactory()));
BrowserAccessibility* root_accessible = manager->GetRoot();
ASSERT_NE(nullptr, root_accessible);
@@ -2270,7 +2171,7 @@ TEST_F(BrowserAccessibilityTest, TestInheritedStringAttributes) {
TEST_F(BrowserAccessibilityTest, TestSanitizeStringAttributeForIA2) {
base::string16 input(L"\\:=,;");
base::string16 output;
- BrowserAccessibilityWin::SanitizeStringAttributeForIA2(input, &output);
+ BrowserAccessibilityComWin::SanitizeStringAttributeForIA2(input, &output);
EXPECT_EQ(L"\\\\\\:\\=\\,\\;", output);
}
@@ -2286,7 +2187,7 @@ TEST_F(BrowserAccessibilityTest, UniqueIdWinInvalidAfterDeletingTree) {
std::unique_ptr<BrowserAccessibilityManagerWin> manager(
new BrowserAccessibilityManagerWin(
MakeAXTreeUpdate(root_node, child_node), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ new BrowserAccessibilityFactory()));
BrowserAccessibility* root = manager->GetRoot();
int32_t root_unique_id = root->unique_id();
@@ -2294,11 +2195,9 @@ TEST_F(BrowserAccessibilityTest, UniqueIdWinInvalidAfterDeletingTree) {
int32_t child_unique_id = child->unique_id();
// Now destroy that original tree and create a new tree.
- manager.reset(
- new BrowserAccessibilityManagerWin(
- MakeAXTreeUpdate(root_node, child_node),
- nullptr,
- new CountedBrowserAccessibilityFactory()));
+ manager.reset(new BrowserAccessibilityManagerWin(
+ MakeAXTreeUpdate(root_node, child_node), nullptr,
+ new BrowserAccessibilityFactory()));
root = manager->GetRoot();
int32_t root_unique_id_2 = root->unique_id();
child = root->PlatformGetChild(0);
@@ -2311,26 +2210,26 @@ TEST_F(BrowserAccessibilityTest, UniqueIdWinInvalidAfterDeletingTree) {
// Trying to access the unique IDs of the old, deleted objects should fail.
base::win::ScopedVariant old_root_variant(-root_unique_id);
base::win::ScopedComPtr<IDispatch> old_root_dispatch;
- HRESULT hr = ToBrowserAccessibilityWin(root)->get_accChild(
+ HRESULT hr = ToBrowserAccessibilityWin(root)->GetCOM()->get_accChild(
old_root_variant, old_root_dispatch.Receive());
EXPECT_EQ(E_INVALIDARG, hr);
base::win::ScopedVariant old_child_variant(-child_unique_id);
base::win::ScopedComPtr<IDispatch> old_child_dispatch;
- hr = ToBrowserAccessibilityWin(root)->get_accChild(
+ hr = ToBrowserAccessibilityWin(root)->GetCOM()->get_accChild(
old_child_variant, old_child_dispatch.Receive());
EXPECT_EQ(E_INVALIDARG, hr);
// Trying to access the unique IDs of the new objects should succeed.
base::win::ScopedVariant new_root_variant(-root_unique_id_2);
base::win::ScopedComPtr<IDispatch> new_root_dispatch;
- hr = ToBrowserAccessibilityWin(root)->get_accChild(
+ hr = ToBrowserAccessibilityWin(root)->GetCOM()->get_accChild(
new_root_variant, new_root_dispatch.Receive());
EXPECT_EQ(S_OK, hr);
base::win::ScopedVariant new_child_variant(-child_unique_id_2);
base::win::ScopedComPtr<IDispatch> new_child_dispatch;
- hr = ToBrowserAccessibilityWin(root)->get_accChild(
+ hr = ToBrowserAccessibilityWin(root)->GetCOM()->get_accChild(
new_child_variant, new_child_dispatch.Receive());
EXPECT_EQ(S_OK, hr);
}
@@ -2347,19 +2246,20 @@ TEST_F(BrowserAccessibilityTest, AccChildOnlyReturnsDescendants) {
std::unique_ptr<BrowserAccessibilityManagerWin> manager(
new BrowserAccessibilityManagerWin(
MakeAXTreeUpdate(root_node, child_node), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ new BrowserAccessibilityFactory()));
BrowserAccessibility* root = manager->GetRoot();
BrowserAccessibility* child = root->PlatformGetChild(0);
base::win::ScopedVariant root_unique_id_variant(-root->unique_id());
base::win::ScopedComPtr<IDispatch> result;
- EXPECT_EQ(E_INVALIDARG, ToBrowserAccessibilityWin(child)->get_accChild(
- root_unique_id_variant, result.Receive()));
+ EXPECT_EQ(E_INVALIDARG,
+ ToBrowserAccessibilityWin(child)->GetCOM()->get_accChild(
+ root_unique_id_variant, result.Receive()));
base::win::ScopedVariant child_unique_id_variant(-child->unique_id());
- EXPECT_EQ(S_OK, ToBrowserAccessibilityWin(root)->get_accChild(
- child_unique_id_variant, result.Receive()));
+ EXPECT_EQ(S_OK, ToBrowserAccessibilityWin(root)->GetCOM()->get_accChild(
+ child_unique_id_variant, result.Receive()));
}
TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
@@ -2383,7 +2283,7 @@ TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
std::unique_ptr<BrowserAccessibilityManager> manager(
BrowserAccessibilityManager::Create(
MakeAXTreeUpdate(root, child1, child2), nullptr,
- new CountedBrowserAccessibilityFactory()));
+ new BrowserAccessibilityFactory()));
BrowserAccessibilityWin* ax_root =
ToBrowserAccessibilityWin(manager->GetRoot());
@@ -2404,11 +2304,11 @@ TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
base::win::ScopedComPtr<IUnknown> target;
base::win::ScopedComPtr<IAccessible2> ax_target;
- EXPECT_HRESULT_SUCCEEDED(ax_root->get_nRelations(&n_relations));
+ EXPECT_HRESULT_SUCCEEDED(ax_root->GetCOM()->get_nRelations(&n_relations));
EXPECT_EQ(1, n_relations);
EXPECT_HRESULT_SUCCEEDED(
- ax_root->get_relation(0, describedby_relation.Receive()));
+ ax_root->GetCOM()->get_relation(0, describedby_relation.Receive()));
EXPECT_HRESULT_SUCCEEDED(
describedby_relation->get_relationType(relation_type.Receive()));
EXPECT_EQ(L"describedBy", base::string16(relation_type));
@@ -2435,11 +2335,11 @@ TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
describedby_relation.Reset();
// Test the reverse relations.
- EXPECT_HRESULT_SUCCEEDED(ax_child1->get_nRelations(&n_relations));
+ EXPECT_HRESULT_SUCCEEDED(ax_child1->GetCOM()->get_nRelations(&n_relations));
EXPECT_EQ(1, n_relations);
EXPECT_HRESULT_SUCCEEDED(
- ax_child1->get_relation(0, description_for_relation.Receive()));
+ ax_child1->GetCOM()->get_relation(0, description_for_relation.Receive()));
EXPECT_HRESULT_SUCCEEDED(
description_for_relation->get_relationType(relation_type.Receive()));
EXPECT_EQ(L"descriptionFor", base::string16(relation_type));
@@ -2457,11 +2357,11 @@ TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
target.Reset();
description_for_relation.Reset();
- EXPECT_HRESULT_SUCCEEDED(ax_child2->get_nRelations(&n_relations));
+ EXPECT_HRESULT_SUCCEEDED(ax_child2->GetCOM()->get_nRelations(&n_relations));
EXPECT_EQ(1, n_relations);
EXPECT_HRESULT_SUCCEEDED(
- ax_child2->get_relation(0, description_for_relation.Receive()));
+ ax_child2->GetCOM()->get_relation(0, description_for_relation.Receive()));
EXPECT_HRESULT_SUCCEEDED(
description_for_relation->get_relationType(relation_type.Receive()));
EXPECT_EQ(L"descriptionFor", base::string16(relation_type));
@@ -2488,9 +2388,9 @@ TEST_F(BrowserAccessibilityTest, TestIAccessible2Relations) {
std::vector<AXEventNotificationDetails> events = {event};
manager->OnAccessibilityEvents(events);
- EXPECT_HRESULT_SUCCEEDED(ax_child1->get_nRelations(&n_relations));
+ EXPECT_HRESULT_SUCCEEDED(ax_child1->GetCOM()->get_nRelations(&n_relations));
EXPECT_EQ(2, n_relations);
- EXPECT_HRESULT_SUCCEEDED(ax_child2->get_nRelations(&n_relations));
+ EXPECT_HRESULT_SUCCEEDED(ax_child2->GetCOM()->get_nRelations(&n_relations));
EXPECT_EQ(2, n_relations);
}

Powered by Google App Engine
This is Rietveld 408576698