summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authoraboxhall@chromium.org <aboxhall@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 01:10:36 +0000
committeraboxhall@chromium.org <aboxhall@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-29 01:10:36 +0000
commit769c7aa11e79e08bd367f6d8b97b09314ed55263 (patch)
tree2f3ddb1e41979e4f92acc87aa879d785e381a4fd /chrome/browser
parentc87c457e465f31483eb99c0f3a428eef48fb0d4c (diff)
downloadchromium_src-769c7aa11e79e08bd367f6d8b97b09314ed55263.zip
chromium_src-769c7aa11e79e08bd367f6d8b97b09314ed55263.tar.gz
chromium_src-769c7aa11e79e08bd367f6d8b97b09314ed55263.tar.bz2
Ensure WebKit's "canSetValue" attribute is reflected in Chrome's accessibility tree.
BUG=none TEST=RendererAccessibilityBrowserTest.CrossPlatformWritableElement Review URL: http://codereview.chromium.org/8050003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103217 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/accessibility/renderer_accessibility_browsertest.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/chrome/browser/accessibility/renderer_accessibility_browsertest.cc b/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
index 10a918f..6f1d53c 100644
--- a/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
+++ b/chrome/browser/accessibility/renderer_accessibility_browsertest.cc
@@ -64,6 +64,8 @@ class RendererAccessibilityBrowserTest : public InProcessBrowserTest {
const WebAccessibility::StringAttribute attr);
int GetIntAttr(const WebAccessibility& node,
const WebAccessibility::IntAttribute attr);
+ bool GetBoolAttr(const WebAccessibility& node,
+ const WebAccessibility::BoolAttribute attr);
};
void RendererAccessibilityBrowserTest::SetUpInProcessBrowserTestFixture() {
@@ -109,6 +111,19 @@ int RendererAccessibilityBrowserTest::GetIntAttr(
return -1;
}
+// Convenience method to get the value of a particular WebAccessibility
+// node boolean attribute.
+bool RendererAccessibilityBrowserTest::GetBoolAttr(
+ const WebAccessibility& node,
+ const WebAccessibility::BoolAttribute attr) {
+ std::map<WebAccessibility::BoolAttribute, bool>::const_iterator iter =
+ node.bool_attributes.find(attr);
+ if (iter != node.bool_attributes.end())
+ return iter->second;
+ else
+ return false;
+}
+
IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
CrossPlatformWebpageAccessibility) {
// Create a data url and load it.
@@ -418,4 +433,23 @@ IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
WebAccessibility::ATTR_TABLE_CELL_COLUMN_SPAN));
}
+IN_PROC_BROWSER_TEST_F(RendererAccessibilityBrowserTest,
+ CrossPlatformWritableElement) {
+ const char url_str[] =
+ "data:text/html,"
+ "<!doctype html>"
+ "<div role='textbox' tabindex=0>"
+ " Some text"
+ "</div>";
+ GURL url(url_str);
+ browser()->OpenURL(url, GURL(), CURRENT_TAB, PageTransition::TYPED);
+ const WebAccessibility& tree = GetWebAccessibilityTree();
+
+ ASSERT_EQ(1U, tree.children.size());
+ const WebAccessibility& textbox = tree.children[0];
+
+ EXPECT_EQ(
+ true, GetBoolAttr(textbox, WebAccessibility::ATTR_CAN_SET_VALUE));
+}
+
} // namespace