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

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

Issue 604443003: Adds more webview tests to app_shell_browsertests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « no previous file | extensions/browser/guest_view/web_view/test_guest_view_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/path_service.h" 5 #include "base/path_service.h"
6 #include "base/strings/stringprintf.h" 6 #include "base/strings/stringprintf.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.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/prerender/prerender_link_manager.h" 10 #include "chrome/browser/prerender/prerender_link_manager.h"
(...skipping 12 matching lines...) Expand all
23 #include "content/public/browser/notification_service.h" 23 #include "content/public/browser/notification_service.h"
24 #include "content/public/browser/render_process_host.h" 24 #include "content/public/browser/render_process_host.h"
25 #include "content/public/browser/web_contents_delegate.h" 25 #include "content/public/browser/web_contents_delegate.h"
26 #include "content/public/common/content_switches.h" 26 #include "content/public/common/content_switches.h"
27 #include "content/public/test/browser_test_utils.h" 27 #include "content/public/test/browser_test_utils.h"
28 #include "content/public/test/fake_speech_recognition_manager.h" 28 #include "content/public/test/fake_speech_recognition_manager.h"
29 #include "content/public/test/test_renderer_host.h" 29 #include "content/public/test/test_renderer_host.h"
30 #include "extensions/browser/app_window/native_app_window.h" 30 #include "extensions/browser/app_window/native_app_window.h"
31 #include "extensions/browser/guest_view/guest_view_manager.h" 31 #include "extensions/browser/guest_view/guest_view_manager.h"
32 #include "extensions/browser/guest_view/guest_view_manager_factory.h" 32 #include "extensions/browser/guest_view/guest_view_manager_factory.h"
33 #include "extensions/browser/guest_view/web_view/test_guest_view_manager.h"
33 #include "extensions/common/extension.h" 34 #include "extensions/common/extension.h"
34 #include "extensions/common/extensions_client.h" 35 #include "extensions/common/extensions_client.h"
35 #include "extensions/test/extension_test_message_listener.h" 36 #include "extensions/test/extension_test_message_listener.h"
36 #include "media/base/media_switches.h" 37 #include "media/base/media_switches.h"
37 #include "net/test/embedded_test_server/embedded_test_server.h" 38 #include "net/test/embedded_test_server/embedded_test_server.h"
38 #include "net/test/embedded_test_server/http_request.h" 39 #include "net/test/embedded_test_server/http_request.h"
39 #include "net/test/embedded_test_server/http_response.h" 40 #include "net/test/embedded_test_server/http_response.h"
40 #include "ui/gfx/switches.h" 41 #include "ui/gfx/switches.h"
41 #include "ui/gl/gl_switches.h" 42 #include "ui/gl/gl_switches.h"
42 43
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 }; 89 };
89 90
90 class TestInterstitialPageDelegate : public content::InterstitialPageDelegate { 91 class TestInterstitialPageDelegate : public content::InterstitialPageDelegate {
91 public: 92 public:
92 TestInterstitialPageDelegate() { 93 TestInterstitialPageDelegate() {
93 } 94 }
94 virtual ~TestInterstitialPageDelegate() {} 95 virtual ~TestInterstitialPageDelegate() {}
95 virtual std::string GetHTMLContents() OVERRIDE { return std::string(); } 96 virtual std::string GetHTMLContents() OVERRIDE { return std::string(); }
96 }; 97 };
97 98
98 class TestGuestViewManager : public extensions::GuestViewManager {
99 public:
100 explicit TestGuestViewManager(content::BrowserContext* context) :
101 GuestViewManager(context),
102 seen_guest_removed_(false),
103 web_contents_(NULL) {}
104
105 content::WebContents* WaitForGuestCreated() {
106 if (web_contents_)
107 return web_contents_;
108
109 created_message_loop_runner_ = new content::MessageLoopRunner;
110 created_message_loop_runner_->Run();
111 return web_contents_;
112 }
113
114 void WaitForGuestDeleted() {
115 if (seen_guest_removed_)
116 return;
117
118 deleted_message_loop_runner_ = new content::MessageLoopRunner;
119 deleted_message_loop_runner_->Run();
120 }
121
122 private:
123 // GuestViewManager override:
124 virtual void AddGuest(int guest_instance_id,
125 content::WebContents* guest_web_contents) OVERRIDE{
126 extensions::GuestViewManager::AddGuest(
127 guest_instance_id, guest_web_contents);
128 web_contents_ = guest_web_contents;
129 seen_guest_removed_ = false;
130
131 if (created_message_loop_runner_.get())
132 created_message_loop_runner_->Quit();
133 }
134
135 virtual void RemoveGuest(int guest_instance_id) OVERRIDE {
136 extensions::GuestViewManager::RemoveGuest(guest_instance_id);
137 web_contents_ = NULL;
138 seen_guest_removed_ = true;
139
140 if (deleted_message_loop_runner_.get())
141 deleted_message_loop_runner_->Quit();
142 }
143
144 bool seen_guest_removed_;
145 content::WebContents* web_contents_;
146 scoped_refptr<content::MessageLoopRunner> created_message_loop_runner_;
147 scoped_refptr<content::MessageLoopRunner> deleted_message_loop_runner_;
148 };
149
150 // Test factory for creating test instances of GuestViewManager.
151 class TestGuestViewManagerFactory :
152 public extensions::GuestViewManagerFactory {
153 public:
154 TestGuestViewManagerFactory() :
155 test_guest_view_manager_(NULL) {}
156
157 virtual ~TestGuestViewManagerFactory() {}
158
159 virtual extensions::GuestViewManager* CreateGuestViewManager(
160 content::BrowserContext* context) OVERRIDE {
161 return GetManager(context);
162 }
163
164 TestGuestViewManager* GetManager(content::BrowserContext* context) {
165 if (!test_guest_view_manager_) {
166 test_guest_view_manager_ = new TestGuestViewManager(context);
167 }
168 return test_guest_view_manager_;
169 }
170
171 private:
172 TestGuestViewManager* test_guest_view_manager_;
173
174 DISALLOW_COPY_AND_ASSIGN(TestGuestViewManagerFactory);
175 };
176
177 class WebContentsHiddenObserver : public content::WebContentsObserver { 99 class WebContentsHiddenObserver : public content::WebContentsObserver {
178 public: 100 public:
179 WebContentsHiddenObserver(content::WebContents* web_contents, 101 WebContentsHiddenObserver(content::WebContents* web_contents,
180 const base::Closure& hidden_callback) 102 const base::Closure& hidden_callback)
181 : WebContentsObserver(web_contents), 103 : WebContentsObserver(web_contents),
182 hidden_callback_(hidden_callback), 104 hidden_callback_(hidden_callback),
183 hidden_observed_(false) { 105 hidden_observed_(false) {
184 } 106 }
185 107
186 // WebContentsObserver. 108 // WebContentsObserver.
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 return guest_web_contents_; 659 return guest_web_contents_;
738 } 660 }
739 661
740 content::WebContents* GetEmbedderWebContents() { 662 content::WebContents* GetEmbedderWebContents() {
741 if (!embedder_web_contents_) { 663 if (!embedder_web_contents_) {
742 embedder_web_contents_ = GetFirstAppWindowWebContents(); 664 embedder_web_contents_ = GetFirstAppWindowWebContents();
743 } 665 }
744 return embedder_web_contents_; 666 return embedder_web_contents_;
745 } 667 }
746 668
747 TestGuestViewManager* GetGuestViewManager() { 669 extensions::TestGuestViewManager* GetGuestViewManager() {
748 return factory_.GetManager(browser()->profile()); 670 return static_cast<extensions::TestGuestViewManager*>(
671 extensions::TestGuestViewManager::FromBrowserContext(
672 browser()->profile()));
749 } 673 }
750 674
751 WebViewTest() : guest_web_contents_(NULL), 675 WebViewTest() : guest_web_contents_(NULL),
752 embedder_web_contents_(NULL) { 676 embedder_web_contents_(NULL) {
753 extensions::GuestViewManager::set_factory_for_testing(&factory_); 677 extensions::GuestViewManager::set_factory_for_testing(&factory_);
754 } 678 }
755 679
756 private: 680 private:
757 bool UsesFakeSpeech() { 681 bool UsesFakeSpeech() {
758 const testing::TestInfo* const test_info = 682 const testing::TestInfo* const test_info =
759 testing::UnitTest::GetInstance()->current_test_info(); 683 testing::UnitTest::GetInstance()->current_test_info();
760 684
761 // SpeechRecognition test specific SetUp. 685 // SpeechRecognition test specific SetUp.
762 return !strcmp(test_info->name(), 686 return !strcmp(test_info->name(),
763 "SpeechRecognitionAPI_HasPermissionAllow"); 687 "SpeechRecognitionAPI_HasPermissionAllow");
764 } 688 }
765 689
766 scoped_ptr<content::FakeSpeechRecognitionManager> 690 scoped_ptr<content::FakeSpeechRecognitionManager>
767 fake_speech_recognition_manager_; 691 fake_speech_recognition_manager_;
768 692
769 TestGuestViewManagerFactory factory_; 693 extensions::TestGuestViewManagerFactory factory_;
770 // Note that these are only set if you launch app using LoadAppWithGuest(). 694 // Note that these are only set if you launch app using LoadAppWithGuest().
771 content::WebContents* guest_web_contents_; 695 content::WebContents* guest_web_contents_;
772 content::WebContents* embedder_web_contents_; 696 content::WebContents* embedder_web_contents_;
773 }; 697 };
774 698
775 class WebViewDPITest : public WebViewTest { 699 class WebViewDPITest : public WebViewTest {
776 protected: 700 protected:
777 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 701 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
778 WebViewTest::SetUpCommandLine(command_line); 702 WebViewTest::SetUpCommandLine(command_line);
779 command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor, 703 command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor,
(...skipping 1568 matching lines...) Expand 10 before | Expand all | Expand 10 after
2348 // http://crbug.com/403325 2272 // http://crbug.com/403325
2349 #define MAYBE_WebViewInBackgroundPage \ 2273 #define MAYBE_WebViewInBackgroundPage \
2350 DISABLED_WebViewInBackgroundPage 2274 DISABLED_WebViewInBackgroundPage
2351 #else 2275 #else
2352 #define MAYBE_WebViewInBackgroundPage WebViewInBackgroundPage 2276 #define MAYBE_WebViewInBackgroundPage WebViewInBackgroundPage
2353 #endif 2277 #endif
2354 IN_PROC_BROWSER_TEST_F(WebViewTest, MAYBE_WebViewInBackgroundPage) { 2278 IN_PROC_BROWSER_TEST_F(WebViewTest, MAYBE_WebViewInBackgroundPage) {
2355 ASSERT_TRUE(RunExtensionTest("platform_apps/web_view/background")) 2279 ASSERT_TRUE(RunExtensionTest("platform_apps/web_view/background"))
2356 << message_; 2280 << message_;
2357 } 2281 }
OLDNEW
« no previous file with comments | « no previous file | extensions/browser/guest_view/web_view/test_guest_view_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698