Index: net/url_request/url_request_unittest.cc |
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc |
index ebabe8da4a9bd063ec69ccabd8ad58c6ab6bc850..acbf4c1a9600fdefd5273b63214252d3d4fee80a 100644 |
--- a/net/url_request/url_request_unittest.cc |
+++ b/net/url_request/url_request_unittest.cc |
@@ -428,6 +428,54 @@ TEST_F(URLRequestTestHTTP, GetTest) { |
} |
} |
+TEST_F(URLRequestTestHTTP, GetZippedTest) { |
+ ASSERT_TRUE(test_server_.Start()); |
+ |
+ // Parameter that specifies the Content-Length field in the response: |
+ // C - Compressed length. |
+ // U - Uncompressed length. |
+ // L - Large length (larger than both C & U). |
+ // M - Medium length (between C & U). |
+ // S - Small length (smaller than both C & U). |
+ const char test_parameters[] = "CULMS"; |
+ const int num_tests = |
+ (sizeof(test_parameters) / sizeof(test_parameters[0])) - 1; // Skip NULL. |
willchan no longer on Chromium
2011/05/23 22:12:26
Use arraysize() instead.
ahendrickson
2011/05/24 04:58:37
Done.
|
+ // C & U should be OK. |
+ // L & M are larger than the data sent, and show an error. |
+ // S has too little data, but we seem to accept it. |
+ const bool test_expect_success[num_tests] = |
+ { true, true, false, false, true }; |
+ |
+ for (int i = 0; i < num_tests ; i++) { |
+ TestDelegate d; |
+ { |
+ std::string test_file = |
+ base::StringPrintf("compressedfiles/BullRunSpeech.txt?%c", |
+ test_parameters[i]); |
+ TestURLRequest r(test_server_.GetURL(test_file), &d); |
+ |
+ r.Start(); |
+ EXPECT_TRUE(r.is_pending()); |
+ |
+ MessageLoop::current()->Run(); |
+ |
+ EXPECT_EQ(1, d.response_started_count()); |
+ EXPECT_FALSE(d.received_data_before_response()); |
+ VLOG(1) << " Received " << d.bytes_received() << " bytes" |
+ << " status = " << r.status().status() |
+ << " os_error = " << r.status().os_error(); |
+ if (test_expect_success[i]) { |
+ EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()) |
+ << " Parameter = \"" << test_file << "\""; |
+ } else { |
+ EXPECT_EQ(URLRequestStatus::FAILED, r.status().status()); |
+ EXPECT_EQ(-100, r.status().os_error()) |
+ << " Parameter = \"" << test_file << "\""; |
+ } |
+ } |
+ } |
+} |
+ |
TEST_F(URLRequestTestHTTP, HTTPSToHTTPRedirectNoRefererTest) { |
ASSERT_TRUE(test_server_.Start()); |