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

Side by Side Diff: webkit/plugins/ppapi/url_request_info_unittest.cc

Issue 7706021: Convert FileRefImpl and URLRequestInfo to shared_impl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Minor fixes Created 9 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 | 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 "ppapi/thunk/thunk.h" 5 #include "ppapi/thunk/thunk.h"
6 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 6 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
7 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" 7 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h"
8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" 8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
10 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" 10 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 WebString GetMethod() { 83 WebString GetMethod() {
84 WebURLRequest web_request = info_->ToWebURLRequest(frame_); 84 WebURLRequest web_request = info_->ToWebURLRequest(frame_);
85 return web_request.httpMethod(); 85 return web_request.httpMethod();
86 } 86 }
87 87
88 WebString GetHeaderValue(const char* field) { 88 WebString GetHeaderValue(const char* field) {
89 WebURLRequest web_request = info_->ToWebURLRequest(frame_); 89 WebURLRequest web_request = info_->ToWebURLRequest(frame_);
90 return web_request.httpHeaderField(WebString::fromUTF8(field)); 90 return web_request.httpHeaderField(WebString::fromUTF8(field));
91 } 91 }
92 92
93 bool SetBooleanProperty(PP_URLRequestProperty prop, bool b) {
94 info_->SetBooleanProperty(prop, b);
95 }
96 bool SetStringProperty(PP_URLRequestProperty prop, const std::string& s) {
97 info_->SetStringProperty(prop, s);
98 }
99
93 scoped_refptr<PPB_URLRequestInfo_Impl> info_; 100 scoped_refptr<PPB_URLRequestInfo_Impl> info_;
94 101
95 static TestWebFrameClient web_frame_client_; 102 static TestWebFrameClient web_frame_client_;
96 static WebView* web_view_; 103 static WebView* web_view_;
97 static WebFrame* frame_; 104 static WebFrame* frame_;
98 }; 105 };
99 106
100 TestWebFrameClient URLRequestInfoTest::web_frame_client_; 107 TestWebFrameClient URLRequestInfoTest::web_frame_client_;
101 WebView* URLRequestInfoTest::web_view_; 108 WebView* URLRequestInfoTest::web_view_;
102 WebFrame* URLRequestInfoTest::frame_; 109 WebFrame* URLRequestInfoTest::frame_;
103 110
104 TEST_F(URLRequestInfoTest, GetInterface) { 111 TEST_F(URLRequestInfoTest, GetInterface) {
105 const PPB_URLRequestInfo* interface = 112 const PPB_URLRequestInfo* interface =
106 ::ppapi::thunk::GetPPB_URLRequestInfo_Thunk(); 113 ::ppapi::thunk::GetPPB_URLRequestInfo_Thunk();
107 ASSERT_TRUE(interface); 114 ASSERT_TRUE(interface);
108 ASSERT_TRUE(interface->Create); 115 ASSERT_TRUE(interface->Create);
109 ASSERT_TRUE(interface->IsURLRequestInfo); 116 ASSERT_TRUE(interface->IsURLRequestInfo);
110 ASSERT_TRUE(interface->SetProperty); 117 ASSERT_TRUE(interface->SetProperty);
111 ASSERT_TRUE(interface->AppendDataToBody); 118 ASSERT_TRUE(interface->AppendDataToBody);
112 ASSERT_TRUE(interface->AppendFileToBody); 119 ASSERT_TRUE(interface->AppendFileToBody);
113 ASSERT_TRUE(interface->Create); 120 ASSERT_TRUE(interface->Create);
114 ASSERT_TRUE(interface->Create); 121 ASSERT_TRUE(interface->Create);
115 } 122 }
116 123
117 TEST_F(URLRequestInfoTest, AsURLRequestInfo) { 124 TEST_F(URLRequestInfoTest, AsURLRequestInfo) {
118 ASSERT_EQ(info_, info_->AsPPB_URLRequestInfo_API()); 125 ASSERT_EQ(info_, info_->AsPPB_URLRequestInfo_API());
119 } 126 }
120 127
121 TEST_F(URLRequestInfoTest, StreamToFile) { 128 TEST_F(URLRequestInfoTest, StreamToFile) {
122 info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com"); 129 SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com");
123 130
124 ASSERT_FALSE(GetDownloadToFile()); 131 ASSERT_FALSE(GetDownloadToFile());
125 132
126 ASSERT_TRUE(info_->SetBooleanProperty( 133 ASSERT_TRUE(SetBooleanProperty(
127 PP_URLREQUESTPROPERTY_STREAMTOFILE, true)); 134 PP_URLREQUESTPROPERTY_STREAMTOFILE, true));
128 ASSERT_TRUE(GetDownloadToFile()); 135 ASSERT_TRUE(GetDownloadToFile());
129 136
130 ASSERT_TRUE(info_->SetBooleanProperty( 137 ASSERT_TRUE(SetBooleanProperty(
131 PP_URLREQUESTPROPERTY_STREAMTOFILE, false)); 138 PP_URLREQUESTPROPERTY_STREAMTOFILE, false));
132 ASSERT_FALSE(GetDownloadToFile()); 139 ASSERT_FALSE(GetDownloadToFile());
133 } 140 }
134 141
135 TEST_F(URLRequestInfoTest, FollowRedirects) { 142 TEST_F(URLRequestInfoTest, FollowRedirects) {
136 ASSERT_TRUE(info_->follow_redirects()); 143 ASSERT_TRUE(info_->follow_redirects());
137 144
138 ASSERT_TRUE(info_->SetBooleanProperty( 145 ASSERT_TRUE(SetBooleanProperty(
139 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false)); 146 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false));
140 ASSERT_FALSE(info_->follow_redirects()); 147 ASSERT_FALSE(info_->follow_redirects());
141 148
142 ASSERT_TRUE(info_->SetBooleanProperty( 149 ASSERT_TRUE(SetBooleanProperty(
143 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true)); 150 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true));
144 ASSERT_TRUE(info_->follow_redirects()); 151 ASSERT_TRUE(info_->follow_redirects());
145 } 152 }
146 153
147 TEST_F(URLRequestInfoTest, RecordDownloadProgress) { 154 TEST_F(URLRequestInfoTest, RecordDownloadProgress) {
148 ASSERT_FALSE(info_->record_download_progress()); 155 ASSERT_FALSE(info_->record_download_progress());
149 156
150 ASSERT_TRUE(info_->SetBooleanProperty( 157 ASSERT_TRUE(SetBooleanProperty(
151 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true)); 158 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true));
152 ASSERT_TRUE(info_->record_download_progress()); 159 ASSERT_TRUE(info_->record_download_progress());
153 160
154 ASSERT_TRUE(info_->SetBooleanProperty( 161 ASSERT_TRUE(SetBooleanProperty(
155 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false)); 162 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false));
156 ASSERT_FALSE(info_->record_download_progress()); 163 ASSERT_FALSE(info_->record_download_progress());
157 } 164 }
158 165
159 TEST_F(URLRequestInfoTest, RecordUploadProgress) { 166 TEST_F(URLRequestInfoTest, RecordUploadProgress) {
160 ASSERT_FALSE(info_->record_upload_progress()); 167 ASSERT_FALSE(info_->record_upload_progress());
161 168
162 ASSERT_TRUE(info_->SetBooleanProperty( 169 ASSERT_TRUE(SetBooleanProperty(
163 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true)); 170 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true));
164 ASSERT_TRUE(info_->record_upload_progress()); 171 ASSERT_TRUE(info_->record_upload_progress());
165 172
166 ASSERT_TRUE(info_->SetBooleanProperty( 173 ASSERT_TRUE(SetBooleanProperty(
167 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false)); 174 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false));
168 ASSERT_FALSE(info_->record_upload_progress()); 175 ASSERT_FALSE(info_->record_upload_progress());
169 } 176 }
170 177
171 TEST_F(URLRequestInfoTest, AllowCrossOriginRequests) { 178 TEST_F(URLRequestInfoTest, AllowCrossOriginRequests) {
172 ASSERT_FALSE(info_->allow_cross_origin_requests()); 179 ASSERT_FALSE(info_->allow_cross_origin_requests());
173 180
174 ASSERT_TRUE(info_->SetBooleanProperty( 181 ASSERT_TRUE(SetBooleanProperty(
175 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, true)); 182 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, true));
176 ASSERT_TRUE(info_->allow_cross_origin_requests()); 183 ASSERT_TRUE(info_->allow_cross_origin_requests());
177 184
178 ASSERT_TRUE(info_->SetBooleanProperty( 185 ASSERT_TRUE(SetBooleanProperty(
179 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, false)); 186 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, false));
180 ASSERT_FALSE(info_->allow_cross_origin_requests()); 187 ASSERT_FALSE(info_->allow_cross_origin_requests());
181 } 188 }
182 189
183 TEST_F(URLRequestInfoTest, AllowCredentials) { 190 TEST_F(URLRequestInfoTest, AllowCredentials) {
184 ASSERT_FALSE(info_->allow_credentials()); 191 ASSERT_FALSE(info_->allow_credentials());
185 192
186 ASSERT_TRUE(info_->SetBooleanProperty( 193 ASSERT_TRUE(SetBooleanProperty(
187 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, true)); 194 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, true));
188 ASSERT_TRUE(info_->allow_credentials()); 195 ASSERT_TRUE(info_->allow_credentials());
189 196
190 ASSERT_TRUE(info_->SetBooleanProperty( 197 ASSERT_TRUE(SetBooleanProperty(
191 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, false)); 198 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, false));
192 ASSERT_FALSE(info_->allow_credentials()); 199 ASSERT_FALSE(info_->allow_credentials());
193 } 200 }
194 201
195 TEST_F(URLRequestInfoTest, SetURL) { 202 TEST_F(URLRequestInfoTest, SetURL) {
196 // Test default URL is "about:blank". 203 // Test default URL is "about:blank".
197 ASSERT_TRUE(IsExpected(GetURL(), "about:blank")); 204 ASSERT_TRUE(IsExpected(GetURL(), "about:blank"));
198 205
199 const char* url = "http://www.google.com/"; 206 const char* url = "http://www.google.com/";
200 ASSERT_TRUE(info_->SetStringProperty( 207 ASSERT_TRUE(SetStringProperty(
201 PP_URLREQUESTPROPERTY_URL, url)); 208 PP_URLREQUESTPROPERTY_URL, url));
202 ASSERT_TRUE(IsExpected(GetURL(), url)); 209 ASSERT_TRUE(IsExpected(GetURL(), url));
203 } 210 }
204 211
205 TEST_F(URLRequestInfoTest, JavascriptURL) { 212 TEST_F(URLRequestInfoTest, JavascriptURL) {
206 const char* url = "javascript:foo = bar"; 213 const char* url = "javascript:foo = bar";
207 ASSERT_FALSE(info_->RequiresUniversalAccess()); 214 ASSERT_FALSE(info_->RequiresUniversalAccess());
208 info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, url); 215 SetStringProperty(PP_URLREQUESTPROPERTY_URL, url);
209 ASSERT_TRUE(info_->RequiresUniversalAccess()); 216 ASSERT_TRUE(info_->RequiresUniversalAccess());
210 } 217 }
211 218
212 TEST_F(URLRequestInfoTest, SetMethod) { 219 TEST_F(URLRequestInfoTest, SetMethod) {
213 // Test default method is "GET". 220 // Test default method is "GET".
214 ASSERT_TRUE(IsExpected(GetMethod(), "GET")); 221 ASSERT_TRUE(IsExpected(GetMethod(), "GET"));
215 ASSERT_TRUE(info_->SetStringProperty( 222 ASSERT_TRUE(SetStringProperty(
216 PP_URLREQUESTPROPERTY_METHOD, "POST")); 223 PP_URLREQUESTPROPERTY_METHOD, "POST"));
217 ASSERT_TRUE(IsExpected(GetMethod(), "POST")); 224 ASSERT_TRUE(IsExpected(GetMethod(), "POST"));
218 225
219 // Test that method names are converted to upper case. 226 // Test that method names are converted to upper case.
220 ASSERT_TRUE(info_->SetStringProperty( 227 ASSERT_TRUE(SetStringProperty(
221 PP_URLREQUESTPROPERTY_METHOD, "get")); 228 PP_URLREQUESTPROPERTY_METHOD, "get"));
222 ASSERT_TRUE(IsExpected(GetMethod(), "GET")); 229 ASSERT_TRUE(IsExpected(GetMethod(), "GET"));
223 ASSERT_TRUE(info_->SetStringProperty( 230 ASSERT_TRUE(SetStringProperty(
224 PP_URLREQUESTPROPERTY_METHOD, "post")); 231 PP_URLREQUESTPROPERTY_METHOD, "post"));
225 ASSERT_TRUE(IsExpected(GetMethod(), "POST")); 232 ASSERT_TRUE(IsExpected(GetMethod(), "POST"));
226 } 233 }
227 234
228 TEST_F(URLRequestInfoTest, SetInvalidMethod) { 235 TEST_F(URLRequestInfoTest, SetInvalidMethod) {
229 ASSERT_FALSE(info_->SetStringProperty( 236 ASSERT_FALSE(SetStringProperty(
230 PP_URLREQUESTPROPERTY_METHOD, "CONNECT")); 237 PP_URLREQUESTPROPERTY_METHOD, "CONNECT"));
231 ASSERT_FALSE(info_->SetStringProperty( 238 ASSERT_FALSE(SetStringProperty(
232 PP_URLREQUESTPROPERTY_METHOD, "connect")); 239 PP_URLREQUESTPROPERTY_METHOD, "connect"));
233 ASSERT_FALSE(info_->SetStringProperty( 240 ASSERT_FALSE(SetStringProperty(
234 PP_URLREQUESTPROPERTY_METHOD, "TRACE")); 241 PP_URLREQUESTPROPERTY_METHOD, "TRACE"));
235 ASSERT_FALSE(info_->SetStringProperty( 242 ASSERT_FALSE(SetStringProperty(
236 PP_URLREQUESTPROPERTY_METHOD, "trace")); 243 PP_URLREQUESTPROPERTY_METHOD, "trace"));
237 ASSERT_FALSE(info_->SetStringProperty( 244 ASSERT_FALSE(SetStringProperty(
238 PP_URLREQUESTPROPERTY_METHOD, "TRACK")); 245 PP_URLREQUESTPROPERTY_METHOD, "TRACK"));
239 ASSERT_FALSE(info_->SetStringProperty( 246 ASSERT_FALSE(SetStringProperty(
240 PP_URLREQUESTPROPERTY_METHOD, "track")); 247 PP_URLREQUESTPROPERTY_METHOD, "track"));
241 248
242 ASSERT_FALSE(info_->SetStringProperty( 249 ASSERT_FALSE(SetStringProperty(
243 PP_URLREQUESTPROPERTY_METHOD, "POST\x0d\x0ax-csrf-token:\x20test1234")); 250 PP_URLREQUESTPROPERTY_METHOD, "POST\x0d\x0ax-csrf-token:\x20test1234"));
244 } 251 }
245 252
246 TEST_F(URLRequestInfoTest, SetValidHeaders) { 253 TEST_F(URLRequestInfoTest, SetValidHeaders) {
247 // Test default header field. 254 // Test default header field.
248 ASSERT_TRUE(IsExpected( 255 ASSERT_TRUE(IsExpected(
249 GetHeaderValue("foo"), "")); 256 GetHeaderValue("foo"), ""));
250 // Test that we can set a header field. 257 // Test that we can set a header field.
251 ASSERT_TRUE(info_->SetStringProperty( 258 ASSERT_TRUE(SetStringProperty(
252 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar")); 259 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar"));
253 ASSERT_TRUE(IsExpected( 260 ASSERT_TRUE(IsExpected(
254 GetHeaderValue("foo"), "bar")); 261 GetHeaderValue("foo"), "bar"));
255 // Test that we can set multiple header fields using \n delimiter. 262 // Test that we can set multiple header fields using \n delimiter.
256 ASSERT_TRUE(info_->SetStringProperty( 263 ASSERT_TRUE(SetStringProperty(
257 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz")); 264 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz"));
258 ASSERT_TRUE(IsExpected( 265 ASSERT_TRUE(IsExpected(
259 GetHeaderValue("foo"), "bar")); 266 GetHeaderValue("foo"), "bar"));
260 ASSERT_TRUE(IsExpected( 267 ASSERT_TRUE(IsExpected(
261 GetHeaderValue("bar"), "baz")); 268 GetHeaderValue("bar"), "baz"));
262 } 269 }
263 270
264 TEST_F(URLRequestInfoTest, SetInvalidHeaders) { 271 TEST_F(URLRequestInfoTest, SetInvalidHeaders) {
265 const char* const kForbiddenHeaderFields[] = { 272 const char* const kForbiddenHeaderFields[] = {
266 "accept-charset", 273 "accept-charset",
(...skipping 17 matching lines...) Expand all
284 "via", 291 "via",
285 292
286 "proxy-foo", // Test for any header starting with proxy- or sec-. 293 "proxy-foo", // Test for any header starting with proxy- or sec-.
287 "sec-foo", 294 "sec-foo",
288 }; 295 };
289 296
290 // Test that no forbidden header fields can be set. 297 // Test that no forbidden header fields can be set.
291 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) { 298 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) {
292 std::string headers(kForbiddenHeaderFields[i]); 299 std::string headers(kForbiddenHeaderFields[i]);
293 headers.append(": foo"); 300 headers.append(": foo");
294 ASSERT_FALSE(info_->SetStringProperty( 301 ASSERT_FALSE(SetStringProperty(
295 PP_URLREQUESTPROPERTY_HEADERS, headers.c_str())); 302 PP_URLREQUESTPROPERTY_HEADERS, headers.c_str()));
296 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i]))); 303 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i])));
297 } 304 }
298 305
299 // Test that forbidden header can't be set in various ways. 306 // Test that forbidden header can't be set in various ways.
300 ASSERT_FALSE(info_->SetStringProperty( 307 ASSERT_FALSE(SetStringProperty(
301 PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo")); 308 PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo"));
302 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); 309 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie")));
303 310
304 // Test that forbidden header can't be set with an allowed one. 311 // Test that forbidden header can't be set with an allowed one.
305 ASSERT_FALSE(info_->SetStringProperty( 312 ASSERT_FALSE(SetStringProperty(
306 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo")); 313 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo"));
307 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); 314 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie")));
308 } 315 }
309 316
310 // TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody. 317 // TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody.
311 318
312 } // namespace ppapi 319 } // namespace ppapi
313 } // namespace webkit 320 } // namespace webkit
314 321
OLDNEW
« webkit/plugins/ppapi/ppb_file_ref_impl.h ('K') | « webkit/plugins/ppapi/resource_creation_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698