diff options
author | klink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-08 00:39:43 +0000 |
---|---|---|
committer | klink@chromium.org <klink@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-08 00:39:43 +0000 |
commit | bd04abd493a296e9309fca99d23530b3493ddc93 (patch) | |
tree | c15673ce5084056b6063473a6ef75e9798ebf160 /chrome/test/accessibility/accessibility_tests.cc | |
parent | ba1100d658069bcc3ed69a736cd45a1f2b81c8f3 (diff) | |
download | chromium_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.cc | 465 |
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); +} |