| Index: content/renderer/renderer_accessibility_browsertest.cc
|
| diff --git a/content/renderer/renderer_accessibility_browsertest.cc b/content/renderer/renderer_accessibility_browsertest.cc
|
| deleted file mode 100644
|
| index 24b90db8510f061e178fcdbf82d1312acc486793..0000000000000000000000000000000000000000
|
| --- a/content/renderer/renderer_accessibility_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,192 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/utf_string_conversions.h"
|
| -#include "content/common/accessibility_messages.h"
|
| -#include "content/common/accessibility_node_data.h"
|
| -#include "content/common/view_messages.h"
|
| -#include "content/renderer/render_view_impl.h"
|
| -#include "content/public/test/render_view_test.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
|
| -
|
| -namespace content {
|
| -
|
| -class RendererAccessibilityTest : public RenderViewTest {
|
| - public:
|
| - RendererAccessibilityTest() {}
|
| -
|
| - RenderViewImpl* view() {
|
| - return static_cast<RenderViewImpl*>(view_);
|
| - }
|
| -
|
| - virtual void SetUp() {
|
| - RenderViewTest::SetUp();
|
| - sink_ = &render_thread_->sink();
|
| - }
|
| -
|
| - void SetMode(AccessibilityMode mode) {
|
| - view()->OnSetAccessibilityMode(mode);
|
| - }
|
| -
|
| - void GetLastAccNotification(
|
| - AccessibilityHostMsg_NotificationParams* params) {
|
| - const IPC::Message* message =
|
| - sink_->GetUniqueMessageMatching(AccessibilityHostMsg_Notifications::ID);
|
| - ASSERT_TRUE(message);
|
| - Tuple1<std::vector<AccessibilityHostMsg_NotificationParams> > param;
|
| - AccessibilityHostMsg_Notifications::Read(message, ¶m);
|
| - ASSERT_EQ(param.a.size(), 1U);
|
| - *params = param.a[0];
|
| - }
|
| -
|
| - protected:
|
| - IPC::TestSink* sink_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RendererAccessibilityTest);
|
| -};
|
| -
|
| -TEST_F(RendererAccessibilityTest, EditableTextModeFocusNotifications) {
|
| - SetMode(AccessibilityModeEditableTextOnly);
|
| -
|
| - // Set a minimum size and give focus so simulated events work.
|
| - view()->webwidget()->resize(WebKit::WebSize(500, 500));
|
| - view()->webwidget()->setFocus(true);
|
| -
|
| - std::string html =
|
| - "<body>"
|
| - " <input>"
|
| - " <textarea></textarea>"
|
| - " <p contentEditable>Editable</p>"
|
| - " <div tabindex=0 role=textbox>Textbox</div>"
|
| - " <button>Button</button>"
|
| - " <a href=#>Link</a>"
|
| - "</body>";
|
| -
|
| - // Load the test page.
|
| - LoadHTML(html.c_str());
|
| -
|
| - // We should have sent a message to the browser with the initial focus
|
| - // on the document.
|
| - {
|
| - SCOPED_TRACE("Initial focus on document");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.notification_type,
|
| - AccessibilityNotificationLayoutComplete);
|
| - EXPECT_EQ(notification.includes_children, true);
|
| - EXPECT_EQ(notification.id, 1);
|
| - EXPECT_EQ(notification.acc_tree.id, 1);
|
| - EXPECT_EQ(notification.acc_tree.role,
|
| - AccessibilityNodeData::ROLE_ROOT_WEB_AREA);
|
| - EXPECT_EQ(notification.acc_tree.state,
|
| - (1U << AccessibilityNodeData::STATE_READONLY) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED));
|
| - EXPECT_EQ(notification.acc_tree.children.size(), 1U);
|
| - }
|
| -
|
| - // Now focus the input element, and check everything again.
|
| - {
|
| - SCOPED_TRACE("input");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('input').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.notification_type,
|
| - AccessibilityNotificationFocusChanged);
|
| - EXPECT_EQ(notification.includes_children, true);
|
| - EXPECT_EQ(notification.id, 3);
|
| - EXPECT_EQ(notification.acc_tree.id, 1);
|
| - EXPECT_EQ(notification.acc_tree.role,
|
| - AccessibilityNodeData::ROLE_ROOT_WEB_AREA);
|
| - EXPECT_EQ(notification.acc_tree.state,
|
| - (1U << AccessibilityNodeData::STATE_READONLY) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE));
|
| - EXPECT_EQ(notification.acc_tree.children.size(), 1U);
|
| - EXPECT_EQ(notification.acc_tree.children[0].id, 3);
|
| - EXPECT_EQ(notification.acc_tree.children[0].role,
|
| - AccessibilityNodeData::ROLE_GROUP);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED));
|
| - }
|
| -
|
| - // Check other editable text nodes.
|
| - {
|
| - SCOPED_TRACE("textarea");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('textarea').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 4);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED));
|
| - }
|
| -
|
| - {
|
| - SCOPED_TRACE("contentEditable");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('p').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 5);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED));
|
| - }
|
| -
|
| - {
|
| - SCOPED_TRACE("role=textarea");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('div').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 6);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED));
|
| - }
|
| -
|
| - // Try focusing things that aren't editable text.
|
| - {
|
| - SCOPED_TRACE("button");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('button').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 7);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED) |
|
| - (1U << AccessibilityNodeData::STATE_READONLY));
|
| - }
|
| -
|
| - {
|
| - SCOPED_TRACE("link");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.querySelector('a').focus();");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 8);
|
| - EXPECT_EQ(notification.acc_tree.children[0].state,
|
| - (1U << AccessibilityNodeData::STATE_FOCUSABLE) |
|
| - (1U << AccessibilityNodeData::STATE_FOCUSED) |
|
| - (1U << AccessibilityNodeData::STATE_READONLY));
|
| - }
|
| -
|
| - // Clear focus.
|
| - {
|
| - SCOPED_TRACE("Back to document.");
|
| - sink_->ClearMessages();
|
| - ExecuteJavaScript("document.activeElement.blur()");
|
| - AccessibilityHostMsg_NotificationParams notification;
|
| - GetLastAccNotification(¬ification);
|
| - EXPECT_EQ(notification.id, 1);
|
| - }
|
| -}
|
| -
|
| -} // namespace content
|
|
|