| Index: webkit/plugins/ppapi/url_request_info_unittest.cc
|
| ===================================================================
|
| --- webkit/plugins/ppapi/url_request_info_unittest.cc (revision 69765)
|
| +++ webkit/plugins/ppapi/url_request_info_unittest.cc (working copy)
|
| @@ -1,249 +0,0 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
|
| -#include "third_party/WebKit/WebKit/chromium/public/WebFrameClient.h"
|
| -#include "third_party/WebKit/WebKit/chromium/public/WebURLRequest.h"
|
| -#include "third_party/WebKit/WebKit/chromium/public/WebView.h"
|
| -
|
| -#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
|
| -#include "webkit/plugins/ppapi/ppb_url_request_info_impl.h"
|
| -#include "webkit/plugins/ppapi/ppapi_unittest.h"
|
| -
|
| -using WebKit::WebCString;
|
| -using WebKit::WebFrame;
|
| -using WebKit::WebFrameClient;
|
| -using WebKit::WebString;
|
| -using WebKit::WebView;
|
| -using WebKit::WebURL;
|
| -using WebKit::WebURLRequest;
|
| -
|
| -namespace {
|
| -
|
| -bool IsExpected(const WebCString& web_string, const char* expected) {
|
| - const char* result = web_string.data();
|
| - return strcmp(result, expected) == 0;
|
| -}
|
| -
|
| -bool IsExpected(const WebString& web_string, const char* expected) {
|
| - return IsExpected(web_string.utf8(), expected);
|
| -}
|
| -
|
| -bool IsNullOrEmpty(const WebString& web_string) {
|
| - return web_string.isNull() || web_string.isEmpty();
|
| -}
|
| -
|
| -// The base class destructor is protected, so derive.
|
| -class TestWebFrameClient : public WebFrameClient {
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -namespace webkit {
|
| -namespace ppapi {
|
| -
|
| -class URLRequestInfoTest : public PpapiUnittest {
|
| - public:
|
| - URLRequestInfoTest() : info_(new PPB_URLRequestInfo_Impl(module())) {
|
| - }
|
| -
|
| - static void SetUpTestCase() {
|
| - web_view_ = WebView::create(0, 0);
|
| - web_view_->initializeMainFrame(&web_frame_client_);
|
| - WebURL web_url(GURL(""));
|
| - WebURLRequest url_request;
|
| - url_request.initialize();
|
| - url_request.setURL(web_url);
|
| - frame_ = web_view_->mainFrame();
|
| - frame_->loadRequest(url_request);
|
| - }
|
| -
|
| - static void TearDownTestCase() {
|
| - web_view_->close();
|
| - }
|
| -
|
| - bool GetDownloadToFile() {
|
| - WebURLRequest web_request = info_->ToWebURLRequest(frame_);
|
| - return web_request.downloadToFile();
|
| - }
|
| -
|
| - WebCString GetURL() {
|
| - WebURLRequest web_request = info_->ToWebURLRequest(frame_);
|
| - return web_request.url().spec();
|
| - }
|
| -
|
| - WebString GetMethod() {
|
| - WebURLRequest web_request = info_->ToWebURLRequest(frame_);
|
| - return web_request.httpMethod();
|
| - }
|
| -
|
| - WebString GetHeaderValue(const char* field) {
|
| - WebURLRequest web_request = info_->ToWebURLRequest(frame_);
|
| - return web_request.httpHeaderField(WebString::fromUTF8(field));
|
| - }
|
| -
|
| - scoped_refptr<PPB_URLRequestInfo_Impl> info_;
|
| -
|
| - static TestWebFrameClient web_frame_client_;
|
| - static WebView* web_view_;
|
| - static WebFrame* frame_;
|
| -};
|
| -
|
| -TestWebFrameClient URLRequestInfoTest::web_frame_client_;
|
| -WebView* URLRequestInfoTest::web_view_;
|
| -WebFrame* URLRequestInfoTest::frame_;
|
| -
|
| -TEST_F(URLRequestInfoTest, GetInterface) {
|
| - const PPB_URLRequestInfo* interface = info_->GetInterface();
|
| - 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);
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, AsURLRequestInfo) {
|
| - ASSERT_EQ(info_, info_->AsPPB_URLRequestInfo_Impl());
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, StreamToFile) {
|
| - info_->SetStringProperty(PP_URLREQUESTPROPERTY_URL, "http://www.google.com");
|
| -
|
| - ASSERT_FALSE(GetDownloadToFile());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_STREAMTOFILE, true));
|
| - ASSERT_TRUE(GetDownloadToFile());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_STREAMTOFILE, false));
|
| - ASSERT_FALSE(GetDownloadToFile());
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, FollowRedirects) {
|
| - ASSERT_TRUE(info_->follow_redirects());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, false));
|
| - ASSERT_FALSE(info_->follow_redirects());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_FOLLOWREDIRECTS, true));
|
| - ASSERT_TRUE(info_->follow_redirects());
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, RecordDownloadProgress) {
|
| - ASSERT_FALSE(info_->record_download_progress());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, true));
|
| - ASSERT_TRUE(info_->record_download_progress());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_RECORDDOWNLOADPROGRESS, false));
|
| - ASSERT_FALSE(info_->record_download_progress());
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, RecordUploadProgress) {
|
| - ASSERT_FALSE(info_->record_upload_progress());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, true));
|
| - ASSERT_TRUE(info_->record_upload_progress());
|
| -
|
| - ASSERT_TRUE(info_->SetBooleanProperty(
|
| - PP_URLREQUESTPROPERTY_RECORDUPLOADPROGRESS, false));
|
| - ASSERT_FALSE(info_->record_upload_progress());
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, SetURL) {
|
| - // Test default URL is "about:blank".
|
| - ASSERT_TRUE(IsExpected(GetURL(), "about:blank"));
|
| -
|
| - const char* url = "http://www.google.com/";
|
| - ASSERT_TRUE(info_->SetStringProperty(
|
| - PP_URLREQUESTPROPERTY_URL, url));
|
| - ASSERT_TRUE(IsExpected(GetURL(), url));
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, SetMethod) {
|
| - // Test default method is "GET".
|
| - ASSERT_TRUE(IsExpected(GetMethod(), "GET"));
|
| - ASSERT_TRUE(info_->SetStringProperty(
|
| - PP_URLREQUESTPROPERTY_METHOD, "POST"));
|
| - ASSERT_TRUE(IsExpected(GetMethod(), "POST"));
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, SetValidHeaders) {
|
| - // Test default header field.
|
| - ASSERT_TRUE(IsExpected(
|
| - GetHeaderValue("foo"), ""));
|
| - // Test that we can set a header field.
|
| - ASSERT_TRUE(info_->SetStringProperty(
|
| - PP_URLREQUESTPROPERTY_HEADERS, "foo: bar"));
|
| - ASSERT_TRUE(IsExpected(
|
| - GetHeaderValue("foo"), "bar"));
|
| - // Test that we can set multiple header fields using \n delimiter.
|
| - ASSERT_TRUE(info_->SetStringProperty(
|
| - PP_URLREQUESTPROPERTY_HEADERS, "foo: bar\nbar: baz"));
|
| - ASSERT_TRUE(IsExpected(
|
| - GetHeaderValue("foo"), "bar"));
|
| - ASSERT_TRUE(IsExpected(
|
| - GetHeaderValue("bar"), "baz"));
|
| -}
|
| -
|
| -TEST_F(URLRequestInfoTest, SetInvalidHeaders) {
|
| - const char* const kForbiddenHeaderFields[] = {
|
| - "accept-charset",
|
| - "accept-encoding",
|
| - "connection",
|
| - "content-length",
|
| - "cookie",
|
| - "cookie2",
|
| - "content-transfer-encoding",
|
| - "date",
|
| - "expect",
|
| - "host",
|
| - "keep-alive",
|
| - "origin",
|
| - "referer",
|
| - "te",
|
| - "trailer",
|
| - "transfer-encoding",
|
| - "upgrade",
|
| - "user-agent",
|
| - "via",
|
| -
|
| - "proxy-foo", // Test for any header starting with proxy- or sec-.
|
| - "sec-foo",
|
| - };
|
| -
|
| - // Test that no forbidden header fields can be set.
|
| - 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])));
|
| - }
|
| -
|
| - // 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")));
|
| -
|
| - // 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")));
|
| -}
|
| -
|
| -// TODO(bbudge) Unit tests for AppendDataToBody, AppendFileToBody.
|
| -
|
| -} // namespace ppapi
|
| -} // namespace webkit
|
| -
|
|
|