| OLD | NEW |
| 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/shared_impl/url_request_info_impl.h" |
| 5 #include "ppapi/thunk/thunk.h" | 6 #include "ppapi/thunk/thunk.h" |
| 6 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | 7 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| 7 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" | 8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" |
| 8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" | 9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" |
| 9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
| 10 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" | 11 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
| 11 #include "webkit/plugins/ppapi/ppb_url_request_info_impl.h" | 12 #include "webkit/plugins/ppapi/ppb_url_request_info_impl.h" |
| 12 #include "webkit/plugins/ppapi/ppapi_unittest.h" | 13 #include "webkit/plugins/ppapi/ppapi_unittest.h" |
| 13 | 14 |
| 14 using WebKit::WebCString; | 15 using WebKit::WebCString; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 45 | 46 |
| 46 class URLRequestInfoTest : public PpapiUnittest { | 47 class URLRequestInfoTest : public PpapiUnittest { |
| 47 public: | 48 public: |
| 48 URLRequestInfoTest() { | 49 URLRequestInfoTest() { |
| 49 } | 50 } |
| 50 | 51 |
| 51 virtual void SetUp() { | 52 virtual void SetUp() { |
| 52 PpapiUnittest::SetUp(); | 53 PpapiUnittest::SetUp(); |
| 53 | 54 |
| 54 // Must be after our base class's SetUp for the instance to be valid. | 55 // Must be after our base class's SetUp for the instance to be valid. |
| 55 info_ = new PPB_URLRequestInfo_Impl(instance()->pp_instance()); | 56 info_ = new PPB_URLRequestInfo_Impl(instance()->pp_instance(), |
| 57 ::ppapi::PPB_URLRequestInfo_Data()); |
| 56 } | 58 } |
| 57 | 59 |
| 58 static void SetUpTestCase() { | 60 static void SetUpTestCase() { |
| 59 web_view_ = WebView::create(NULL); | 61 web_view_ = WebView::create(NULL); |
| 60 web_view_->initializeMainFrame(&web_frame_client_); | 62 web_view_->initializeMainFrame(&web_frame_client_); |
| 61 WebURL web_url(GURL("")); | 63 WebURL web_url(GURL("")); |
| 62 WebURLRequest url_request; | 64 WebURLRequest url_request; |
| 63 url_request.initialize(); | 65 url_request.initialize(); |
| 64 url_request.setURL(web_url); | 66 url_request.setURL(web_url); |
| 65 frame_ = web_view_->mainFrame(); | 67 frame_ = web_view_->mainFrame(); |
| 66 frame_->loadRequest(url_request); | 68 frame_->loadRequest(url_request); |
| 67 } | 69 } |
| 68 | 70 |
| 69 static void TearDownTestCase() { | 71 static void TearDownTestCase() { |
| 70 web_view_->close(); | 72 web_view_->close(); |
| 71 } | 73 } |
| 72 | 74 |
| 73 bool GetDownloadToFile() { | 75 bool GetDownloadToFile() { |
| 74 WebURLRequest web_request = info_->ToWebURLRequest(frame_); | 76 WebURLRequest web_request; |
| 77 if (!info_->ToWebURLRequest(frame_, &web_request)) |
| 78 return false; |
| 75 return web_request.downloadToFile(); | 79 return web_request.downloadToFile(); |
| 76 } | 80 } |
| 77 | 81 |
| 78 WebCString GetURL() { | 82 WebCString GetURL() { |
| 79 WebURLRequest web_request = info_->ToWebURLRequest(frame_); | 83 WebURLRequest web_request; |
| 84 if (!info_->ToWebURLRequest(frame_, &web_request)) |
| 85 return WebCString(); |
| 80 return web_request.url().spec(); | 86 return web_request.url().spec(); |
| 81 } | 87 } |
| 82 | 88 |
| 83 WebString GetMethod() { | 89 WebString GetMethod() { |
| 84 WebURLRequest web_request = info_->ToWebURLRequest(frame_); | 90 WebURLRequest web_request; |
| 91 if (!info_->ToWebURLRequest(frame_, &web_request)) |
| 92 return WebString(); |
| 85 return web_request.httpMethod(); | 93 return web_request.httpMethod(); |
| 86 } | 94 } |
| 87 | 95 |
| 88 WebString GetHeaderValue(const char* field) { | 96 WebString GetHeaderValue(const char* field) { |
| 89 WebURLRequest web_request = info_->ToWebURLRequest(frame_); | 97 WebURLRequest web_request; |
| 98 if (!info_->ToWebURLRequest(frame_, &web_request)) |
| 99 return WebString(); |
| 90 return web_request.httpHeaderField(WebString::fromUTF8(field)); | 100 return web_request.httpHeaderField(WebString::fromUTF8(field)); |
| 91 } | 101 } |
| 92 | 102 |
| 103 bool SetBooleanProperty(PP_URLRequestProperty prop, bool b) { |
| 104 return info_->SetBooleanProperty(prop, b); |
| 105 } |
| 106 bool SetStringProperty(PP_URLRequestProperty prop, const std::string& s) { |
| 107 return info_->SetStringProperty(prop, s); |
| 108 } |
| 109 |
| 93 scoped_refptr<PPB_URLRequestInfo_Impl> info_; | 110 scoped_refptr<PPB_URLRequestInfo_Impl> info_; |
| 94 | 111 |
| 95 static TestWebFrameClient web_frame_client_; | 112 static TestWebFrameClient web_frame_client_; |
| 96 static WebView* web_view_; | 113 static WebView* web_view_; |
| 97 static WebFrame* frame_; | 114 static WebFrame* frame_; |
| 98 }; | 115 }; |
| 99 | 116 |
| 100 TestWebFrameClient URLRequestInfoTest::web_frame_client_; | 117 TestWebFrameClient URLRequestInfoTest::web_frame_client_; |
| 101 WebView* URLRequestInfoTest::web_view_; | 118 WebView* URLRequestInfoTest::web_view_; |
| 102 WebFrame* URLRequestInfoTest::frame_; | 119 WebFrame* URLRequestInfoTest::frame_; |
| 103 | 120 |
| 104 TEST_F(URLRequestInfoTest, GetInterface) { | 121 TEST_F(URLRequestInfoTest, GetInterface) { |
| 105 const PPB_URLRequestInfo* interface = | 122 const PPB_URLRequestInfo* interface = |
| 106 ::ppapi::thunk::GetPPB_URLRequestInfo_Thunk(); | 123 ::ppapi::thunk::GetPPB_URLRequestInfo_Thunk(); |
| 107 ASSERT_TRUE(interface); | 124 EXPECT_TRUE(interface); |
| 108 ASSERT_TRUE(interface->Create); | 125 EXPECT_TRUE(interface->Create); |
| 109 ASSERT_TRUE(interface->IsURLRequestInfo); | 126 EXPECT_TRUE(interface->IsURLRequestInfo); |
| 110 ASSERT_TRUE(interface->SetProperty); | 127 EXPECT_TRUE(interface->SetProperty); |
| 111 ASSERT_TRUE(interface->AppendDataToBody); | 128 EXPECT_TRUE(interface->AppendDataToBody); |
| 112 ASSERT_TRUE(interface->AppendFileToBody); | 129 EXPECT_TRUE(interface->AppendFileToBody); |
| 113 ASSERT_TRUE(interface->Create); | 130 EXPECT_TRUE(interface->Create); |
| 114 ASSERT_TRUE(interface->Create); | 131 EXPECT_TRUE(interface->Create); |
| 115 } | 132 } |
| 116 | 133 |
| 117 TEST_F(URLRequestInfoTest, AsURLRequestInfo) { | 134 TEST_F(URLRequestInfoTest, AsURLRequestInfo) { |
| 118 ASSERT_EQ(info_, info_->AsPPB_URLRequestInfo_API()); | 135 EXPECT_EQ(info_, info_->AsPPB_URLRequestInfo_API()); |
| 119 } | 136 } |
| 120 | 137 |
| 121 TEST_F(URLRequestInfoTest, StreamToFile) { | 138 TEST_F(URLRequestInfoTest, StreamToFile) { |
| 122 info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com"); | 139 SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com"); |
| 123 | 140 |
| 124 ASSERT_FALSE(GetDownloadToFile()); | 141 EXPECT_FALSE(GetDownloadToFile()); |
| 125 | 142 |
| 126 ASSERT_TRUE(info_->SetBooleanProperty( | 143 EXPECT_TRUE(SetBooleanProperty( |
| 127 PP_URLREQUESTPROPERTY_STREAMTOFILE, true)); | 144 PP_URLREQUESTPROPERTY_STREAMTOFILE, true)); |
| 128 ASSERT_TRUE(GetDownloadToFile()); | 145 EXPECT_TRUE(GetDownloadToFile()); |
| 129 | 146 |
| 130 ASSERT_TRUE(info_->SetBooleanProperty( | 147 EXPECT_TRUE(SetBooleanProperty( |
| 131 PP_URLREQUESTPROPERTY_STREAMTOFILE, false)); | 148 PP_URLREQUESTPROPERTY_STREAMTOFILE, false)); |
| 132 ASSERT_FALSE(GetDownloadToFile()); | 149 EXPECT_FALSE(GetDownloadToFile()); |
| 133 } | 150 } |
| 134 | 151 |
| 135 TEST_F(URLRequestInfoTest, FollowRedirects) { | 152 TEST_F(URLRequestInfoTest, FollowRedirects) { |
| 136 ASSERT_TRUE(info_->follow_redirects()); | 153 EXPECT_TRUE(info_->GetData().follow_redirects); |
| 137 | 154 |
| 138 ASSERT_TRUE(info_->SetBooleanProperty( | 155 EXPECT_TRUE(SetBooleanProperty( |
| 139 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false)); | 156 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false)); |
| 140 ASSERT_FALSE(info_->follow_redirects()); | 157 EXPECT_FALSE(info_->GetData().follow_redirects); |
| 141 | 158 |
| 142 ASSERT_TRUE(info_->SetBooleanProperty( | 159 EXPECT_TRUE(SetBooleanProperty( |
| 143 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true)); | 160 PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true)); |
| 144 ASSERT_TRUE(info_->follow_redirects()); | 161 EXPECT_TRUE(info_->GetData().follow_redirects); |
| 145 } | 162 } |
| 146 | 163 |
| 147 TEST_F(URLRequestInfoTest, RecordDownloadProgress) { | 164 TEST_F(URLRequestInfoTest, RecordDownloadProgress) { |
| 148 ASSERT_FALSE(info_->record_download_progress()); | 165 EXPECT_FALSE(info_->GetData().record_download_progress); |
| 149 | 166 |
| 150 ASSERT_TRUE(info_->SetBooleanProperty( | 167 EXPECT_TRUE(SetBooleanProperty( |
| 151 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true)); | 168 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true)); |
| 152 ASSERT_TRUE(info_->record_download_progress()); | 169 EXPECT_TRUE(info_->GetData().record_download_progress); |
| 153 | 170 |
| 154 ASSERT_TRUE(info_->SetBooleanProperty( | 171 EXPECT_TRUE(SetBooleanProperty( |
| 155 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false)); | 172 PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false)); |
| 156 ASSERT_FALSE(info_->record_download_progress()); | 173 EXPECT_FALSE(info_->GetData().record_download_progress); |
| 157 } | 174 } |
| 158 | 175 |
| 159 TEST_F(URLRequestInfoTest, RecordUploadProgress) { | 176 TEST_F(URLRequestInfoTest, RecordUploadProgress) { |
| 160 ASSERT_FALSE(info_->record_upload_progress()); | 177 EXPECT_FALSE(info_->GetData().record_upload_progress); |
| 161 | 178 |
| 162 ASSERT_TRUE(info_->SetBooleanProperty( | 179 EXPECT_TRUE(SetBooleanProperty( |
| 163 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true)); | 180 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true)); |
| 164 ASSERT_TRUE(info_->record_upload_progress()); | 181 EXPECT_TRUE(info_->GetData().record_upload_progress); |
| 165 | 182 |
| 166 ASSERT_TRUE(info_->SetBooleanProperty( | 183 EXPECT_TRUE(SetBooleanProperty( |
| 167 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false)); | 184 PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false)); |
| 168 ASSERT_FALSE(info_->record_upload_progress()); | 185 EXPECT_FALSE(info_->GetData().record_upload_progress); |
| 169 } | 186 } |
| 170 | 187 |
| 171 TEST_F(URLRequestInfoTest, AllowCrossOriginRequests) { | 188 TEST_F(URLRequestInfoTest, AllowCrossOriginRequests) { |
| 172 ASSERT_FALSE(info_->allow_cross_origin_requests()); | 189 EXPECT_FALSE(info_->GetData().allow_cross_origin_requests); |
| 173 | 190 |
| 174 ASSERT_TRUE(info_->SetBooleanProperty( | 191 EXPECT_TRUE(SetBooleanProperty( |
| 175 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, true)); | 192 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, true)); |
| 176 ASSERT_TRUE(info_->allow_cross_origin_requests()); | 193 EXPECT_TRUE(info_->GetData().allow_cross_origin_requests); |
| 177 | 194 |
| 178 ASSERT_TRUE(info_->SetBooleanProperty( | 195 EXPECT_TRUE(SetBooleanProperty( |
| 179 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, false)); | 196 PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, false)); |
| 180 ASSERT_FALSE(info_->allow_cross_origin_requests()); | 197 EXPECT_FALSE(info_->GetData().allow_cross_origin_requests); |
| 181 } | 198 } |
| 182 | 199 |
| 183 TEST_F(URLRequestInfoTest, AllowCredentials) { | 200 TEST_F(URLRequestInfoTest, AllowCredentials) { |
| 184 ASSERT_FALSE(info_->allow_credentials()); | 201 EXPECT_FALSE(info_->GetData().allow_credentials); |
| 185 | 202 |
| 186 ASSERT_TRUE(info_->SetBooleanProperty( | 203 EXPECT_TRUE(SetBooleanProperty( |
| 187 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, true)); | 204 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, true)); |
| 188 ASSERT_TRUE(info_->allow_credentials()); | 205 EXPECT_TRUE(info_->GetData().allow_credentials); |
| 189 | 206 |
| 190 ASSERT_TRUE(info_->SetBooleanProperty( | 207 EXPECT_TRUE(SetBooleanProperty( |
| 191 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, false)); | 208 PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, false)); |
| 192 ASSERT_FALSE(info_->allow_credentials()); | 209 EXPECT_FALSE(info_->GetData().allow_credentials); |
| 193 } | 210 } |
| 194 | 211 |
| 195 TEST_F(URLRequestInfoTest, SetURL) { | 212 TEST_F(URLRequestInfoTest, SetURL) { |
| 196 // Test default URL is "about:blank". | 213 // Test default URL is "about:blank". |
| 197 ASSERT_TRUE(IsExpected(GetURL(), "about:blank")); | 214 EXPECT_TRUE(IsExpected(GetURL(), "about:blank")); |
| 198 | 215 |
| 199 const char* url = "http://www.google.com/"; | 216 const char* url = "http://www.google.com/"; |
| 200 ASSERT_TRUE(info_->SetStringProperty( | 217 EXPECT_TRUE(SetStringProperty( |
| 201 PP_URLREQUESTPROPERTY_URL, url)); | 218 PP_URLREQUESTPROPERTY_URL, url)); |
| 202 ASSERT_TRUE(IsExpected(GetURL(), url)); | 219 EXPECT_TRUE(IsExpected(GetURL(), url)); |
| 203 } | 220 } |
| 204 | 221 |
| 205 TEST_F(URLRequestInfoTest, JavascriptURL) { | 222 TEST_F(URLRequestInfoTest, JavascriptURL) { |
| 206 const char* url = "javascript:foo = bar"; | 223 const char* url = "javascript:foo = bar"; |
| 207 ASSERT_FALSE(info_->RequiresUniversalAccess()); | 224 EXPECT_FALSE(info_->RequiresUniversalAccess()); |
| 208 info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, url); | 225 SetStringProperty(PP_URLREQUESTPROPERTY_URL, url); |
| 209 ASSERT_TRUE(info_->RequiresUniversalAccess()); | 226 EXPECT_TRUE(info_->RequiresUniversalAccess()); |
| 210 } | 227 } |
| 211 | 228 |
| 212 TEST_F(URLRequestInfoTest, SetMethod) { | 229 TEST_F(URLRequestInfoTest, SetMethod) { |
| 213 // Test default method is "GET". | 230 // Test default method is "GET". |
| 214 ASSERT_TRUE(IsExpected(GetMethod(), "GET")); | 231 EXPECT_TRUE(IsExpected(GetMethod(), "GET")); |
| 215 ASSERT_TRUE(info_->SetStringProperty( | 232 EXPECT_TRUE(SetStringProperty( |
| 216 PP_URLREQUESTPROPERTY_METHOD, "POST")); | 233 PP_URLREQUESTPROPERTY_METHOD, "POST")); |
| 217 ASSERT_TRUE(IsExpected(GetMethod(), "POST")); | 234 EXPECT_TRUE(IsExpected(GetMethod(), "POST")); |
| 218 | 235 |
| 219 // Test that method names are converted to upper case. | 236 // Test that method names are converted to upper case. |
| 220 ASSERT_TRUE(info_->SetStringProperty( | 237 EXPECT_TRUE(SetStringProperty( |
| 221 PP_URLREQUESTPROPERTY_METHOD, "get")); | 238 PP_URLREQUESTPROPERTY_METHOD, "get")); |
| 222 ASSERT_TRUE(IsExpected(GetMethod(), "GET")); | 239 EXPECT_TRUE(IsExpected(GetMethod(), "GET")); |
| 223 ASSERT_TRUE(info_->SetStringProperty( | 240 EXPECT_TRUE(SetStringProperty( |
| 224 PP_URLREQUESTPROPERTY_METHOD, "post")); | 241 PP_URLREQUESTPROPERTY_METHOD, "post")); |
| 225 ASSERT_TRUE(IsExpected(GetMethod(), "POST")); | 242 EXPECT_TRUE(IsExpected(GetMethod(), "POST")); |
| 226 } | 243 } |
| 227 | 244 |
| 228 TEST_F(URLRequestInfoTest, SetInvalidMethod) { | 245 TEST_F(URLRequestInfoTest, SetInvalidMethod) { |
| 229 ASSERT_FALSE(info_->SetStringProperty( | 246 EXPECT_FALSE(SetStringProperty( |
| 230 PP_URLREQUESTPROPERTY_METHOD, "CONNECT")); | 247 PP_URLREQUESTPROPERTY_METHOD, "CONNECT")); |
| 231 ASSERT_FALSE(info_->SetStringProperty( | 248 EXPECT_FALSE(SetStringProperty( |
| 232 PP_URLREQUESTPROPERTY_METHOD, "connect")); | 249 PP_URLREQUESTPROPERTY_METHOD, "connect")); |
| 233 ASSERT_FALSE(info_->SetStringProperty( | 250 EXPECT_FALSE(SetStringProperty( |
| 234 PP_URLREQUESTPROPERTY_METHOD, "TRACE")); | 251 PP_URLREQUESTPROPERTY_METHOD, "TRACE")); |
| 235 ASSERT_FALSE(info_->SetStringProperty( | 252 EXPECT_FALSE(SetStringProperty( |
| 236 PP_URLREQUESTPROPERTY_METHOD, "trace")); | 253 PP_URLREQUESTPROPERTY_METHOD, "trace")); |
| 237 ASSERT_FALSE(info_->SetStringProperty( | 254 EXPECT_FALSE(SetStringProperty( |
| 238 PP_URLREQUESTPROPERTY_METHOD, "TRACK")); | 255 PP_URLREQUESTPROPERTY_METHOD, "TRACK")); |
| 239 ASSERT_FALSE(info_->SetStringProperty( | 256 EXPECT_FALSE(SetStringProperty( |
| 240 PP_URLREQUESTPROPERTY_METHOD, "track")); | 257 PP_URLREQUESTPROPERTY_METHOD, "track")); |
| 241 | 258 |
| 242 ASSERT_FALSE(info_->SetStringProperty( | 259 EXPECT_FALSE(SetStringProperty( |
| 243 PP_URLREQUESTPROPERTY_METHOD, "POST\x0d\x0ax-csrf-token:\x20test1234")); | 260 PP_URLREQUESTPROPERTY_METHOD, "POST\x0d\x0ax-csrf-token:\x20test1234")); |
| 244 } | 261 } |
| 245 | 262 |
| 246 TEST_F(URLRequestInfoTest, SetValidHeaders) { | 263 TEST_F(URLRequestInfoTest, SetValidHeaders) { |
| 247 // Test default header field. | 264 // Test default header field. |
| 248 ASSERT_TRUE(IsExpected( | 265 EXPECT_TRUE(IsExpected( |
| 249 GetHeaderValue("foo"), "")); | 266 GetHeaderValue("foo"), "")); |
| 250 // Test that we can set a header field. | 267 // Test that we can set a header field. |
| 251 ASSERT_TRUE(info_->SetStringProperty( | 268 EXPECT_TRUE(SetStringProperty( |
| 252 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar")); | 269 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar")); |
| 253 ASSERT_TRUE(IsExpected( | 270 EXPECT_TRUE(IsExpected( |
| 254 GetHeaderValue("foo"), "bar")); | 271 GetHeaderValue("foo"), "bar")); |
| 255 // Test that we can set multiple header fields using \n delimiter. | 272 // Test that we can set multiple header fields using \n delimiter. |
| 256 ASSERT_TRUE(info_->SetStringProperty( | 273 EXPECT_TRUE(SetStringProperty( |
| 257 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz")); | 274 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz")); |
| 258 ASSERT_TRUE(IsExpected( | 275 EXPECT_TRUE(IsExpected( |
| 259 GetHeaderValue("foo"), "bar")); | 276 GetHeaderValue("foo"), "bar")); |
| 260 ASSERT_TRUE(IsExpected( | 277 EXPECT_TRUE(IsExpected( |
| 261 GetHeaderValue("bar"), "baz")); | 278 GetHeaderValue("bar"), "baz")); |
| 262 } | 279 } |
| 263 | 280 |
| 264 TEST_F(URLRequestInfoTest, SetInvalidHeaders) { | 281 TEST_F(URLRequestInfoTest, SetInvalidHeaders) { |
| 265 const char* const kForbiddenHeaderFields[] = { | 282 const char* const kForbiddenHeaderFields[] = { |
| 266 "accept-charset", | 283 "accept-charset", |
| 267 "accept-encoding", | 284 "accept-encoding", |
| 268 "connection", | 285 "connection", |
| 269 "content-length", | 286 "content-length", |
| 270 "cookie", | 287 "cookie", |
| (...skipping 13 matching lines...) Expand all Loading... |
| 284 "via", | 301 "via", |
| 285 | 302 |
| 286 "proxy-foo", // Test for any header starting with proxy- or sec-. | 303 "proxy-foo", // Test for any header starting with proxy- or sec-. |
| 287 "sec-foo", | 304 "sec-foo", |
| 288 }; | 305 }; |
| 289 | 306 |
| 290 // Test that no forbidden header fields can be set. | 307 // Test that no forbidden header fields can be set. |
| 291 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) { | 308 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) { |
| 292 std::string headers(kForbiddenHeaderFields[i]); | 309 std::string headers(kForbiddenHeaderFields[i]); |
| 293 headers.append(": foo"); | 310 headers.append(": foo"); |
| 294 ASSERT_FALSE(info_->SetStringProperty( | 311 SetStringProperty( |
| 295 PP_URLREQUESTPROPERTY_HEADERS, headers.c_str())); | 312 PP_URLREQUESTPROPERTY_HEADERS, headers.c_str()); |
| 296 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i]))); | 313 EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i]))); |
| 297 } | 314 } |
| 298 | 315 |
| 299 // Test that forbidden header can't be set in various ways. | 316 // Test that forbidden header can't be set in various ways. |
| 300 ASSERT_FALSE(info_->SetStringProperty( | 317 SetStringProperty(PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo"); |
| 301 PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo")); | 318 EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
| 302 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); | |
| 303 | 319 |
| 304 // Test that forbidden header can't be set with an allowed one. | 320 // Test that forbidden header can't be set with an allowed one. |
| 305 ASSERT_FALSE(info_->SetStringProperty( | 321 SetStringProperty(PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo"); |
| 306 PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo")); | 322 EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
| 307 ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); | |
| 308 } | 323 } |
| 309 | 324 |
| 310 // TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody. | 325 // TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody. |
| 311 | 326 |
| 312 } // namespace ppapi | 327 } // namespace ppapi |
| 313 } // namespace webkit | 328 } // namespace webkit |
| 314 | 329 |
| OLD | NEW |