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

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

Issue 1066563006: GuestView: Move GuestViewManager extension dependencies to ExtensionsGuestViewManagerDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extensions_guest_view_message_filter
Patch Set: Fixed tests I hope Created 5 years, 8 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 "base/strings/stringprintf.h" 5 #include "base/strings/stringprintf.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/app/chrome_command_ids.h" 7 #include "chrome/app/chrome_command_ids.h"
8 #include "chrome/browser/apps/app_browsertest_util.h" 8 #include "chrome/browser/apps/app_browsertest_util.h"
9 #include "chrome/browser/chrome_content_browser_client.h" 9 #include "chrome/browser/chrome_content_browser_client.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert est_util.h" 11 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsert est_util.h"
12 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti l.h" 12 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_uti l.h"
13 #include "chrome/test/base/interactive_test_utils.h" 13 #include "chrome/test/base/interactive_test_utils.h"
14 #include "chrome/test/base/test_launcher_utils.h" 14 #include "chrome/test/base/test_launcher_utils.h"
15 #include "chrome/test/base/ui_test_utils.h" 15 #include "chrome/test/base/ui_test_utils.h"
16 #include "content/public/browser/notification_service.h" 16 #include "content/public/browser/notification_service.h"
17 #include "content/public/browser/render_process_host.h" 17 #include "content/public/browser/render_process_host.h"
18 #include "content/public/browser/render_view_host.h" 18 #include "content/public/browser/render_view_host.h"
19 #include "content/public/browser/render_widget_host_iterator.h" 19 #include "content/public/browser/render_widget_host_iterator.h"
20 #include "content/public/browser/render_widget_host_view.h" 20 #include "content/public/browser/render_widget_host_view.h"
21 #include "content/public/browser/web_contents.h" 21 #include "content/public/browser/web_contents.h"
22 #include "content/public/common/content_switches.h" 22 #include "content/public/common/content_switches.h"
23 #include "content/public/test/browser_test_utils.h" 23 #include "content/public/test/browser_test_utils.h"
24 #include "extensions/browser/app_window/app_window.h" 24 #include "extensions/browser/app_window/app_window.h"
25 #include "extensions/browser/app_window/app_window_registry.h" 25 #include "extensions/browser/app_window/app_window_registry.h"
26 #include "extensions/browser/guest_view/extensions_guest_view_manager_delegate.h "
26 #include "extensions/browser/guest_view/guest_view_base.h" 27 #include "extensions/browser/guest_view/guest_view_base.h"
27 #include "extensions/browser/guest_view/guest_view_manager.h" 28 #include "extensions/browser/guest_view/guest_view_manager.h"
28 #include "extensions/browser/guest_view/guest_view_manager_factory.h" 29 #include "extensions/browser/guest_view/guest_view_manager_factory.h"
30 #include "extensions/browser/guest_view/test_guest_view_manager.h"
29 #include "extensions/test/extension_test_message_listener.h" 31 #include "extensions/test/extension_test_message_listener.h"
30 #include "net/test/embedded_test_server/embedded_test_server.h" 32 #include "net/test/embedded_test_server/embedded_test_server.h"
31 #include "ui/base/ime/composition_text.h" 33 #include "ui/base/ime/composition_text.h"
32 #include "ui/base/ime/text_input_client.h" 34 #include "ui/base/ime/text_input_client.h"
33 #include "ui/base/test/ui_controls.h" 35 #include "ui/base/test/ui_controls.h"
34 #include "ui/events/keycodes/keyboard_codes.h" 36 #include "ui/events/keycodes/keyboard_codes.h"
35 37
36 using extensions::AppWindow; 38 using extensions::AppWindow;
37 39
38 class TestGuestViewManager : public extensions::GuestViewManager { 40 class TestGuestViewManager : public extensions::GuestViewManager {
39 public: 41 public:
40 explicit TestGuestViewManager(content::BrowserContext* context) 42 TestGuestViewManager(content::BrowserContext* context,
41 : GuestViewManager(context), 43 scoped_ptr<guestview::GuestViewManagerDelegate> delegate)
44 : GuestViewManager(context, delegate.Pass()),
42 guest_add_count_(0), 45 guest_add_count_(0),
43 guest_remove_count_(0), 46 guest_remove_count_(0),
44 web_contents_(NULL) {} 47 web_contents_(NULL) {}
45 48
46 content::WebContents* WaitForGuestAdded() { 49 content::WebContents* WaitForGuestAdded() {
47 if (web_contents_) 50 if (web_contents_)
48 return web_contents_; 51 return web_contents_;
49 52
50 add_message_loop_runner_ = new content::MessageLoopRunner; 53 add_message_loop_runner_ = new content::MessageLoopRunner;
51 add_message_loop_runner_->Run(); 54 add_message_loop_runner_->Run();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 remove_message_loop_runner_->Quit(); 87 remove_message_loop_runner_->Quit();
85 } 88 }
86 89
87 size_t guest_add_count_; 90 size_t guest_add_count_;
88 size_t guest_remove_count_; 91 size_t guest_remove_count_;
89 content::WebContents* web_contents_; 92 content::WebContents* web_contents_;
90 scoped_refptr<content::MessageLoopRunner> add_message_loop_runner_; 93 scoped_refptr<content::MessageLoopRunner> add_message_loop_runner_;
91 scoped_refptr<content::MessageLoopRunner> remove_message_loop_runner_; 94 scoped_refptr<content::MessageLoopRunner> remove_message_loop_runner_;
92 }; 95 };
93 96
94 // Test factory for creating test instances of GuestViewManager.
95 class TestGuestViewManagerFactory : public extensions::GuestViewManagerFactory {
96 public:
97 TestGuestViewManagerFactory() :
98 test_guest_view_manager_(NULL) {}
99
100 ~TestGuestViewManagerFactory() override {}
101
102 extensions::GuestViewManager* CreateGuestViewManager(
103 content::BrowserContext* context) override {
104 return GetManager(context);
105 }
106
107 TestGuestViewManager* GetManager(content::BrowserContext* context) {
108 if (!test_guest_view_manager_) {
109 test_guest_view_manager_ = new TestGuestViewManager(context);
110 }
111 return test_guest_view_manager_;
112 }
113
114 private:
115 TestGuestViewManager* test_guest_view_manager_;
116
117 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory);
118 };
119
120 class WebViewInteractiveTest 97 class WebViewInteractiveTest
121 : public extensions::PlatformAppBrowserTest { 98 : public extensions::PlatformAppBrowserTest {
122 public: 99 public:
123 WebViewInteractiveTest() 100 WebViewInteractiveTest()
124 : guest_web_contents_(NULL), 101 : guest_web_contents_(NULL),
125 embedder_web_contents_(NULL), 102 embedder_web_contents_(NULL),
126 corner_(gfx::Point()), 103 corner_(gfx::Point()),
127 mouse_click_result_(false), 104 mouse_click_result_(false),
128 first_click_(true) { 105 first_click_(true) {
129 extensions::GuestViewManager::set_factory_for_testing(&factory_); 106 extensions::GuestViewManager::set_factory_for_testing(&factory_);
130 } 107 }
131 108
132 TestGuestViewManager* GetGuestViewManager() { 109 TestGuestViewManager* GetGuestViewManager() {
133 return factory_.GetManager(browser()->profile()); 110 return static_cast<TestGuestViewManager*>(
111 extensions::GuestViewManager::FromBrowserContext(browser()->profile()));
134 } 112 }
135 113
136 void MoveMouseInsideWindowWithListener(gfx::Point point, 114 void MoveMouseInsideWindowWithListener(gfx::Point point,
137 const std::string& message) { 115 const std::string& message) {
138 ExtensionTestMessageListener move_listener(message, false); 116 ExtensionTestMessageListener move_listener(message, false);
139 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync( 117 ASSERT_TRUE(ui_test_utils::SendMouseMoveSync(
140 gfx::Point(corner_.x() + point.x(), corner_.y() + point.y()))); 118 gfx::Point(corner_.x() + point.x(), corner_.y() + point.y())));
141 ASSERT_TRUE(move_listener.WaitUntilSatisfied()); 119 ASSERT_TRUE(move_listener.WaitUntilSatisfied());
142 } 120 }
143 121
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 "FULLSCREEN_STEP_PASSED", false); 518 "FULLSCREEN_STEP_PASSED", false);
541 passed_listener.set_failure_message("TEST_FAILED"); 519 passed_listener.set_failure_message("TEST_FAILED");
542 content::SimulateMouseClickAt(guest_web_contents(), 520 content::SimulateMouseClickAt(guest_web_contents(),
543 0, 521 0,
544 blink::WebMouseEvent::ButtonLeft, 522 blink::WebMouseEvent::ButtonLeft,
545 gfx::Point(20, 20)); 523 gfx::Point(20, 20));
546 ASSERT_TRUE(passed_listener.WaitUntilSatisfied()); 524 ASSERT_TRUE(passed_listener.WaitUntilSatisfied());
547 } 525 }
548 526
549 protected: 527 protected:
550 TestGuestViewManagerFactory factory_; 528 extensions::TestGuestViewManagerFactory factory_;
551 content::WebContents* guest_web_contents_; 529 content::WebContents* guest_web_contents_;
552 content::WebContents* embedder_web_contents_; 530 content::WebContents* embedder_web_contents_;
553 gfx::Point corner_; 531 gfx::Point corner_;
554 bool mouse_click_result_; 532 bool mouse_click_result_;
555 bool first_click_; 533 bool first_click_;
556 // Only used in drag/drop test. 534 // Only used in drag/drop test.
557 base::Closure quit_closure_; 535 base::Closure quit_closure_;
558 std::string last_drop_data_; 536 std::string last_drop_data_;
559 }; 537 };
560 538
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
1211 1189
1212 // Now verify that the selection text propagates properly to RWHV. 1190 // Now verify that the selection text propagates properly to RWHV.
1213 content::RenderWidgetHostView* guest_rwhv = 1191 content::RenderWidgetHostView* guest_rwhv =
1214 guest_web_contents()->GetRenderWidgetHostView(); 1192 guest_web_contents()->GetRenderWidgetHostView();
1215 ASSERT_TRUE(guest_rwhv); 1193 ASSERT_TRUE(guest_rwhv);
1216 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText()); 1194 std::string selected_text = base::UTF16ToUTF8(guest_rwhv->GetSelectedText());
1217 ASSERT_TRUE(selected_text.size() >= 10u); 1195 ASSERT_TRUE(selected_text.size() >= 10u);
1218 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10)); 1196 ASSERT_EQ("AAAAAAAAAA", selected_text.substr(0, 10));
1219 } 1197 }
1220 #endif 1198 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698