| 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
|
|
|