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

Unified Diff: content/renderer/resource_fetcher_browsertest.cc

Issue 140823010: ResourceFetcher: Add POST support and the ability to set headers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Gack Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/fetchers/resource_fetcher_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/resource_fetcher_browsertest.cc
===================================================================
--- content/renderer/resource_fetcher_browsertest.cc (revision 244609)
+++ content/renderer/resource_fetcher_browsertest.cc (working copy)
@@ -149,8 +149,9 @@
WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
- scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(
- url, frame, WebURLRequest::TargetIsMainFrame, delegate->NewCallback()));
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
delegate->WaitForResponse();
@@ -164,8 +165,9 @@
WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
- scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(
- url, frame, WebURLRequest::TargetIsMainFrame, delegate->NewCallback()));
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
delegate->WaitForResponse();
@@ -180,8 +182,9 @@
// Try to fetch a page on a site that doesn't exist.
GURL url("http://localhost:1339/doesnotexist");
scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
- scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(
- url, frame, WebURLRequest::TargetIsMainFrame, delegate->NewCallback()));
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
delegate->WaitForResponse();
@@ -197,9 +200,9 @@
WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
- scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(
- url, frame, WebURLRequest::TargetIsMainFrame,
- delegate->NewCallback()));
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
fetcher->SetTimeout(base::TimeDelta());
delegate->WaitForResponse();
@@ -216,15 +219,50 @@
WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
scoped_ptr<EvilFetcherDelegate> delegate(new EvilFetcherDelegate);
- scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(
- url, frame, WebURLRequest::TargetIsMainFrame,
- delegate->NewCallback()));
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
fetcher->SetTimeout(base::TimeDelta());
delegate->SetFetcher(fetcher.release());
delegate->WaitForResponse();
EXPECT_FALSE(delegate->timed_out());
}
+
+ void ResourceFetcherPost(const GURL& url) {
+ const char* kBody = "Really nifty POST body!";
+
+ WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
+
+ scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->SetMethod("POST");
+ fetcher->SetBody(kBody);
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
+
+ delegate->WaitForResponse();
+ ASSERT_TRUE(delegate->completed());
+ EXPECT_EQ(delegate->response().httpStatusCode(), 200);
+ EXPECT_EQ(kBody, delegate->data());
+ }
+
+ void ResourceFetcherSetHeader(const GURL& url) {
+ const char* kHeader = "Rather boring header.";
+
+ WebFrame* frame = GetRenderView()->GetWebView()->mainFrame();
+
+ scoped_ptr<FetcherDelegate> delegate(new FetcherDelegate);
+ scoped_ptr<ResourceFetcher> fetcher(ResourceFetcher::Create(url));
+ fetcher->SetHeader("header", kHeader);
+ fetcher->Start(frame, WebURLRequest::TargetIsMainFrame,
+ delegate->NewCallback());
+
+ delegate->WaitForResponse();
+ ASSERT_TRUE(delegate->completed());
+ EXPECT_EQ(delegate->response().httpStatusCode(), 200);
+ EXPECT_EQ(kHeader, delegate->data());
+ }
};
// Test a fetch from the test server.
@@ -293,4 +331,34 @@
base::Unretained(this), url));
}
+// Test that ResourceFetchers can handle POSTs.
+IN_PROC_BROWSER_TEST_F(ResourceFetcherTests, ResourceFetcherPost) {
+ // Need to spin up the renderer.
+ NavigateToURL(shell(), GURL(kAboutBlankURL));
+
+ // Grab a page that echos the POST body.
+ ASSERT_TRUE(test_server()->Start());
+ GURL url(test_server()->GetURL("echo"));
+
+ PostTaskToInProcessRendererAndWait(
+ base::Bind(
+ &ResourceFetcherTests::ResourceFetcherPost,
+ base::Unretained(this), url));
+}
+
+// Test that ResourceFetchers can set headers.
+IN_PROC_BROWSER_TEST_F(ResourceFetcherTests, ResourceFetcherSetHeader) {
+ // Need to spin up the renderer.
+ NavigateToURL(shell(), GURL(kAboutBlankURL));
+
+ // Grab a page that echos the POST body.
+ ASSERT_TRUE(test_server()->Start());
+ GURL url(test_server()->GetURL("echoheader?header"));
+
+ PostTaskToInProcessRendererAndWait(
+ base::Bind(
+ &ResourceFetcherTests::ResourceFetcherSetHeader,
+ base::Unretained(this), url));
+}
+
} // namespace content
« no previous file with comments | « content/renderer/fetchers/resource_fetcher_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698