summaryrefslogtreecommitdiffstats
path: root/chrome/test/accessibility/accessibility_tests.cc
diff options
context:
space:
mode:
authorklink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-08 00:39:43 +0000
committerklink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-08 00:39:43 +0000
commitbd04abd493a296e9309fca99d23530b3493ddc93 (patch)
treec15673ce5084056b6063473a6ef75e9798ebf160 /chrome/test/accessibility/accessibility_tests.cc
parentba1100d658069bcc3ed69a736cd45a1f2b81c8f3 (diff)
downloadchromium_src-bd04abd493a296e9309fca99d23530b3493ddc93.zip
chromium_src-bd04abd493a296e9309fca99d23530b3493ddc93.tar.gz
chromium_src-bd04abd493a296e9309fca99d23530b3493ddc93.tar.bz2
Adds some more cleanup and test coverage to the Accessibility tests.
Review URL: http://codereview.chromium.org/15097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7708 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/accessibility/accessibility_tests.cc')
-rw-r--r--chrome/test/accessibility/accessibility_tests.cc465
1 files changed, 214 insertions, 251 deletions
diff --git a/chrome/test/accessibility/accessibility_tests.cc b/chrome/test/accessibility/accessibility_tests.cc
index f8e68f9..bff3296 100644
--- a/chrome/test/accessibility/accessibility_tests.cc
+++ b/chrome/test/accessibility/accessibility_tests.cc
@@ -2,7 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <objbase.h>
#include <oleacc.h>
#include "base/file_util.h"
@@ -14,7 +13,6 @@
#include "chrome/test/automation/browser_proxy.h"
#include "chrome/test/automation/window_proxy.h"
#include "chrome/test/automation/tab_proxy.h"
-#include "googleurl/src/gurl.h"
#include "net/base/net_util.h"
#include "chromium_strings.h"
@@ -37,21 +35,22 @@ class AccessibilityTest : public UITest {
} // Namespace.
// Check browser handle and accessibility object browser client.
-// TODO(sridharg): Alter, when accessibility objects for Chrome Window,
-// Application and Client are corrected.
TEST_F(AccessibilityTest, TestChromeBrowserAccObject) {
IAccessible* acc_obj = NULL;
HWND hwnd = GetChromeBrowserWnd(&acc_obj);
+
ASSERT_TRUE(NULL != hwnd);
ASSERT_TRUE(NULL != acc_obj);
+
CHK_RELEASE(acc_obj);
}
-// Check accessibility object for toolbar and its properties Name, Role,
-// State. (Add other properties, if their values are fixed all the time.)
+// Check accessibility object for toolbar and its properties Name, Role, State.
TEST_F(AccessibilityTest, TestChromeToolbarAccObject) {
+ HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- GetToolbarWnd(&acc_obj);
+ hr = GetToolbarAccessible(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
ASSERT_TRUE(NULL != acc_obj);
// Check Name - IDS_ACCNAME_TOOLBAR.
@@ -65,10 +64,12 @@ TEST_F(AccessibilityTest, TestChromeToolbarAccObject) {
}
// Check accessibility object for tabstrip and its properties Name, Role,
-// State. (Add other properties, if their values are fixed all the time.)
+// State.
TEST_F(AccessibilityTest, TestChromeTabstripAccObject) {
+ HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- GetTabStripWnd(&acc_obj);
+ hr = GetTabStripAccessible(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
ASSERT_TRUE(NULL != acc_obj);
// Check Name - IDS_ACCNAME_TABSTRIP.
@@ -81,223 +82,61 @@ TEST_F(AccessibilityTest, TestChromeTabstripAccObject) {
CHK_RELEASE(acc_obj);
}
+// This test is disabled for now, see issue 2243.
// Check Browser buttons and their Name, Role, State.
-TEST_F(AccessibilityTest, TestChromeButtons) {
- // Get browser accessibility object.
- IAccessible* browser = NULL;
- GetChromeBrowserWnd(&browser);
- ASSERT_TRUE(NULL != browser);
-
- HRESULT hr = S_OK;
- IAccessible* acc_obj = NULL;
- VARIANT button;
-
- // Check Minimize button and its Name, Role, State.
- hr = GetBrowserMinimizeButton(&acc_obj, &button);
- // Not a complete accessible object, as Minimize is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_MINIMIZE),
- GetName(browser, button));
- EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(browser, button));
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(browser, button));
- CHK_RELEASE(acc_obj);
-
- // Check Maximize button and its Name, Role, State.
- GetBrowserMaximizeButton(&acc_obj, &button);
- // Not a complete accessible object, as Maximize is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_MAXIMIZE),
- GetName(browser, button));
- EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(browser, button));
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(browser, button));
- CHK_RELEASE(acc_obj);
-
- // Check Restore button and its Name, Role, State.
- GetBrowserRestoreButton(&acc_obj, &button);
- // Not a complete accessible object, as Restore is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_RESTORE),
- GetName(browser, button));
- EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(browser, button));
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_INVISIBLE,
- GetState(browser, button));
- CHK_RELEASE(acc_obj);
-
- // Check Close button and its Name, Role, State.
- GetBrowserCloseButton(&acc_obj, &button);
- // Not a complete accessible object, as Close is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_CLOSE), GetName(browser, button));
- EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(browser, button));
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(browser, button));
-
- CHK_RELEASE(acc_obj);
- CHK_RELEASE(browser);
-}
-
-// Check Star button and its Name, Role, State.
-TEST_F(AccessibilityTest, TestStarButton) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
- HRESULT hr = S_OK;
- IAccessible* acc_obj = NULL;
- VARIANT button;
-
- // Check button and its Name, Role, State.
- hr = GetStarButton(&acc_obj, &button);
- // It is not complete accessible object, as it is element.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_STAR), GetName(toolbar, button));
- EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(toolbar, button));
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
-
- CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
-}
-
-// Check Star button and its Name, Role, State, upon adding a new tab.
-TEST_F(AccessibilityTest, TestStarBtnStatusOnNewTab) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
- HRESULT hr = S_OK;
- IAccessible* acc_obj = NULL;
- VARIANT button;
-
- // Check button and its Name, Role, State.
- hr = GetStarButton(&acc_obj, &button);
- // Not a complete accessible object, as Star is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
-
- // Now, check Star status in different situations.
- scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
- ASSERT_TRUE(window.get());
-
- // Set URL and check button status.
- scoped_ptr<TabProxy> tab1(window->GetTab(0));
- ASSERT_TRUE(tab1.get());
- std::wstring test_file1 = test_data_directory_;
- file_util::AppendToPath(&test_file1, L"title1.html");
- tab1->NavigateToURL(net::FilePathToFileURL(test_file1));
- Sleep(kWaitForActionMsec);
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
-
- // Add empty new tab and check status.
- int old_tab_count = -1;
- ASSERT_TRUE(window->GetTabCount(&old_tab_count));
- ASSERT_TRUE(window->ApplyAccelerator(IDC_NEW_TAB));
- int new_tab_count;
- ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
- // Check tab count.
- ASSERT_GE(new_tab_count, old_tab_count);
- // Also, check accessibility object's children.
- Sleep(1000);
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
-
- // Add new tab with URL and check status.
- old_tab_count = new_tab_count;
- std::wstring test_file2 = test_data_directory_;
- file_util::AppendToPath(&test_file2, L"title1.html");
- ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(test_file2)));
- ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
- // Check tab count. Also, check accessibility object's children.
- ASSERT_GE(new_tab_count, old_tab_count);
- Sleep(kWaitForActionMsec);
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
-
- CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
+TEST_F(AccessibilityTest, DISABLED_TestChromeButtons) {
+ // TODO(klink): Implement with indexing from ViewIDs.
}
// Check Back button and its Name, Role, State.
TEST_F(AccessibilityTest, TestBackButton) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- VARIANT button;
+
+ // Retrieve IAccessible for Back button.
+ hr = GetBackButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
// Check button and its Name, Role, State.
- hr = GetBackButton(&acc_obj, &button);
- // Not a complete accessible object, as Back is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
-
- // Read properties.
- EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_BACK),
- GetName(toolbar, button));
- EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(toolbar, button));
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_BACK), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
// State "has popup" only supported in XP and higher.
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
}
-// Check Back button and its Name, Role, State.
-// This test is disabled. See bug 1119183.
-TEST_F(AccessibilityTest, DISABLED_TestBackBtnStatusOnNewTab) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
+// Check Back button and its Name, Role, State, upon adding a new tab.
+TEST_F(AccessibilityTest, TestBackBtnStatusOnNewTab) {
HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- VARIANT button;
+
+ // Retrieve IAccessible for Back button.
+ hr = GetBackButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
// Check button and its Name, Role, State.
- hr = GetBackButton(&acc_obj, &button);
- // Not a complete accessible object, as Back is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_BACK), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
// State "has popup" only supported in XP and higher.
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Now check Back status in different situations.
@@ -315,9 +154,9 @@ TEST_F(AccessibilityTest, DISABLED_TestBackBtnStatusOnNewTab) {
Sleep(kWaitForActionMsec);
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP | STATE_SYSTEM_FOCUSABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
}
// Go Back and check status.
window->ApplyAccelerator(IDC_BACK);
@@ -326,27 +165,27 @@ TEST_F(AccessibilityTest, DISABLED_TestBackBtnStatusOnNewTab) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Add empty new tab and check status.
ASSERT_TRUE(window->GetTabCount(&old_tab_count));
ASSERT_TRUE(window->ApplyAccelerator(IDC_NEW_TAB));
ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
+ kWaitForActionMsec * 5));
// Check tab count. Also, check accessibility object's children.
ASSERT_GE(new_tab_count, old_tab_count);
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Add new tab with URL and check status.
@@ -355,7 +194,7 @@ TEST_F(AccessibilityTest, DISABLED_TestBackBtnStatusOnNewTab) {
file_util::AppendToPath(&test_file2, L"title1.html");
ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(test_file2)));
ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
+ kWaitForActionMsec * 5));
// Check tab count. Also, check accessibility object's children.
ASSERT_GE(new_tab_count, old_tab_count);
Sleep(kWaitForActionMsec);
@@ -363,79 +202,66 @@ TEST_F(AccessibilityTest, DISABLED_TestBackBtnStatusOnNewTab) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
}
// Check Forward button and its Name, Role, State.
TEST_F(AccessibilityTest, TestForwardButton) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- VARIANT button;
+
+ // Retrieve IAccessible for Forward button.
+ hr = GetForwardButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
// Check button and its Name, Role, State.
- hr = GetForwardButton(&acc_obj, &button);
- // Not a complete accessible object, as Forward is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
- // Read properties.
EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_FORWARD),
- GetName(toolbar, button));
- EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(toolbar, button));
+ GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
// State "has popup" only supported in XP and higher.
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
}
-// Check Back button and its Name, Role, State.
-// This test is disabled. See bug 1119183.
-TEST_F(AccessibilityTest, DISABLED_TestForwardBtnStatusOnNewTab) {
- // Get toolbar accessibility object.
- IAccessible* toolbar = NULL;
- GetToolbarWnd(&toolbar);
- ASSERT_TRUE(NULL != toolbar);
-
+// Check Forward button and its Name, Role, State, upon adding a new tab.
+TEST_F(AccessibilityTest, TestForwardBtnStatusOnNewTab) {
HRESULT hr = S_OK;
IAccessible* acc_obj = NULL;
- VARIANT button;
+
+ // Retrieve IAccessible for Forward button.
+ hr = GetForwardButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
// Check button and its Name, Role, State.
- hr = GetForwardButton(&acc_obj, &button);
- // Not a complete accessible object, as Forward is an element leaf.
- ASSERT_TRUE(S_FALSE == hr);
- ASSERT_TRUE(NULL == acc_obj);
- ASSERT_TRUE(VT_I4 == button.vt);
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_FORWARD),
+ GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
// State "has popup" only supported in XP and higher.
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Now check Back status in different situations.
@@ -455,19 +281,19 @@ TEST_F(AccessibilityTest, DISABLED_TestForwardBtnStatusOnNewTab) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Go Back and check status.
window->ApplyAccelerator(IDC_BACK);
Sleep(kWaitForActionMsec);
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP | STATE_SYSTEM_FOCUSABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
- EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(toolbar, button));
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
}
// Go Forward and check status.
window->ApplyAccelerator(IDC_FORWARD);
@@ -476,27 +302,27 @@ TEST_F(AccessibilityTest, DISABLED_TestForwardBtnStatusOnNewTab) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Add empty new tab and check status.
ASSERT_TRUE(window->GetTabCount(&old_tab_count));
ASSERT_TRUE(window->ApplyAccelerator(IDC_NEW_TAB));
ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
+ kWaitForActionMsec * 5));
// Check tab count.
ASSERT_GE(new_tab_count, old_tab_count);
if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
}
// Add new tab with URL and check status.
@@ -505,7 +331,7 @@ TEST_F(AccessibilityTest, DISABLED_TestForwardBtnStatusOnNewTab) {
file_util::AppendToPath(&test_file2, L"title1.html");
ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(test_file2)));
ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
- 5000));
+ kWaitForActionMsec * 5));
// Check tab count.
ASSERT_GE(new_tab_count, old_tab_count);
Sleep(kWaitForActionMsec);
@@ -513,13 +339,150 @@ TEST_F(AccessibilityTest, DISABLED_TestForwardBtnStatusOnNewTab) {
EXPECT_EQ(STATE_SYSTEM_HASPOPUP |
STATE_SYSTEM_FOCUSABLE |
STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
} else {
EXPECT_EQ(STATE_SYSTEM_FOCUSABLE | STATE_SYSTEM_UNAVAILABLE,
- GetState(toolbar, button));
+ GetState(acc_obj));
+ }
+
+ CHK_RELEASE(acc_obj);
+}
+
+// Check Star button and its Name, Role, State.
+TEST_F(AccessibilityTest, TestStarButton) {
+ HRESULT hr = S_OK;
+ IAccessible* acc_obj = NULL;
+
+ // Retrieve IAccessible for Star button.
+ hr = GetStarButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
+
+ // Check button and its Name, Role, State.
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_STAR), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(acc_obj));
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ CHK_RELEASE(acc_obj);
+}
+
+// Check Star button and its Name, Role, State, upon adding a new tab.
+TEST_F(AccessibilityTest, TestStarBtnStatusOnNewTab) {
+ HRESULT hr = S_OK;
+ IAccessible* acc_obj = NULL;
+
+ // Retrieve IAccessible for Star button.
+ hr = GetStarButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
+
+ // Check button and its Name, Role, State.
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_STAR), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(acc_obj));
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ // Now, check Star status in different situations.
+ scoped_ptr<BrowserProxy> window(automation()->GetBrowserWindow(0));
+ ASSERT_TRUE(window.get());
+
+ // Set URL and check button status.
+ scoped_ptr<TabProxy> tab1(window->GetTab(0));
+ ASSERT_TRUE(tab1.get());
+ std::wstring test_file1 = test_data_directory_;
+ file_util::AppendToPath(&test_file1, L"title1.html");
+ tab1->NavigateToURL(net::FilePathToFileURL(test_file1));
+ Sleep(kWaitForActionMsec);
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ // Add empty new tab and check status.
+ int old_tab_count = -1;
+ ASSERT_TRUE(window->GetTabCount(&old_tab_count));
+ ASSERT_TRUE(window->ApplyAccelerator(IDC_NEW_TAB));
+ int new_tab_count;
+ ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
+ kWaitForActionMsec * 5));
+ // Check tab count. Also, check accessibility object's state.
+ ASSERT_GE(new_tab_count, old_tab_count);
+ Sleep(kWaitForActionMsec);
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ // Add new tab with URL and check status.
+ old_tab_count = new_tab_count;
+ std::wstring test_file2 = test_data_directory_;
+ file_util::AppendToPath(&test_file2, L"title1.html");
+ ASSERT_TRUE(window->AppendTab(net::FilePathToFileURL(test_file2)));
+ ASSERT_TRUE(window->WaitForTabCountToChange(old_tab_count, &new_tab_count,
+ kWaitForActionMsec * 5));
+ // Check tab count. Also, check accessibility object's state.
+ ASSERT_GE(new_tab_count, old_tab_count);
+ Sleep(kWaitForActionMsec);
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ CHK_RELEASE(acc_obj);
+}
+
+// Check Go button and its Name, Role, State.
+TEST_F(AccessibilityTest, TestGoButton) {
+ HRESULT hr = S_OK;
+ IAccessible* acc_obj = NULL;
+
+ // Retrieve IAccessible for Go button.
+ hr = GetGoButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
+
+ // Check button and its Name, Role, State.
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_GO), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_PUSHBUTTON, GetRole(acc_obj));
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+
+ CHK_RELEASE(acc_obj);
+}
+
+// Check Page menu button and its Name, Role, State.
+TEST_F(AccessibilityTest, TestPageMenuButton) {
+ HRESULT hr = S_OK;
+ IAccessible* acc_obj = NULL;
+
+ // Retrieve IAccessible for Page menu button.
+ hr = GetPageMenuButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
+
+ // Check button and its Name, Role, State.
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_PAGE), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
+ // State "has popup" only supported in XP and higher.
+ if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
+ EXPECT_EQ(STATE_SYSTEM_HASPOPUP | STATE_SYSTEM_FOCUSABLE,
+ GetState(acc_obj));
+ } else {
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
}
CHK_RELEASE(acc_obj);
- CHK_RELEASE(toolbar);
}
+// Check App (wrench) menu button and its Name, Role, State.
+TEST_F(AccessibilityTest, TestAppMenuButton) {
+ HRESULT hr = S_OK;
+ IAccessible* acc_obj = NULL;
+
+ // Retrieve IAccessible for App menu button.
+ hr = GetAppMenuButton(&acc_obj);
+ ASSERT_TRUE(S_OK == hr);
+ ASSERT_TRUE(NULL != acc_obj);
+
+ // Check button and its Name, Role, State.
+ EXPECT_EQ(l10n_util::GetString(IDS_ACCNAME_APP), GetName(acc_obj));
+ EXPECT_EQ(ROLE_SYSTEM_BUTTONDROPDOWN, GetRole(acc_obj));
+ // State "has popup" only supported in XP and higher.
+ if (win_util::GetWinVersion() > win_util::WINVERSION_2000) {
+ EXPECT_EQ(STATE_SYSTEM_HASPOPUP | STATE_SYSTEM_FOCUSABLE,
+ GetState(acc_obj));
+ } else {
+ EXPECT_EQ(STATE_SYSTEM_FOCUSABLE, GetState(acc_obj));
+ }
+
+ CHK_RELEASE(acc_obj);
+}