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

Side by Side Diff: chrome/browser/chromeos/gview_request_interceptor_unittest.cc

Issue 7904009: Reland r101269: Store plug-in enabled/disabled state in PluginPrefs instead of WebPluginInfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <string> 5 #include <string>
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "chrome/browser/chrome_plugin_service_filter.h" 8 #include "chrome/browser/chrome_plugin_service_filter.h"
9 #include "chrome/browser/chromeos/gview_request_interceptor.h" 9 #include "chrome/browser/chromeos/gview_request_interceptor.h"
10 #include "chrome/browser/plugin_prefs.h" 10 #include "chrome/browser/plugin_prefs.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 64
65 virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const { 65 virtual net::URLRequestJob* MaybeCreateJob(net::URLRequest* request) const {
66 return new GViewURLRequestTestJob(request); 66 return new GViewURLRequestTestJob(request);
67 } 67 }
68 }; 68 };
69 69
70 class GViewRequestInterceptorTest : public testing::Test { 70 class GViewRequestInterceptorTest : public testing::Test {
71 public: 71 public:
72 GViewRequestInterceptorTest() 72 GViewRequestInterceptorTest()
73 : ui_thread_(BrowserThread::UI, &message_loop_), 73 : ui_thread_(BrowserThread::UI, &message_loop_),
74 file_thread_(BrowserThread::FILE, &message_loop_),
74 io_thread_(BrowserThread::IO, &message_loop_) {} 75 io_thread_(BrowserThread::IO, &message_loop_) {}
75 76
76 virtual void SetUp() { 77 virtual void SetUp() {
77 content::ResourceContext* resource_context = 78 content::ResourceContext* resource_context =
78 content::MockResourceContext::GetInstance(); 79 content::MockResourceContext::GetInstance();
79 net::URLRequestContext* request_context = 80 net::URLRequestContext* request_context =
80 resource_context->request_context(); 81 resource_context->request_context();
81 old_factory_ = request_context->job_factory(); 82 old_factory_ = request_context->job_factory();
82 job_factory_.SetProtocolHandler("http", new GViewRequestProtocolFactory); 83 job_factory_.SetProtocolHandler("http", new GViewRequestProtocolFactory);
83 job_factory_.AddInterceptor(new GViewRequestInterceptor); 84 job_factory_.AddInterceptor(new GViewRequestInterceptor);
84 request_context->set_job_factory(&job_factory_); 85 request_context->set_job_factory(&job_factory_);
85 PluginPrefs::RegisterPrefs(&prefs_); 86 PluginPrefs::RegisterPrefs(&prefs_);
86 plugin_prefs_ = new PluginPrefs(); 87 plugin_prefs_ = new PluginPrefs();
87 plugin_prefs_->SetPrefs(&prefs_); 88 plugin_prefs_->SetPrefs(&prefs_);
88 ChromePluginServiceFilter* filter = 89 ChromePluginServiceFilter* filter =
89 ChromePluginServiceFilter::GetInstance(); 90 ChromePluginServiceFilter::GetInstance();
90 filter->RegisterResourceContext(plugin_prefs_, resource_context); 91 filter->RegisterResourceContext(plugin_prefs_, resource_context);
91 PluginService::GetInstance()->set_filter(filter); 92 PluginService::GetInstance()->set_filter(filter);
92 93
93 ASSERT_TRUE(PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path_)); 94 ASSERT_TRUE(PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path_));
94 95
95 handler_ = new content::DummyResourceHandler(); 96 handler_ = new content::DummyResourceHandler();
96 } 97 }
97 98
98 virtual void TearDown() { 99 virtual void TearDown() {
100 plugin_prefs_->ShutdownOnUIThread();
99 content::ResourceContext* resource_context = 101 content::ResourceContext* resource_context =
100 content::MockResourceContext::GetInstance(); 102 content::MockResourceContext::GetInstance();
101 net::URLRequestContext* request_context = 103 net::URLRequestContext* request_context =
102 resource_context->request_context(); 104 resource_context->request_context();
103 request_context->set_job_factory(old_factory_); 105 request_context->set_job_factory(old_factory_);
104 ChromePluginServiceFilter* filter = 106 ChromePluginServiceFilter* filter =
105 ChromePluginServiceFilter::GetInstance(); 107 ChromePluginServiceFilter::GetInstance();
106 filter->UnregisterResourceContext(resource_context); 108 filter->UnregisterResourceContext(resource_context);
107 PluginService::GetInstance()->set_filter(NULL); 109 PluginService::GetInstance()->set_filter(NULL);
108 } 110 }
109 111
110 void RegisterPDFPlugin() { 112 void RegisterPDFPlugin() {
111 webkit::WebPluginInfo info; 113 webkit::WebPluginInfo info;
112 info.path = pdf_path_; 114 info.path = pdf_path_;
113 info.enabled = webkit::WebPluginInfo::USER_ENABLED_POLICY_UNMANAGED;
114 webkit::npapi::PluginList::Singleton()->RegisterInternalPlugin(info); 115 webkit::npapi::PluginList::Singleton()->RegisterInternalPlugin(info);
115 webkit::npapi::PluginList::Singleton()->RefreshPlugins(); 116 webkit::npapi::PluginList::Singleton()->RefreshPlugins();
116 } 117 }
117 118
118 void UnregisterPDFPlugin() { 119 void UnregisterPDFPlugin() {
119 webkit::npapi::PluginList::Singleton()->UnregisterInternalPlugin(pdf_path_); 120 webkit::npapi::PluginList::Singleton()->UnregisterInternalPlugin(pdf_path_);
120 webkit::npapi::PluginList::Singleton()->RefreshPlugins(); 121 webkit::npapi::PluginList::Singleton()->RefreshPlugins();
121 } 122 }
122 123
123 void SetPDFPluginLoadedState(bool want_loaded) { 124 void SetPDFPluginLoadedState(bool want_loaded) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 true, // allow_download 160 true, // allow_download
160 false, // has_user_gesture 161 false, // has_user_gesture
161 context); 162 context);
162 request->SetUserData(NULL, info); 163 request->SetUserData(NULL, info);
163 request->set_context(context->request_context()); 164 request->set_context(context->request_context());
164 } 165 }
165 166
166 protected: 167 protected:
167 MessageLoopForIO message_loop_; 168 MessageLoopForIO message_loop_;
168 BrowserThread ui_thread_; 169 BrowserThread ui_thread_;
170 BrowserThread file_thread_;
169 BrowserThread io_thread_; 171 BrowserThread io_thread_;
170 TestingPrefService prefs_; 172 TestingPrefService prefs_;
171 scoped_refptr<PluginPrefs> plugin_prefs_; 173 scoped_refptr<PluginPrefs> plugin_prefs_;
172 net::URLRequestJobFactory job_factory_; 174 net::URLRequestJobFactory job_factory_;
173 const net::URLRequestJobFactory* old_factory_; 175 const net::URLRequestJobFactory* old_factory_;
174 scoped_refptr<ResourceHandler> handler_; 176 scoped_refptr<ResourceHandler> handler_;
175 TestDelegate test_delegate_; 177 TestDelegate test_delegate_;
176 FilePath pdf_path_; 178 FilePath pdf_path_;
177 }; 179 };
178 180
(...skipping 11 matching lines...) Expand all
190 SetupRequest(&request); 192 SetupRequest(&request);
191 request.set_load_flags(net::LOAD_IS_DOWNLOAD); 193 request.set_load_flags(net::LOAD_IS_DOWNLOAD);
192 request.Start(); 194 request.Start();
193 MessageLoop::current()->Run(); 195 MessageLoop::current()->Run();
194 EXPECT_EQ(0, test_delegate_.received_redirect_count()); 196 EXPECT_EQ(0, test_delegate_.received_redirect_count());
195 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url()); 197 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url());
196 } 198 }
197 199
198 TEST_F(GViewRequestInterceptorTest, DoNotInterceptPdfWhenEnabled) { 200 TEST_F(GViewRequestInterceptorTest, DoNotInterceptPdfWhenEnabled) {
199 SetPDFPluginLoadedState(true); 201 SetPDFPluginLoadedState(true);
200 webkit::npapi::PluginList::Singleton()->EnablePlugin(pdf_path_); 202 plugin_prefs_->EnablePlugin(true, pdf_path_);
201 203
202 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 204 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
203 SetupRequest(&request); 205 SetupRequest(&request);
204 request.Start(); 206 request.Start();
205 MessageLoop::current()->Run(); 207 MessageLoop::current()->Run();
206 EXPECT_EQ(0, test_delegate_.received_redirect_count()); 208 EXPECT_EQ(0, test_delegate_.received_redirect_count());
207 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url()); 209 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url());
208 } 210 }
209 211
210 TEST_F(GViewRequestInterceptorTest, InterceptPdfWhenDisabled) { 212 TEST_F(GViewRequestInterceptorTest, InterceptPdfWhenDisabled) {
211 SetPDFPluginLoadedState(true); 213 SetPDFPluginLoadedState(true);
212 webkit::npapi::PluginList::Singleton()->DisablePlugin(pdf_path_); 214 plugin_prefs_->EnablePlugin(false, pdf_path_);
213 215
214 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 216 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
215 SetupRequest(&request); 217 SetupRequest(&request);
216 request.Start(); 218 request.Start();
217 MessageLoop::current()->Run(); 219 MessageLoop::current()->Run();
218 EXPECT_EQ(1, test_delegate_.received_redirect_count()); 220 EXPECT_EQ(1, test_delegate_.received_redirect_count());
219 EXPECT_EQ( 221 EXPECT_EQ(
220 GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"), 222 GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"),
221 request.url()); 223 request.url());
222 } 224 }
(...skipping 16 matching lines...) Expand all
239 request.Start(); 241 request.Start();
240 MessageLoop::current()->Run(); 242 MessageLoop::current()->Run();
241 EXPECT_EQ(1, test_delegate_.received_redirect_count()); 243 EXPECT_EQ(1, test_delegate_.received_redirect_count());
242 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.ppt"), 244 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.ppt"),
243 request.url()); 245 request.url());
244 } 246 }
245 247
246 } // namespace 248 } // namespace
247 249
248 } // namespace chromeos 250 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698