Index: webkit/plugins/ppapi/url_request_info_unittest.cc |
diff --git a/webkit/plugins/ppapi/url_request_info_unittest.cc b/webkit/plugins/ppapi/url_request_info_unittest.cc |
index adeffca252199f398584016e0cfb398c68fe4122..dd8d0f7a490f60670d3615919e18737bc099eb36 100644 |
--- a/webkit/plugins/ppapi/url_request_info_unittest.cc |
+++ b/webkit/plugins/ppapi/url_request_info_unittest.cc |
@@ -2,6 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "ppapi/shared_impl/url_request_info_impl.h" |
#include "ppapi/thunk/thunk.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h" |
@@ -52,7 +53,8 @@ class URLRequestInfoTest : public PpapiUnittest { |
PpapiUnittest::SetUp(); |
// Must be after our base class's SetUp for the instance to be valid. |
- info_ = new PPB_URLRequestInfo_Impl(instance()->pp_instance()); |
+ info_ = new PPB_URLRequestInfo_Impl(instance()->pp_instance(), |
+ ::ppapi::PPB_URLRequestInfo_Data()); |
} |
static void SetUpTestCase() { |
@@ -71,25 +73,40 @@ class URLRequestInfoTest : public PpapiUnittest { |
} |
bool GetDownloadToFile() { |
- WebURLRequest web_request = info_->ToWebURLRequest(frame_); |
+ WebURLRequest web_request; |
+ if (!info_->ToWebURLRequest(frame_, &web_request)) |
+ return false; |
return web_request.downloadToFile(); |
} |
WebCString GetURL() { |
- WebURLRequest web_request = info_->ToWebURLRequest(frame_); |
+ WebURLRequest web_request; |
+ if (!info_->ToWebURLRequest(frame_, &web_request)) |
+ return WebCString(); |
return web_request.url().spec(); |
} |
WebString GetMethod() { |
- WebURLRequest web_request = info_->ToWebURLRequest(frame_); |
+ WebURLRequest web_request; |
+ if (!info_->ToWebURLRequest(frame_, &web_request)) |
+ return WebString(); |
return web_request.httpMethod(); |
} |
WebString GetHeaderValue(const char* field) { |
- WebURLRequest web_request = info_->ToWebURLRequest(frame_); |
+ WebURLRequest web_request; |
+ if (!info_->ToWebURLRequest(frame_, &web_request)) |
+ return WebString(); |
return web_request.httpHeaderField(WebString::fromUTF8(field)); |
} |
+ bool SetBooleanProperty(PP_URLRequestProperty prop, bool b) { |
+ return info_->SetBooleanProperty(prop, b); |
+ } |
+ bool SetStringProperty(PP_URLRequestProperty prop, const std::string& s) { |
+ return info_->SetStringProperty(prop, s); |
+ } |
+ |
scoped_refptr<PPB_URLRequestInfo_Impl> info_; |
static TestWebFrameClient web_frame_client_; |
@@ -104,160 +121,160 @@ WebFrame* URLRequestInfoTest::frame_; |
TEST_F(URLRequestInfoTest, GetInterface) { |
const PPB_URLRequestInfo* interface = |
::ppapi::thunk::GetPPB_URLRequestInfo_Thunk(); |
- ASSERT_TRUE(interface); |
- ASSERT_TRUE(interface->Create); |
- ASSERT_TRUE(interface->IsURLRequestInfo); |
- ASSERT_TRUE(interface->SetProperty); |
- ASSERT_TRUE(interface->AppendDataToBody); |
- ASSERT_TRUE(interface->AppendFileToBody); |
- ASSERT_TRUE(interface->Create); |
- ASSERT_TRUE(interface->Create); |
+ EXPECT_TRUE(interface); |
+ EXPECT_TRUE(interface->Create); |
+ EXPECT_TRUE(interface->IsURLRequestInfo); |
+ EXPECT_TRUE(interface->SetProperty); |
+ EXPECT_TRUE(interface->AppendDataToBody); |
+ EXPECT_TRUE(interface->AppendFileToBody); |
+ EXPECT_TRUE(interface->Create); |
+ EXPECT_TRUE(interface->Create); |
} |
TEST_F(URLRequestInfoTest, AsURLRequestInfo) { |
- ASSERT_EQ(info_, info_->AsPPB_URLRequestInfo_API()); |
+ EXPECT_EQ(info_, info_->AsPPB_URLRequestInfo_API()); |
} |
TEST_F(URLRequestInfoTest, StreamToFile) { |
- info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com"); |
+ SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com"); |
- ASSERT_FALSE(GetDownloadToFile()); |
+ EXPECT_FALSE(GetDownloadToFile()); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_STREAMTOFILE, true)); |
- ASSERT_TRUE(GetDownloadToFile()); |
+ EXPECT_TRUE(GetDownloadToFile()); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_STREAMTOFILE, false)); |
- ASSERT_FALSE(GetDownloadToFile()); |
+ EXPECT_FALSE(GetDownloadToFile()); |
} |
TEST_F(URLRequestInfoTest, FollowRedirects) { |
- ASSERT_TRUE(info_->follow_redirects()); |
+ EXPECT_TRUE(info_->GetData().follow_redirects); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false)); |
- ASSERT_FALSE(info_->follow_redirects()); |
+ EXPECT_FALSE(info_->GetData().follow_redirects); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true)); |
- ASSERT_TRUE(info_->follow_redirects()); |
+ EXPECT_TRUE(info_->GetData().follow_redirects); |
} |
TEST_F(URLRequestInfoTest, RecordDownloadProgress) { |
- ASSERT_FALSE(info_->record_download_progress()); |
+ EXPECT_FALSE(info_->GetData().record_download_progress); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true)); |
- ASSERT_TRUE(info_->record_download_progress()); |
+ EXPECT_TRUE(info_->GetData().record_download_progress); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false)); |
- ASSERT_FALSE(info_->record_download_progress()); |
+ EXPECT_FALSE(info_->GetData().record_download_progress); |
} |
TEST_F(URLRequestInfoTest, RecordUploadProgress) { |
- ASSERT_FALSE(info_->record_upload_progress()); |
+ EXPECT_FALSE(info_->GetData().record_upload_progress); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true)); |
- ASSERT_TRUE(info_->record_upload_progress()); |
+ EXPECT_TRUE(info_->GetData().record_upload_progress); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false)); |
- ASSERT_FALSE(info_->record_upload_progress()); |
+ EXPECT_FALSE(info_->GetData().record_upload_progress); |
} |
TEST_F(URLRequestInfoTest, AllowCrossOriginRequests) { |
- ASSERT_FALSE(info_->allow_cross_origin_requests()); |
+ EXPECT_FALSE(info_->GetData().allow_cross_origin_requests); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, true)); |
- ASSERT_TRUE(info_->allow_cross_origin_requests()); |
+ EXPECT_TRUE(info_->GetData().allow_cross_origin_requests); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_ALLOWCROSSORIGINREQUESTS, false)); |
- ASSERT_FALSE(info_->allow_cross_origin_requests()); |
+ EXPECT_FALSE(info_->GetData().allow_cross_origin_requests); |
} |
TEST_F(URLRequestInfoTest, AllowCredentials) { |
- ASSERT_FALSE(info_->allow_credentials()); |
+ EXPECT_FALSE(info_->GetData().allow_credentials); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, true)); |
- ASSERT_TRUE(info_->allow_credentials()); |
+ EXPECT_TRUE(info_->GetData().allow_credentials); |
- ASSERT_TRUE(info_->SetBooleanProperty( |
+ EXPECT_TRUE(SetBooleanProperty( |
PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS, false)); |
- ASSERT_FALSE(info_->allow_credentials()); |
+ EXPECT_FALSE(info_->GetData().allow_credentials); |
} |
TEST_F(URLRequestInfoTest, SetURL) { |
// Test default URL is "about:blank". |
- ASSERT_TRUE(IsExpected(GetURL(), "about:blank")); |
+ EXPECT_TRUE(IsExpected(GetURL(), "about:blank")); |
const char* url = "http://www.google.com/"; |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_URL, url)); |
- ASSERT_TRUE(IsExpected(GetURL(), url)); |
+ EXPECT_TRUE(IsExpected(GetURL(), url)); |
} |
TEST_F(URLRequestInfoTest, JavascriptURL) { |
const char* url = "javascript:foo = bar"; |
- ASSERT_FALSE(info_->RequiresUniversalAccess()); |
- info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, url); |
- ASSERT_TRUE(info_->RequiresUniversalAccess()); |
+ EXPECT_FALSE(info_->RequiresUniversalAccess()); |
+ SetStringProperty(PP_URLREQUESTPROPERTY_URL, url); |
+ EXPECT_TRUE(info_->RequiresUniversalAccess()); |
} |
TEST_F(URLRequestInfoTest, SetMethod) { |
// Test default method is "GET". |
- ASSERT_TRUE(IsExpected(GetMethod(), "GET")); |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(IsExpected(GetMethod(), "GET")); |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "POST")); |
- ASSERT_TRUE(IsExpected(GetMethod(), "POST")); |
+ EXPECT_TRUE(IsExpected(GetMethod(), "POST")); |
// Test that method names are converted to upper case. |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "get")); |
- ASSERT_TRUE(IsExpected(GetMethod(), "GET")); |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(IsExpected(GetMethod(), "GET")); |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "post")); |
- ASSERT_TRUE(IsExpected(GetMethod(), "POST")); |
+ EXPECT_TRUE(IsExpected(GetMethod(), "POST")); |
} |
TEST_F(URLRequestInfoTest, SetInvalidMethod) { |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "CONNECT")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "connect")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "TRACE")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "trace")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "TRACK")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "track")); |
- ASSERT_FALSE(info_->SetStringProperty( |
+ EXPECT_FALSE(SetStringProperty( |
PP_URLREQUESTPROPERTY_METHOD, "POST\x0d\x0ax-csrf-token:\x20test1234")); |
} |
TEST_F(URLRequestInfoTest, SetValidHeaders) { |
// Test default header field. |
- ASSERT_TRUE(IsExpected( |
+ EXPECT_TRUE(IsExpected( |
GetHeaderValue("foo"), "")); |
// Test that we can set a header field. |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_HEADERS, "foo: bar")); |
- ASSERT_TRUE(IsExpected( |
+ EXPECT_TRUE(IsExpected( |
GetHeaderValue("foo"), "bar")); |
// Test that we can set multiple header fields using \n delimiter. |
- ASSERT_TRUE(info_->SetStringProperty( |
+ EXPECT_TRUE(SetStringProperty( |
PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz")); |
- ASSERT_TRUE(IsExpected( |
+ EXPECT_TRUE(IsExpected( |
GetHeaderValue("foo"), "bar")); |
- ASSERT_TRUE(IsExpected( |
+ EXPECT_TRUE(IsExpected( |
GetHeaderValue("bar"), "baz")); |
} |
@@ -291,20 +308,18 @@ TEST_F(URLRequestInfoTest, SetInvalidHeaders) { |
for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) { |
std::string headers(kForbiddenHeaderFields[i]); |
headers.append(": foo"); |
- ASSERT_FALSE(info_->SetStringProperty( |
- PP_URLREQUESTPROPERTY_HEADERS, headers.c_str())); |
- ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i]))); |
+ SetStringProperty( |
+ PP_URLREQUESTPROPERTY_HEADERS, headers.c_str()); |
+ EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue(kForbiddenHeaderFields[i]))); |
} |
// Test that forbidden header can't be set in various ways. |
- ASSERT_FALSE(info_->SetStringProperty( |
- PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo")); |
- ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
+ SetStringProperty(PP_URLREQUESTPROPERTY_HEADERS, "cookie : foo"); |
+ EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
// Test that forbidden header can't be set with an allowed one. |
- ASSERT_FALSE(info_->SetStringProperty( |
- PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo")); |
- ASSERT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
+ SetStringProperty(PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\ncookie: foo"); |
+ EXPECT_TRUE(IsNullOrEmpty(GetHeaderValue("cookie"))); |
} |
// TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody. |