summaryrefslogtreecommitdiffstats
path: root/net/http/http_network_transaction_unittest.cc
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-27 03:49:14 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-27 03:49:14 +0000
commit3a2d366b664bb0c13f4427f3ed6a3b6af6e77451 (patch)
tree6d6610f3f16bac1c3d774b85969de634f1b72972 /net/http/http_network_transaction_unittest.cc
parentde412917b254482842408c79b01f2962c5888ee2 (diff)
downloadchromium_src-3a2d366b664bb0c13f4427f3ed6a3b6af6e77451.zip
chromium_src-3a2d366b664bb0c13f4427f3ed6a3b6af6e77451.tar.gz
chromium_src-3a2d366b664bb0c13f4427f3ed6a3b6af6e77451.tar.bz2
Treat all 1xx the same as a 100 (continue).
BUG=8440 Review URL: http://codereview.chromium.org/53111 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12634 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_network_transaction_unittest.cc')
-rw-r--r--net/http/http_network_transaction_unittest.cc44
1 files changed, 44 insertions, 0 deletions
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 20e845e..a9fa974 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -598,6 +598,50 @@ TEST_F(HttpNetworkTransactionTest, Ignores100) {
EXPECT_EQ("hello world", response_data);
}
+// This test is almost the same as Ignores100 above, but the response contains
+// a 102 instead of a 100. Also, instead of HTTP/1.0 the response is
+// HTTP/1.1.
+TEST_F(HttpNetworkTransactionTest, Ignores1xx) {
+ scoped_ptr<net::ProxyService> proxy_service(CreateNullProxyService());
+ scoped_ptr<net::HttpTransaction> trans(new net::HttpNetworkTransaction(
+ CreateSession(proxy_service.get()), &mock_socket_factory));
+
+ net::HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.foo.com/");
+ request.load_flags = 0;
+
+ MockRead data_reads[] = {
+ MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n"),
+ MockRead("HTTP/1.1 200 OK\r\n\r\n"),
+ MockRead("hello world"),
+ MockRead(false, net::OK),
+ };
+ MockSocket data;
+ data.reads = data_reads;
+ mock_sockets[0] = &data;
+ mock_sockets[1] = NULL;
+
+ TestCompletionCallback callback;
+
+ int rv = trans->Start(&request, &callback);
+ EXPECT_EQ(net::ERR_IO_PENDING, rv);
+
+ rv = callback.WaitForResult();
+ EXPECT_EQ(net::OK, rv);
+
+ const net::HttpResponseInfo* response = trans->GetResponseInfo();
+ EXPECT_TRUE(response != NULL);
+
+ EXPECT_TRUE(response->headers != NULL);
+ EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
+
+ std::string response_data;
+ rv = ReadTransaction(trans.get(), &response_data);
+ EXPECT_EQ(net::OK, rv);
+ EXPECT_EQ("hello world", response_data);
+}
+
// read_failure specifies a read failure that should cause the network
// transaction to resend the request.
void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest(