OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "apps/app_window.h" | 5 #include "apps/app_window.h" |
6 #include "apps/app_window_registry.h" | 6 #include "apps/app_window_registry.h" |
7 #include "base/strings/stringprintf.h" | 7 #include "base/strings/stringprintf.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
10 #include "chrome/browser/apps/app_browsertest_util.h" | 10 #include "chrome/browser/apps/app_browsertest_util.h" |
11 #include "chrome/browser/chrome_content_browser_client.h" | 11 #include "chrome/browser/chrome_content_browser_client.h" |
12 #include "chrome/browser/extensions/extension_test_message_listener.h" | 12 #include "chrome/browser/extensions/extension_test_message_listener.h" |
13 #include "chrome/browser/guest_view/guest_view_base.h" | |
14 #include "chrome/browser/guest_view/guest_view_manager.h" | |
15 #include "chrome/browser/guest_view/guest_view_manager_factory.h" | |
16 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
17 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert est_util.h" | 14 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert est_util.h" |
18 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti l.h" | 15 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti l.h" |
19 #include "chrome/test/base/interactive_test_utils.h" | 16 #include "chrome/test/base/interactive_test_utils.h" |
20 #include "chrome/test/base/test_launcher_utils.h" | 17 #include "chrome/test/base/test_launcher_utils.h" |
21 #include "chrome/test/base/ui_test_utils.h" | 18 #include "chrome/test/base/ui_test_utils.h" |
22 #include "content/public/browser/notification_service.h" | 19 #include "content/public/browser/notification_service.h" |
23 #include "content/public/browser/render_process_host.h" | 20 #include "content/public/browser/render_process_host.h" |
24 #include "content/public/browser/render_view_host.h" | 21 #include "content/public/browser/render_view_host.h" |
25 #include "content/public/browser/render_widget_host_iterator.h" | 22 #include "content/public/browser/render_widget_host_iterator.h" |
26 #include "content/public/browser/render_widget_host_view.h" | 23 #include "content/public/browser/render_widget_host_view.h" |
27 #include "content/public/browser/web_contents.h" | 24 #include "content/public/browser/web_contents.h" |
28 #include "content/public/common/content_switches.h" | 25 #include "content/public/common/content_switches.h" |
29 #include "content/public/test/browser_test_utils.h" | 26 #include "content/public/test/browser_test_utils.h" |
27 #include "extensions/browser/guest_view/guest_view_base.h" | |
28 #include "extensions/browser/guest_view/guest_view_manager.h" | |
29 #include "extensions/browser/guest_view/guest_view_manager_factory.h" | |
30 #include "net/test/embedded_test_server/embedded_test_server.h" | 30 #include "net/test/embedded_test_server/embedded_test_server.h" |
31 #include "ui/base/ime/composition_text.h" | 31 #include "ui/base/ime/composition_text.h" |
32 #include "ui/base/ime/text_input_client.h" | 32 #include "ui/base/ime/text_input_client.h" |
33 #include "ui/base/test/ui_controls.h" | 33 #include "ui/base/test/ui_controls.h" |
34 #include "ui/events/keycodes/keyboard_codes.h" | 34 #include "ui/events/keycodes/keyboard_codes.h" |
35 | 35 |
36 using apps::AppWindow; | 36 using apps::AppWindow; |
37 | 37 |
38 class TestGuestViewManager : public GuestViewManager { | 38 class TestGuestViewManager : public extensions::GuestViewManager { |
39 public: | 39 public: |
40 explicit TestGuestViewManager(content::BrowserContext* context) : | 40 explicit TestGuestViewManager(content::BrowserContext* context) : |
41 GuestViewManager(context), | 41 GuestViewManager(context), |
42 web_contents_(NULL) {} | 42 web_contents_(NULL) {} |
43 | 43 |
44 content::WebContents* WaitForGuestCreated() { | 44 content::WebContents* WaitForGuestCreated() { |
45 if (web_contents_) | 45 if (web_contents_) |
46 return web_contents_; | 46 return web_contents_; |
47 | 47 |
48 message_loop_runner_ = new content::MessageLoopRunner; | 48 message_loop_runner_ = new content::MessageLoopRunner; |
49 message_loop_runner_->Run(); | 49 message_loop_runner_->Run(); |
50 return web_contents_; | 50 return web_contents_; |
51 } | 51 } |
52 | 52 |
53 private: | 53 private: |
54 // GuestViewManager override: | 54 // GuestViewManager override: |
55 virtual void AddGuest(int guest_instance_id, | 55 virtual void AddGuest(int guest_instance_id, |
56 content::WebContents* guest_web_contents) OVERRIDE{ | 56 content::WebContents* guest_web_contents) OVERRIDE{ |
57 GuestViewManager::AddGuest(guest_instance_id, guest_web_contents); | 57 extensions::GuestViewManager::AddGuest( |
58 guest_instance_id, guest_web_contents); | |
58 web_contents_ = guest_web_contents; | 59 web_contents_ = guest_web_contents; |
59 | 60 |
60 if (message_loop_runner_) | 61 if (message_loop_runner_) |
61 message_loop_runner_->Quit(); | 62 message_loop_runner_->Quit(); |
62 } | 63 } |
63 | 64 |
64 content::WebContents* web_contents_; | 65 content::WebContents* web_contents_; |
65 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; | 66 scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
66 }; | 67 }; |
67 | 68 |
68 // Test factory for creating test instances of GuestViewManager. | 69 // Test factory for creating test instances of GuestViewManager. |
69 class TestGuestViewManagerFactory : public GuestViewManagerFactory { | 70 class TestGuestViewManagerFactory : public extensions::GuestViewManagerFactory { |
70 public: | 71 public: |
71 TestGuestViewManagerFactory() : | 72 TestGuestViewManagerFactory() : |
72 test_guest_view_manager_(NULL) {} | 73 test_guest_view_manager_(NULL) {} |
73 | 74 |
74 virtual ~TestGuestViewManagerFactory() {} | 75 virtual ~TestGuestViewManagerFactory() {} |
75 | 76 |
76 virtual GuestViewManager* CreateGuestViewManager( | 77 virtual extensions::GuestViewManager* CreateGuestViewManager( |
77 content::BrowserContext* context) OVERRIDE { | 78 content::BrowserContext* context) OVERRIDE { |
78 return GetManager(context); | 79 return GetManager(context); |
79 } | 80 } |
80 | 81 |
81 TestGuestViewManager* GetManager(content::BrowserContext* context) { | 82 TestGuestViewManager* GetManager(content::BrowserContext* context) { |
82 if (!test_guest_view_manager_) { | 83 if (!test_guest_view_manager_) { |
83 test_guest_view_manager_ = new TestGuestViewManager(context); | 84 test_guest_view_manager_ = new TestGuestViewManager(context); |
84 } | 85 } |
85 return test_guest_view_manager_; | 86 return test_guest_view_manager_; |
86 } | 87 } |
87 | 88 |
88 private: | 89 private: |
89 TestGuestViewManager* test_guest_view_manager_; | 90 TestGuestViewManager* test_guest_view_manager_; |
90 | 91 |
91 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory); | 92 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory); |
92 }; | 93 }; |
93 | 94 |
94 class WebViewInteractiveTest | 95 class WebViewInteractiveTest |
95 : public extensions::PlatformAppBrowserTest { | 96 : public extensions::PlatformAppBrowserTest { |
96 public: | 97 public: |
97 WebViewInteractiveTest() | 98 WebViewInteractiveTest() |
98 : guest_web_contents_(NULL), | 99 : guest_web_contents_(NULL), |
99 embedder_web_contents_(NULL), | 100 embedder_web_contents_(NULL), |
100 corner_(gfx::Point()), | 101 corner_(gfx::Point()), |
101 mouse_click_result_(false), | 102 mouse_click_result_(false), |
102 first_click_(true) { | 103 first_click_(true) { |
103 GuestViewManager::set_factory_for_testing(&factory_); | 104 extensions::GuestViewManager::set_factory_for_testing(&factory_); |
Fady Samuel
2014/08/11 19:51:51
nit: spacing
Xi Han
2014/08/11 20:06:14
Done.
| |
104 } | 105 } |
105 | 106 |
106 TestGuestViewManager* GetGuestViewManager() { | 107 TestGuestViewManager* GetGuestViewManager() { |
107 return factory_.GetManager(browser()->profile()); | 108 return factory_.GetManager(browser()->profile()); |
108 } | 109 } |
109 | 110 |
110 void MoveMouseInsideWindowWithListener(gfx::Point point, | 111 void MoveMouseInsideWindowWithListener(gfx::Point point, |
111 const std::string& message) { | 112 const std::string& message) { |
112 ExtensionTestMessageListener move_listener(message, false); | 113 ExtensionTestMessageListener move_listener(message, false); |
113 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync( | 114 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync( |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
279 LoadAndLaunchPlatformApp(app_name.c_str(), "connected"); | 280 LoadAndLaunchPlatformApp(app_name.c_str(), "connected"); |
280 | 281 |
281 guest_observer.Wait(); | 282 guest_observer.Wait(); |
282 content::Source<content::NavigationController> source = | 283 content::Source<content::NavigationController> source = |
283 guest_observer.source(); | 284 guest_observer.source(); |
284 EXPECT_TRUE(source->GetWebContents()->GetRenderProcessHost()-> | 285 EXPECT_TRUE(source->GetWebContents()->GetRenderProcessHost()-> |
285 IsIsolatedGuest()); | 286 IsIsolatedGuest()); |
286 | 287 |
287 guest_web_contents_ = source->GetWebContents(); | 288 guest_web_contents_ = source->GetWebContents(); |
288 embedder_web_contents_ = | 289 embedder_web_contents_ = |
289 GuestViewBase::FromWebContents(guest_web_contents_)-> | 290 extensions::GuestViewBase::FromWebContents(guest_web_contents_)-> |
290 embedder_web_contents(); | 291 embedder_web_contents(); |
291 | 292 |
292 gfx::Rect offset = embedder_web_contents_->GetContainerBounds(); | 293 gfx::Rect offset = embedder_web_contents_->GetContainerBounds(); |
293 corner_ = gfx::Point(offset.x(), offset.y()); | 294 corner_ = gfx::Point(offset.x(), offset.y()); |
294 | 295 |
295 const testing::TestInfo* const test_info = | 296 const testing::TestInfo* const test_info = |
296 testing::UnitTest::GetInstance()->current_test_info(); | 297 testing::UnitTest::GetInstance()->current_test_info(); |
297 const char* prefix = "DragDropWithinWebView"; | 298 const char* prefix = "DragDropWithinWebView"; |
298 if (!strncmp(test_info->name(), prefix, strlen(prefix))) { | 299 if (!strncmp(test_info->name(), prefix, strlen(prefix))) { |
299 // In the drag drop test we add 20px padding to the page body because on | 300 // In the drag drop test we add 20px padding to the page body because on |
(...skipping 779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1079 | 1080 |
1080 // Now verify that the selection text propagates properly to RWHV. | 1081 // Now verify that the selection text propagates properly to RWHV. |
1081 content::RenderWidgetHostView* guest_rwhv = | 1082 content::RenderWidgetHostView* guest_rwhv = |
1082 guest_web_contents()->GetRenderWidgetHostView(); | 1083 guest_web_contents()->GetRenderWidgetHostView(); |
1083 ASSERT_TRUE(guest_rwhv); | 1084 ASSERT_TRUE(guest_rwhv); |
1084 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText()); | 1085 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText()); |
1085 ASSERT_TRUE(selected_text.size() >= 10u); | 1086 ASSERT_TRUE(selected_text.size() >= 10u); |
1086 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10)); | 1087 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10)); |
1087 } | 1088 } |
1088 #endif | 1089 #endif |
OLD | NEW |