Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Side by Side Diff: chrome/browser/apps/web_view_interactive_browsertest.cc

Issue 464533002: Move guest_view to extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small changes are made in guest_view_manager_unittest.cc Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_);
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/apps/web_view_browsertest.cc ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698