Index: chrome/browser/accessibility/browser_accessibility_win_unittest.cc |
=================================================================== |
--- chrome/browser/accessibility/browser_accessibility_win_unittest.cc (revision 61748) |
+++ chrome/browser/accessibility/browser_accessibility_win_unittest.cc (working copy) |
@@ -4,35 +4,34 @@ |
#include "base/scoped_ptr.h" |
#include "base/scoped_comptr_win.h" |
-#include "chrome/browser/accessibility/browser_accessibility_manager.h" |
+#include "chrome/browser/accessibility/browser_accessibility_manager_win.h" |
#include "chrome/browser/accessibility/browser_accessibility_win.h" |
#include "chrome/common/render_messages_params.h" |
#include "testing/gtest/include/gtest/gtest.h" |
using webkit_glue::WebAccessibility; |
-// Subclass of BrowserAccessibilityWin that counts the number of instances. |
-class CountedBrowserAccessibility : public BrowserAccessibilityWin { |
+// Subclass of BrowserAccessibility that counts the number of instances. |
+class CountedBrowserAccessibilityWin : public BrowserAccessibilityWin { |
public: |
- CountedBrowserAccessibility() { global_obj_count_++; } |
- virtual ~CountedBrowserAccessibility() { global_obj_count_--; } |
+ CountedBrowserAccessibilityWin() { global_obj_count_++; } |
+ virtual ~CountedBrowserAccessibilityWin() { global_obj_count_--; } |
static int global_obj_count_; |
}; |
-int CountedBrowserAccessibility::global_obj_count_ = 0; |
+int CountedBrowserAccessibilityWin::global_obj_count_ = 0; |
-// Factory that creates a CountedBrowserAccessibility. |
-class CountedBrowserAccessibilityFactory |
- : public BrowserAccessibilityFactory { |
+// Factory that creates a CountedBrowserAccessibilityWin. |
+class CountedBrowserAccessibilityWinFactory |
+ : public BrowserAccessibilityWinFactory { |
public: |
- virtual ~CountedBrowserAccessibilityFactory() {} |
- virtual BrowserAccessibility* Create() { |
- CComObject<CountedBrowserAccessibility>* instance; |
- HRESULT hr = CComObject<CountedBrowserAccessibility>::CreateInstance( |
+ virtual ~CountedBrowserAccessibilityWinFactory() {} |
+ virtual BrowserAccessibilityWin* Create() { |
+ CComObject<CountedBrowserAccessibilityWin>* instance; |
+ HRESULT hr = CComObject<CountedBrowserAccessibilityWin>::CreateInstance( |
&instance); |
DCHECK(SUCCEEDED(hr)); |
- instance->AddRef(); |
- return instance; |
+ return instance->NewReference(); |
} |
}; |
@@ -91,30 +90,25 @@ |
// 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::global_obj_count_ = 0; |
+ CountedBrowserAccessibilityWin::global_obj_count_ = 0; |
+ // TODO: Use BrowserAccessibilityManager::Create instead of new below. |
BrowserAccessibilityManager* manager = |
- BrowserAccessibilityManager::Create( |
- GetDesktopWindow(), |
- root, |
- NULL, |
- new CountedBrowserAccessibilityFactory()); |
- ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); |
+ new BrowserAccessibilityManagerWin( |
+ GetDesktopWindow(), root, NULL, |
+ new CountedBrowserAccessibilityWinFactory()); |
+ ASSERT_EQ(3, CountedBrowserAccessibilityWin::global_obj_count_); |
// Delete the manager and test that all 3 instances are deleted. |
delete manager; |
- ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(0, CountedBrowserAccessibilityWin::global_obj_count_); |
// 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 = |
- BrowserAccessibilityManager::Create( |
- GetDesktopWindow(), |
- root, |
- NULL, |
- new CountedBrowserAccessibilityFactory()); |
- ASSERT_EQ(3, CountedBrowserAccessibility::global_obj_count_); |
- IAccessible* root_accessible = |
- manager->GetRoot()->toBrowserAccessibilityWin(); |
+ manager = new BrowserAccessibilityManagerWin( |
+ GetDesktopWindow(), root, NULL, |
+ new CountedBrowserAccessibilityWinFactory()); |
+ ASSERT_EQ(3, CountedBrowserAccessibilityWin::global_obj_count_); |
+ IAccessible* root_accessible = manager->GetRootAccessible(); |
IDispatch* root_iaccessible = NULL; |
IDispatch* child1_iaccessible = NULL; |
VARIANT var_child; |
@@ -129,14 +123,14 @@ |
// Now delete the manager, and only one of the three nodes in the tree |
// should be released. |
delete manager; |
- ASSERT_EQ(2, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(2, CountedBrowserAccessibilityWin::global_obj_count_); |
// 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::global_obj_count_); |
+ ASSERT_EQ(1, CountedBrowserAccessibilityWin::global_obj_count_); |
child1_iaccessible->Release(); |
- ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(0, CountedBrowserAccessibilityWin::global_obj_count_); |
} |
TEST_F(BrowserAccessibilityTest, TestChildrenChange) { |
@@ -158,18 +152,16 @@ |
// Construct a BrowserAccessibilityManager with this WebAccessibility tree |
// and a factory for an instance-counting BrowserAccessibility. |
- CountedBrowserAccessibility::global_obj_count_ = 0; |
+ CountedBrowserAccessibilityWin::global_obj_count_ = 0; |
BrowserAccessibilityManager* manager = |
- BrowserAccessibilityManager::Create( |
- GetDesktopWindow(), |
- root, |
- NULL, |
- new CountedBrowserAccessibilityFactory()); |
+ new BrowserAccessibilityManagerWin( |
+ GetDesktopWindow(), root, NULL, |
+ new CountedBrowserAccessibilityWinFactory()); |
// Query for the text IAccessible and verify that it returns "old text" as its |
// value. |
ScopedComPtr<IDispatch> text_dispatch; |
- HRESULT hr = manager->GetRoot()->toBrowserAccessibilityWin()->get_accChild( |
+ HRESULT hr = manager->GetRootAccessible()->get_accChild( |
CreateI4Variant(1), text_dispatch.Receive()); |
ASSERT_EQ(S_OK, hr); |
@@ -198,7 +190,7 @@ |
// Query for the text IAccessible and verify that it now returns "new text" |
// as its value. |
- hr = manager->GetRoot()->toBrowserAccessibilityWin()->get_accChild( |
+ hr = manager->GetRootAccessible()->get_accChild( |
CreateI4Variant(1), |
text_dispatch.Receive()); |
ASSERT_EQ(S_OK, hr); |
@@ -216,7 +208,7 @@ |
// Delete the manager and test that all BrowserAccessibility instances are |
// deleted. |
delete manager; |
- ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(0, CountedBrowserAccessibilityWin::global_obj_count_); |
} |
TEST_F(BrowserAccessibilityTest, TestChildrenChangeNoLeaks) { |
@@ -247,14 +239,12 @@ |
// 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::global_obj_count_ = 0; |
+ CountedBrowserAccessibilityWin::global_obj_count_ = 0; |
BrowserAccessibilityManager* manager = |
- BrowserAccessibilityManager::Create( |
- GetDesktopWindow(), |
- root, |
- NULL, |
- new CountedBrowserAccessibilityFactory()); |
- ASSERT_EQ(4, CountedBrowserAccessibility::global_obj_count_); |
+ new BrowserAccessibilityManagerWin( |
+ GetDesktopWindow(), root, NULL, |
+ new CountedBrowserAccessibilityWinFactory()); |
+ ASSERT_EQ(4, CountedBrowserAccessibilityWin::global_obj_count_); |
// Notify the BrowserAccessibilityManager that the div node and its children |
// were removed and ensure that only one BrowserAccessibility instance exists. |
@@ -267,10 +257,10 @@ |
std::vector<ViewHostMsg_AccessibilityNotification_Params> notifications; |
notifications.push_back(param); |
manager->OnAccessibilityNotifications(notifications); |
- ASSERT_EQ(1, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(1, CountedBrowserAccessibilityWin::global_obj_count_); |
// Delete the manager and test that all BrowserAccessibility instances are |
// deleted. |
delete manager; |
- ASSERT_EQ(0, CountedBrowserAccessibility::global_obj_count_); |
+ ASSERT_EQ(0, CountedBrowserAccessibilityWin::global_obj_count_); |
} |