diff options
author | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-18 17:29:51 +0000 |
---|---|---|
committer | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-18 17:29:51 +0000 |
commit | ad4f19d37519b5b9aef6d3e1f59f9d5802d39437 (patch) | |
tree | 95ec3637afe847b4b470693f2c54918330f6e101 /chrome/browser/accessibility_win_browsertest.cc | |
parent | 423bfef10c89e5ec2d57d10626e038dd04bb2b0e (diff) | |
download | chromium_src-ad4f19d37519b5b9aef6d3e1f59f9d5802d39437.zip chromium_src-ad4f19d37519b5b9aef6d3e1f59f9d5802d39437.tar.gz chromium_src-ad4f19d37519b5b9aef6d3e1f59f9d5802d39437.tar.bz2 |
Ensure that AccessibilityWinBrowserTest.TestRenderAccessibility passes when a screen reader is running.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/2826008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50256 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/accessibility_win_browsertest.cc')
-rw-r--r-- | chrome/browser/accessibility_win_browsertest.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/chrome/browser/accessibility_win_browsertest.cc b/chrome/browser/accessibility_win_browsertest.cc index 2199a07..d6bc3da 100644 --- a/chrome/browser/accessibility_win_browsertest.cc +++ b/chrome/browser/accessibility_win_browsertest.cc @@ -19,10 +19,43 @@ namespace { class AccessibilityWinBrowserTest : public InProcessBrowserTest { + public: + AccessibilityWinBrowserTest() : screenreader_running_(FALSE) {} + + // InProcessBrowserTest + void SetUpInProcessBrowserTestFixture(); + void TearDownInProcessBrowserTestFixture(); + protected: IAccessible* GetRenderWidgetHostViewClientAccessible(); + + private: + BOOL screenreader_running_; }; +void AccessibilityWinBrowserTest::SetUpInProcessBrowserTestFixture() { + // This test assumes the windows system-wide SPI_SETSCREENREADER flag is + // cleared. + if (SystemParametersInfo(SPI_GETSCREENREADER, 0, &screenreader_running_, 0) && + screenreader_running_) { + // Clear the SPI_SETSCREENREADER flag and notify active applications about + // the setting change. + ::SystemParametersInfo(SPI_SETSCREENREADER, FALSE, NULL, 0); + ::SendNotifyMessage( + HWND_BROADCAST, WM_SETTINGCHANGE, SPI_GETSCREENREADER, 0); + } +} + +void AccessibilityWinBrowserTest::TearDownInProcessBrowserTestFixture() { + if (screenreader_running_) { + // Restore the SPI_SETSCREENREADER flag and notify active applications about + // the setting change. + ::SystemParametersInfo(SPI_SETSCREENREADER, TRUE, NULL, 0); + ::SendNotifyMessage( + HWND_BROADCAST, WM_SETTINGCHANGE, SPI_GETSCREENREADER, 0); + } +} + class AccessibleChecker { public: AccessibleChecker(std::wstring expected_name, int32 expected_role); |