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

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

Issue 5384002: net: Remove typedef net::URLRequest URLRequest; (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 10 years 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "base/message_loop.h" 6 #include "base/message_loop.h"
7 #include "chrome/browser/chromeos/gview_request_interceptor.h" 7 #include "chrome/browser/chromeos/gview_request_interceptor.h"
8 #include "chrome/browser/plugin_service.h" 8 #include "chrome/browser/plugin_service.h"
9 #include "chrome/common/chrome_paths.h" 9 #include "chrome/common/chrome_paths.h"
10 #include "net/base/load_flags.h" 10 #include "net/base/load_flags.h"
11 #include "net/url_request/url_request.h" 11 #include "net/url_request/url_request.h"
12 #include "net/url_request/url_request_job.h" 12 #include "net/url_request/url_request_job.h"
13 #include "net/url_request/url_request_test_job.h" 13 #include "net/url_request/url_request_test_job.h"
14 #include "net/url_request/url_request_unittest.h" 14 #include "net/url_request/url_request_unittest.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "webkit/glue/plugins/plugin_list.h" 16 #include "webkit/glue/plugins/plugin_list.h"
17 17
18 namespace chromeos { 18 namespace chromeos {
19 19
20 class GViewURLRequestTestJob : public URLRequestTestJob { 20 class GViewURLRequestTestJob : public URLRequestTestJob {
21 public: 21 public:
22 explicit GViewURLRequestTestJob(URLRequest* request) 22 explicit GViewURLRequestTestJob(net::URLRequest* request)
23 : URLRequestTestJob(request, true) { 23 : URLRequestTestJob(request, true) {
24 } 24 }
25 25
26 virtual bool GetMimeType(std::string* mime_type) const { 26 virtual bool GetMimeType(std::string* mime_type) const {
27 // During the course of a single test, two URLRequestJobs are 27 // During the course of a single test, two URLRequestJobs are
28 // created -- the first is for the viewable document URL, and the 28 // created -- the first is for the viewable document URL, and the
29 // second is for the rediected URL. In order to test the 29 // second is for the rediected URL. In order to test the
30 // interceptor, the mime type of the first request must be one of 30 // interceptor, the mime type of the first request must be one of
31 // the supported viewable mime types. So when the URLRequestJob 31 // the supported viewable mime types. So when the URLRequestJob
32 // is a request for one of the test URLs that point to viewable 32 // is a request for one of the test URLs that point to viewable
33 // content, return an appropraite mime type. Otherwise, return 33 // content, return an appropraite mime type. Otherwise, return
34 // "text/html". 34 // "text/html".
35 if (request_->url() == GURL("http://foo.com/file.pdf")) { 35 if (request_->url() == GURL("http://foo.com/file.pdf")) {
36 *mime_type = "application/pdf"; 36 *mime_type = "application/pdf";
37 } else if (request_->url() == GURL("http://foo.com/file.ppt")) { 37 } else if (request_->url() == GURL("http://foo.com/file.ppt")) {
38 *mime_type = "application/vnd.ms-powerpoint"; 38 *mime_type = "application/vnd.ms-powerpoint";
39 } else { 39 } else {
40 *mime_type = "text/html"; 40 *mime_type = "text/html";
41 } 41 }
42 return true; 42 return true;
43 } 43 }
44 44
45 private: 45 private:
46 ~GViewURLRequestTestJob() {} 46 ~GViewURLRequestTestJob() {}
47 }; 47 };
48 48
49 class GViewRequestInterceptorTest : public testing::Test { 49 class GViewRequestInterceptorTest : public testing::Test {
50 public: 50 public:
51 virtual void SetUp() { 51 virtual void SetUp() {
52 URLRequest::RegisterProtocolFactory("http", 52 net::URLRequest::RegisterProtocolFactory("http",
53 &GViewRequestInterceptorTest::Factory); 53 &GViewRequestInterceptorTest::Factory);
54 interceptor_ = GViewRequestInterceptor::GetGViewRequestInterceptor(); 54 interceptor_ = GViewRequestInterceptor::GetGViewRequestInterceptor();
55 ASSERT_TRUE(PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path_)); 55 ASSERT_TRUE(PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf_path_));
56 } 56 }
57 57
58 virtual void TearDown() { 58 virtual void TearDown() {
59 URLRequest::RegisterProtocolFactory("http", NULL); 59 net::URLRequest::RegisterProtocolFactory("http", NULL);
60 message_loop_.RunAllPending(); 60 message_loop_.RunAllPending();
61 } 61 }
62 62
63 static URLRequestJob* Factory(URLRequest* request, 63 static URLRequestJob* Factory(net::URLRequest* request,
64 const std::string& scheme) { 64 const std::string& scheme) {
65 return new GViewURLRequestTestJob(request); 65 return new GViewURLRequestTestJob(request);
66 } 66 }
67 67
68 void RegisterPDFPlugin() { 68 void RegisterPDFPlugin() {
69 NPAPI::PluginVersionInfo info; 69 NPAPI::PluginVersionInfo info;
70 info.path = pdf_path_; 70 info.path = pdf_path_;
71 memset(&info.entry_points, 0, sizeof(info.entry_points)); 71 memset(&info.entry_points, 0, sizeof(info.entry_points));
72 NPAPI::PluginList::Singleton()->RegisterInternalPlugin(info); 72 NPAPI::PluginList::Singleton()->RegisterInternalPlugin(info);
73 NPAPI::PluginList::Singleton()->RefreshPlugins(); 73 NPAPI::PluginList::Singleton()->RefreshPlugins();
(...skipping 20 matching lines...) Expand all
94 is_loaded = 94 is_loaded =
95 NPAPI::PluginList::Singleton()->GetPluginInfoByPath(pdf_path_, &info); 95 NPAPI::PluginList::Singleton()->GetPluginInfoByPath(pdf_path_, &info);
96 } 96 }
97 EXPECT_EQ(want_loaded, is_loaded); 97 EXPECT_EQ(want_loaded, is_loaded);
98 *out_is_enabled = info.enabled; 98 *out_is_enabled = info.enabled;
99 } 99 }
100 100
101 protected: 101 protected:
102 MessageLoopForIO message_loop_; 102 MessageLoopForIO message_loop_;
103 TestDelegate test_delegate_; 103 TestDelegate test_delegate_;
104 URLRequest::Interceptor* interceptor_; 104 net::URLRequest::Interceptor* interceptor_;
105 FilePath pdf_path_; 105 FilePath pdf_path_;
106 }; 106 };
107 107
108 TEST_F(GViewRequestInterceptorTest, DoNotInterceptHtml) { 108 TEST_F(GViewRequestInterceptorTest, DoNotInterceptHtml) {
109 URLRequest request(GURL("http://foo.com/index.html"), &test_delegate_); 109 net::URLRequest request(GURL("http://foo.com/index.html"), &test_delegate_);
110 request.Start(); 110 request.Start();
111 MessageLoop::current()->Run(); 111 MessageLoop::current()->Run();
112 EXPECT_EQ(0, test_delegate_.received_redirect_count()); 112 EXPECT_EQ(0, test_delegate_.received_redirect_count());
113 EXPECT_EQ(GURL("http://foo.com/index.html"), request.url()); 113 EXPECT_EQ(GURL("http://foo.com/index.html"), request.url());
114 } 114 }
115 115
116 TEST_F(GViewRequestInterceptorTest, DoNotInterceptDownload) { 116 TEST_F(GViewRequestInterceptorTest, DoNotInterceptDownload) {
117 URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 117 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
118 request.set_load_flags(net::LOAD_IS_DOWNLOAD); 118 request.set_load_flags(net::LOAD_IS_DOWNLOAD);
119 request.Start(); 119 request.Start();
120 MessageLoop::current()->Run(); 120 MessageLoop::current()->Run();
121 EXPECT_EQ(0, test_delegate_.received_redirect_count()); 121 EXPECT_EQ(0, test_delegate_.received_redirect_count());
122 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url()); 122 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url());
123 } 123 }
124 124
125 TEST_F(GViewRequestInterceptorTest, DoNotInterceptPdfWhenEnabled) { 125 TEST_F(GViewRequestInterceptorTest, DoNotInterceptPdfWhenEnabled) {
126 bool enabled; 126 bool enabled;
127 SetPDFPluginLoadedState(true, &enabled); 127 SetPDFPluginLoadedState(true, &enabled);
128 128
129 if (!enabled) { 129 if (!enabled) {
130 bool pdf_plugin_enabled = 130 bool pdf_plugin_enabled =
131 NPAPI::PluginList::Singleton()->EnablePlugin(pdf_path_); 131 NPAPI::PluginList::Singleton()->EnablePlugin(pdf_path_);
132 EXPECT_TRUE(pdf_plugin_enabled); 132 EXPECT_TRUE(pdf_plugin_enabled);
133 } 133 }
134 134
135 URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 135 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
136 request.Start(); 136 request.Start();
137 MessageLoop::current()->Run(); 137 MessageLoop::current()->Run();
138 EXPECT_EQ(0, test_delegate_.received_redirect_count()); 138 EXPECT_EQ(0, test_delegate_.received_redirect_count());
139 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url()); 139 EXPECT_EQ(GURL("http://foo.com/file.pdf"), request.url());
140 } 140 }
141 141
142 TEST_F(GViewRequestInterceptorTest, InterceptPdfWhenDisabled) { 142 TEST_F(GViewRequestInterceptorTest, InterceptPdfWhenDisabled) {
143 bool enabled; 143 bool enabled;
144 SetPDFPluginLoadedState(true, &enabled); 144 SetPDFPluginLoadedState(true, &enabled);
145 145
146 if (enabled) { 146 if (enabled) {
147 bool pdf_plugin_disabled = 147 bool pdf_plugin_disabled =
148 NPAPI::PluginList::Singleton()->DisablePlugin(pdf_path_); 148 NPAPI::PluginList::Singleton()->DisablePlugin(pdf_path_);
149 EXPECT_TRUE(pdf_plugin_disabled); 149 EXPECT_TRUE(pdf_plugin_disabled);
150 } 150 }
151 151
152 URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 152 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
153 request.Start(); 153 request.Start();
154 MessageLoop::current()->Run(); 154 MessageLoop::current()->Run();
155 EXPECT_EQ(1, test_delegate_.received_redirect_count()); 155 EXPECT_EQ(1, test_delegate_.received_redirect_count());
156 EXPECT_EQ( 156 EXPECT_EQ(
157 GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"), 157 GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"),
158 request.url()); 158 request.url());
159 } 159 }
160 160
161 TEST_F(GViewRequestInterceptorTest, InterceptPdfWithNoPlugin) { 161 TEST_F(GViewRequestInterceptorTest, InterceptPdfWithNoPlugin) {
162 bool enabled; 162 bool enabled;
163 SetPDFPluginLoadedState(false, &enabled); 163 SetPDFPluginLoadedState(false, &enabled);
164 164
165 URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_); 165 net::URLRequest request(GURL("http://foo.com/file.pdf"), &test_delegate_);
166 request.Start(); 166 request.Start();
167 MessageLoop::current()->Run(); 167 MessageLoop::current()->Run();
168 EXPECT_EQ(1, test_delegate_.received_redirect_count()); 168 EXPECT_EQ(1, test_delegate_.received_redirect_count());
169 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"), 169 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.pdf"),
170 request.url()); 170 request.url());
171 } 171 }
172 172
173 TEST_F(GViewRequestInterceptorTest, InterceptPowerpoint) { 173 TEST_F(GViewRequestInterceptorTest, InterceptPowerpoint) {
174 URLRequest request(GURL("http://foo.com/file.ppt"), &test_delegate_); 174 net::URLRequest request(GURL("http://foo.com/file.ppt"), &test_delegate_);
175 request.Start(); 175 request.Start();
176 MessageLoop::current()->Run(); 176 MessageLoop::current()->Run();
177 EXPECT_EQ(1, test_delegate_.received_redirect_count()); 177 EXPECT_EQ(1, test_delegate_.received_redirect_count());
178 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.ppt"), 178 EXPECT_EQ(GURL("http://docs.google.com/gview?url=http%3A//foo.com/file.ppt"),
179 request.url()); 179 request.url());
180 } 180 }
181 181
182 } // namespace chromeos 182 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698