Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "chrome/browser/extensions/api/automation_internal/automation_util.h" | 8 #include "chrome/browser/accessibility/ax_tree_id_registry.h" |
| 9 #include "chrome/browser/extensions/api/automation_internal/automation_event_rou ter.h" | |
| 9 #include "chrome/browser/extensions/chrome_extension_function.h" | 10 #include "chrome/browser/extensions/chrome_extension_function.h" |
| 10 #include "chrome/browser/extensions/extension_apitest.h" | 11 #include "chrome/browser/extensions/extension_apitest.h" |
| 11 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 12 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 12 #include "chrome/common/chrome_paths.h" | 13 #include "chrome/common/chrome_paths.h" |
| 13 #include "chrome/common/chrome_switches.h" | 14 #include "chrome/common/chrome_switches.h" |
| 14 #include "chrome/common/extensions/api/automation_internal.h" | 15 #include "chrome/common/extensions/api/automation_internal.h" |
| 16 #include "chrome/common/extensions/chrome_extension_messages.h" | |
| 15 #include "chrome/test/base/ui_test_utils.h" | 17 #include "chrome/test/base/ui_test_utils.h" |
| 16 #include "content/public/browser/ax_event_notification_details.h" | 18 #include "content/public/browser/ax_event_notification_details.h" |
| 17 #include "content/public/browser/render_widget_host.h" | 19 #include "content/public/browser/render_widget_host.h" |
| 18 #include "content/public/browser/render_widget_host_view.h" | 20 #include "content/public/browser/render_widget_host_view.h" |
| 19 #include "content/public/browser/web_contents.h" | 21 #include "content/public/browser/web_contents.h" |
| 20 #include "extensions/test/extension_test_message_listener.h" | 22 #include "extensions/test/extension_test_message_listener.h" |
| 21 #include "net/dns/mock_host_resolver.h" | 23 #include "net/dns/mock_host_resolver.h" |
| 22 #include "net/test/embedded_test_server/embedded_test_server.h" | 24 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 23 #include "testing/gtest/include/gtest/gtest.h" | 25 #include "testing/gtest/include/gtest/gtest.h" |
| 24 #include "ui/accessibility/ax_node.h" | 26 #include "ui/accessibility/ax_node.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 89 ASSERT_FALSE(tab->IsFullAccessibilityModeForTesting()); | 91 ASSERT_FALSE(tab->IsFullAccessibilityModeForTesting()); |
| 90 ASSERT_TRUE(tab->IsTreeOnlyAccessibilityModeForTesting()); | 92 ASSERT_TRUE(tab->IsTreeOnlyAccessibilityModeForTesting()); |
| 91 } | 93 } |
| 92 | 94 |
| 93 IN_PROC_BROWSER_TEST_F(AutomationApiTest, SanityCheck) { | 95 IN_PROC_BROWSER_TEST_F(AutomationApiTest, SanityCheck) { |
| 94 StartEmbeddedTestServer(); | 96 StartEmbeddedTestServer(); |
| 95 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "sanity_check.html")) | 97 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "sanity_check.html")) |
| 96 << message_; | 98 << message_; |
| 97 } | 99 } |
| 98 | 100 |
| 99 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Unit) { | |
| 100 ASSERT_TRUE(RunExtensionSubtest("automation/tests/unit", "unit.html")) | |
| 101 << message_; | |
| 102 } | |
| 103 | |
| 104 IN_PROC_BROWSER_TEST_F(AutomationApiTest, GetTreeByTabId) { | 101 IN_PROC_BROWSER_TEST_F(AutomationApiTest, GetTreeByTabId) { |
| 105 StartEmbeddedTestServer(); | 102 StartEmbeddedTestServer(); |
| 106 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "tab_id.html")) | 103 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "tab_id.html")) |
| 107 << message_; | 104 << message_; |
| 108 } | 105 } |
| 109 | 106 |
| 110 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Events) { | 107 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Events) { |
| 111 StartEmbeddedTestServer(); | 108 StartEmbeddedTestServer(); |
| 112 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "events.html")) | 109 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "events.html")) |
| 113 << message_; | 110 << message_; |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 193 RunExtensionSubtest("automation/tests/tabs", "queryselector.html")) | 190 RunExtensionSubtest("automation/tests/tabs", "queryselector.html")) |
| 194 << message_; | 191 << message_; |
| 195 } | 192 } |
| 196 | 193 |
| 197 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Find) { | 194 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Find) { |
| 198 StartEmbeddedTestServer(); | 195 StartEmbeddedTestServer(); |
| 199 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "find.html")) | 196 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "find.html")) |
| 200 << message_; | 197 << message_; |
| 201 } | 198 } |
| 202 | 199 |
| 203 // Flaky. http://crbug.com/467921 | 200 IN_PROC_BROWSER_TEST_F(AutomationApiTest, Attributes) { |
| 204 IN_PROC_BROWSER_TEST_F(AutomationApiTest, DISABLED_Mixins) { | |
| 205 StartEmbeddedTestServer(); | 201 StartEmbeddedTestServer(); |
| 206 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "mixins.html")) | 202 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "attributes.html")) |
| 207 << message_; | 203 << message_; |
| 208 } | 204 } |
| 209 | 205 |
| 210 IN_PROC_BROWSER_TEST_F(AutomationApiTest, TreeChange) { | 206 IN_PROC_BROWSER_TEST_F(AutomationApiTest, TreeChange) { |
| 211 StartEmbeddedTestServer(); | 207 StartEmbeddedTestServer(); |
| 212 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "tree_change.html")) | 208 ASSERT_TRUE(RunExtensionSubtest("automation/tests/tabs", "tree_change.html")) |
| 213 << message_; | 209 << message_; |
| 214 } | 210 } |
| 215 | 211 |
| 216 | 212 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 264 routing_id, | 260 routing_id, |
| 265 browser_context); | 261 browser_context); |
| 266 } | 262 } |
| 267 | 263 |
| 268 // Sends the given AXTreeUpdate to the extension as an accessibility event. | 264 // Sends the given AXTreeUpdate to the extension as an accessibility event. |
| 269 void SendUpdate(ui::AXTreeUpdate update, | 265 void SendUpdate(ui::AXTreeUpdate update, |
| 270 ui::AXEvent event, | 266 ui::AXEvent event, |
| 271 int node_id, | 267 int node_id, |
| 272 int routing_id, | 268 int routing_id, |
| 273 BrowserContext* browser_context) { | 269 BrowserContext* browser_context) { |
| 274 content::AXEventNotificationDetails detail(update.node_id_to_clear, | 270 ExtensionMsg_AccessibilityEventParams params; |
| 275 update.nodes, | 271 params.tree_id = AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID( |
| 276 event, | 272 kPid, routing_id); |
| 277 node_id, | 273 params.id = node_id; |
| 278 kPid, | 274 params.event_type = event; |
| 279 routing_id); | 275 params.update = update; |
| 280 std::vector<content::AXEventNotificationDetails> details; | 276 AutomationEventRouter* router = AutomationEventRouter::GetInstance(); |
| 281 details.push_back(detail); | 277 router->DispatchAccessibilityEvent(params); |
| 282 automation_util::DispatchAccessibilityEventsToAutomation( | |
| 283 details, browser_context, gfx::Vector2d()); | |
| 284 } | 278 } |
| 285 | 279 |
| 286 // Notify the extension bindings to destroy the tree for the given tab | 280 // Notify the extension bindings to destroy the tree for the given tab |
| 287 // (identified by routing_id) | 281 // (identified by routing_id) |
| 288 void SendTreeDestroyedEvent(int routing_id, BrowserContext* browser_context) { | 282 void SendTreeDestroyedEvent(int routing_id, BrowserContext* browser_context) { |
| 289 automation_util::DispatchTreeDestroyedEventToAutomation( | 283 int tree_id = AXTreeIDRegistry::GetInstance()->GetOrCreateAXTreeID( |
|
David Tseng
2015/06/10 15:56:31
Is this code (and the generated tree test) obsolet
dmazzoni
2015/06/11 19:09:11
You're right, deleted.
| |
| 290 kPid, routing_id, browser_context); | 284 kPid, routing_id); |
| 285 AXTreeIDRegistry::GetInstance()->RemoveAXTreeID(tree_id); | |
| 286 | |
| 287 AutomationEventRouter* router = AutomationEventRouter::GetInstance(); | |
| 288 router->DispatchTreeDestroyedEvent(tree_id, browser_context); | |
| 291 } | 289 } |
| 292 | 290 |
| 293 // Reset tree0 to a new generated tree based on tree0_version, reset | 291 // Reset tree0 to a new generated tree based on tree0_version, reset |
| 294 // tree0_source accordingly. | 292 // tree0_source accordingly. |
| 295 void ResetTree0() { | 293 void ResetTree0() { |
| 296 tree0.reset(new ui::AXSerializableTree); | 294 tree0.reset(new ui::AXSerializableTree); |
| 297 tree0_source.reset(tree0->CreateTreeSource()); | 295 tree0_source.reset(tree0->CreateTreeSource()); |
| 298 generator.BuildUniqueTree(tree0_version, tree0.get()); | 296 generator.BuildUniqueTree(tree0_version, tree0.get()); |
| 299 if (!serializer0.get()) | 297 if (!serializer0.get()) |
| 300 serializer0.reset(new TreeSerializer(tree0_source.get())); | 298 serializer0.reset(new TreeSerializer(tree0_source.get())); |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 532 "automationInternal.enableTab", | 530 "automationInternal.enableTab", |
| 533 FakeAutomationInternalEnableTabFunctionFactory)); | 531 FakeAutomationInternalEnableTabFunctionFactory)); |
| 534 ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction( | 532 ASSERT_TRUE(extensions::ExtensionFunctionDispatcher::OverrideFunction( |
| 535 "automationInternal.performAction", | 533 "automationInternal.performAction", |
| 536 FakeAutomationInternalPerformActionFunctionFactory)); | 534 FakeAutomationInternalPerformActionFunctionFactory)); |
| 537 ASSERT_TRUE(RunExtensionSubtest("automation/tests/generated", | 535 ASSERT_TRUE(RunExtensionSubtest("automation/tests/generated", |
| 538 "generated_trees.html")) << message_; | 536 "generated_trees.html")) << message_; |
| 539 } | 537 } |
| 540 | 538 |
| 541 } // namespace extensions | 539 } // namespace extensions |
| OLD | NEW |