summaryrefslogtreecommitdiffstats
path: root/chrome/browser/accessibility_win_browsertest.cc
diff options
context:
space:
mode:
authorctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 17:29:51 +0000
committerctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-18 17:29:51 +0000
commitad4f19d37519b5b9aef6d3e1f59f9d5802d39437 (patch)
tree95ec3637afe847b4b470693f2c54918330f6e101 /chrome/browser/accessibility_win_browsertest.cc
parent423bfef10c89e5ec2d57d10626e038dd04bb2b0e (diff)
downloadchromium_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.cc33
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);