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

Unified Diff: content/browser/renderer_host/resource_dispatcher_host_unittest.cc

Issue 10392111: Use ByteStream in downloads system to decouple source and sink. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix old merge error. Created 8 years, 7 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
Index: content/browser/renderer_host/resource_dispatcher_host_unittest.cc
diff --git a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
index 344bc6b2c4e59019ab06ff75cc699d12f9f02dad..eeda586337b6a6a63258faaf6b32a7205aeb8d71 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_unittest.cc
@@ -265,6 +265,27 @@ class URLRequestTestDelayedStartJob : public net::URLRequestTestJob {
URLRequestTestDelayedStartJob*
URLRequestTestDelayedStartJob::list_head_ = NULL;
+// This class is a variation on URLRequestTestJob in that it only
rvargas (doing something else) 2012/05/29 18:13:36 nit: remove "only" ?
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Done.
+// returns IO_pending errors before every read, not just the first one.
+class URLRequestTestDelayedCompleteJob : public net::URLRequestTestJob {
rvargas (doing something else) 2012/05/29 18:13:36 ...DelayedCompletion... ? DelayCompletion ?
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Went with URLRequestTestDelayedCompletionJob; let
+ public:
+ URLRequestTestDelayedCompleteJob(net::URLRequest* request)
rvargas (doing something else) 2012/05/29 18:13:36 explicit
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Whoops; thank you.
+ : net::URLRequestTestJob(request) { }
rvargas (doing something else) 2012/05/29 18:13:36 nit: no space between {} (same thing below)
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Done.
+ URLRequestTestDelayedCompleteJob(net::URLRequest* request, bool auto_advance)
+ : net::URLRequestTestJob(request, auto_advance) { }
+ URLRequestTestDelayedCompleteJob(net::URLRequest* request,
+ const std::string& response_headers,
rvargas (doing something else) 2012/05/29 18:13:36 nit: indent three more spaces
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Done; sorry.
+ const std::string& response_data,
+ bool auto_advance)
+ : net::URLRequestTestJob(
+ request, response_headers, response_data, auto_advance) { }
rvargas (doing something else) 2012/05/29 18:13:36 nit: arguments start on the previous line
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Done.
+
+ private:
+ bool FinalRoundIOPending() { return true; }
rvargas (doing something else) 2012/05/29 18:32:13 I forgot about this one: nit: virtual.
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Also added OVERRIDE, now that you got me thinking
+};
+
+
+
// Associated with an URLRequest to determine if the URLRequest gets deleted.
class TestUserData : public base::SupportsUserData::Data {
public:
@@ -358,6 +379,7 @@ class ResourceDispatcherHostTest : public testing::Test,
&ResourceDispatcherHostTest::Factory);
EnsureTestSchemeIsAllowed();
delay_start_ = false;
+ delay_complete_ = false;
}
virtual void TearDown() {
@@ -439,6 +461,8 @@ class ResourceDispatcherHostTest : public testing::Test,
if (test_fixture_->response_headers_.empty()) {
if (delay_start_) {
return new URLRequestTestDelayedStartJob(request);
+ } else if (delay_complete_) {
+ return new URLRequestTestDelayedCompleteJob(request);
} else {
return new net::URLRequestTestJob(request);
}
@@ -447,6 +471,10 @@ class ResourceDispatcherHostTest : public testing::Test,
return new URLRequestTestDelayedStartJob(
request, test_fixture_->response_headers_,
test_fixture_->response_data_, false);
+ } else if (delay_complete_) {
+ return new URLRequestTestDelayedCompleteJob(
+ request, test_fixture_->response_headers_,
+ test_fixture_->response_data_, false);
} else {
return new net::URLRequestTestJob(request,
test_fixture_->response_headers_,
@@ -460,6 +488,10 @@ class ResourceDispatcherHostTest : public testing::Test,
delay_start_ = delay_job_start;
}
+ void SetDelayedCompleteJobGeneration(bool delay_job_complete) {
+ delay_complete_ = delay_job_complete;
+ }
+
MessageLoopForIO message_loop_;
BrowserThreadImpl ui_thread_;
BrowserThreadImpl file_thread_;
@@ -476,10 +508,12 @@ class ResourceDispatcherHostTest : public testing::Test,
ResourceType::Type resource_type_;
static ResourceDispatcherHostTest* test_fixture_;
static bool delay_start_;
+ static bool delay_complete_;
};
// Static.
ResourceDispatcherHostTest* ResourceDispatcherHostTest::test_fixture_ = NULL;
bool ResourceDispatcherHostTest::delay_start_ = false;
+bool ResourceDispatcherHostTest::delay_complete_ = false;
void ResourceDispatcherHostTest::MakeTestRequest(int render_view_id,
int request_id,
@@ -1267,9 +1301,12 @@ TEST_F(ResourceDispatcherHostTest, IgnoreCancelForDownloads) {
std::string raw_headers(net::HttpUtil::AssembleRawHeaders(response.data(),
response.size()));
std::string response_data("01234567890123456789\x01foobar");
+ // Get past sniffing metrics.
+ response_data.resize(1025, ' ');
rvargas (doing something else) 2012/05/29 18:13:36 It seems quite fragile. Hopefully the failure will
Randy Smith (Not in Mondays) 2012/05/30 00:22:32 Completely fair, but I'm not coming up with a good
SetResponse(raw_headers, response_data);
SetResourceType(ResourceType::MAIN_FRAME);
+ SetDelayedCompleteJobGeneration(true);
HandleScheme("http");
MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah"));
@@ -1302,9 +1339,12 @@ TEST_F(ResourceDispatcherHostTest, CancelRequestsForContext) {
std::string raw_headers(net::HttpUtil::AssembleRawHeaders(response.data(),
response.size()));
std::string response_data("01234567890123456789\x01foobar");
+ // Get past sniffing metrics.
+ response_data.resize(1025, ' ');
SetResponse(raw_headers, response_data);
SetResourceType(ResourceType::MAIN_FRAME);
+ SetDelayedCompleteJobGeneration(true);
HandleScheme("http");
MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah"));

Powered by Google App Engine
This is Rietveld 408576698