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

Side by Side Diff: net/spdy/spdy_network_transaction_unittest.cc

Issue 1783008: Cleanup: Remove the implicit constructor for BoundNetLog that allowed passing... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Sync Created 10 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/socket/tcp_pinger_unittest.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_network_transaction.h" 5 #include "net/spdy/spdy_network_transaction.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/ref_counted.h" 8 #include "base/ref_counted.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "net/base/completion_callback.h" 10 #include "net/base/completion_callback.h"
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 MockRead(true, 0, 0) // EOF 724 MockRead(true, 0, 0) // EOF
725 }; 725 };
726 726
727 HttpRequestInfo request; 727 HttpRequestInfo request;
728 request.method = "GET"; 728 request.method = "GET";
729 request.url = GURL("http://www.google.com/"); 729 request.url = GURL("http://www.google.com/");
730 request.load_flags = 0; 730 request.load_flags = 0;
731 scoped_refptr<DelayedSocketData> data( 731 scoped_refptr<DelayedSocketData> data(
732 new DelayedSocketData(1, reads, arraysize(reads), 732 new DelayedSocketData(1, reads, arraysize(reads),
733 writes, arraysize(writes))); 733 writes, arraysize(writes)));
734 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 734 TransactionHelperResult out = TransactionHelper(request, data.get(),
735 BoundNetLog());
735 EXPECT_EQ(OK, out.rv); 736 EXPECT_EQ(OK, out.rv);
736 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 737 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
737 EXPECT_EQ("hello!", out.response_data); 738 EXPECT_EQ("hello!", out.response_data);
738 } 739 }
739 740
740 // Test that a simple POST works. 741 // Test that a simple POST works.
741 TEST_F(SpdyNetworkTransactionTest, Post) { 742 TEST_F(SpdyNetworkTransactionTest, Post) {
742 static const char upload[] = { "hello world" }; 743 static const char upload[] = { "hello world" };
743 744
744 // Setup the request 745 // Setup the request
(...skipping 14 matching lines...) Expand all
759 MockRead(true, reinterpret_cast<const char*>(kPostSynReply), 760 MockRead(true, reinterpret_cast<const char*>(kPostSynReply),
760 arraysize(kPostSynReply)), 761 arraysize(kPostSynReply)),
761 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame), 762 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame),
762 arraysize(kPostBodyFrame)), 763 arraysize(kPostBodyFrame)),
763 MockRead(true, 0, 0) // EOF 764 MockRead(true, 0, 0) // EOF
764 }; 765 };
765 766
766 scoped_refptr<DelayedSocketData> data( 767 scoped_refptr<DelayedSocketData> data(
767 new DelayedSocketData(2, reads, arraysize(reads), 768 new DelayedSocketData(2, reads, arraysize(reads),
768 writes, arraysize(writes))); 769 writes, arraysize(writes)));
769 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 770 TransactionHelperResult out = TransactionHelper(request, data.get(),
771 BoundNetLog());
770 EXPECT_EQ(OK, out.rv); 772 EXPECT_EQ(OK, out.rv);
771 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 773 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
772 EXPECT_EQ("hello!", out.response_data); 774 EXPECT_EQ("hello!", out.response_data);
773 } 775 }
774 776
775 // Test that a simple POST works. 777 // Test that a simple POST works.
776 TEST_F(SpdyNetworkTransactionTest, EmptyPost) { 778 TEST_F(SpdyNetworkTransactionTest, EmptyPost) {
777 static const unsigned char kEmptyPostSyn[] = { 779 static const unsigned char kEmptyPostSyn[] = {
778 0x80, 0x01, 0x00, 0x01, // header 780 0x80, 0x01, 0x00, 0x01, // header
779 0x01, 0x00, 0x00, 0x4a, // flags, len 781 0x01, 0x00, 0x00, 0x4a, // flags, len
(...skipping 27 matching lines...) Expand all
807 arraysize(kPostSynReply)), 809 arraysize(kPostSynReply)),
808 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame), 810 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame),
809 arraysize(kPostBodyFrame)), 811 arraysize(kPostBodyFrame)),
810 MockRead(true, 0, 0) // EOF 812 MockRead(true, 0, 0) // EOF
811 }; 813 };
812 814
813 scoped_refptr<DelayedSocketData> data( 815 scoped_refptr<DelayedSocketData> data(
814 new DelayedSocketData(1, reads, arraysize(reads), 816 new DelayedSocketData(1, reads, arraysize(reads),
815 writes, arraysize(writes))); 817 writes, arraysize(writes)));
816 818
817 TransactionHelperResult out = TransactionHelper(request, data, NULL); 819 TransactionHelperResult out = TransactionHelper(request, data, BoundNetLog());
818 EXPECT_EQ(OK, out.rv); 820 EXPECT_EQ(OK, out.rv);
819 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 821 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
820 EXPECT_EQ("hello!", out.response_data); 822 EXPECT_EQ("hello!", out.response_data);
821 } 823 }
822 824
823 // Test that the transaction doesn't crash when we don't have a reply. 825 // Test that the transaction doesn't crash when we don't have a reply.
824 TEST_F(SpdyNetworkTransactionTest, ResponseWithoutSynReply) { 826 TEST_F(SpdyNetworkTransactionTest, ResponseWithoutSynReply) {
825 MockRead reads[] = { 827 MockRead reads[] = {
826 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame), 828 MockRead(true, reinterpret_cast<const char*>(kPostBodyFrame),
827 arraysize(kPostBodyFrame)), 829 arraysize(kPostBodyFrame)),
828 MockRead(true, 0, 0) // EOF 830 MockRead(true, 0, 0) // EOF
829 }; 831 };
830 832
831 HttpRequestInfo request; 833 HttpRequestInfo request;
832 request.method = "GET"; 834 request.method = "GET";
833 request.url = GURL("http://www.google.com/"); 835 request.url = GURL("http://www.google.com/");
834 request.load_flags = 0; 836 request.load_flags = 0;
835 scoped_refptr<DelayedSocketData> data( 837 scoped_refptr<DelayedSocketData> data(
836 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0)); 838 new DelayedSocketData(1, reads, arraysize(reads), NULL, 0));
837 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 839 TransactionHelperResult out = TransactionHelper(request, data.get(),
840 BoundNetLog());
838 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 841 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
839 } 842 }
840 843
841 TEST_F(SpdyNetworkTransactionTest, CancelledTransaction) { 844 TEST_F(SpdyNetworkTransactionTest, CancelledTransaction) {
842 MockWrite writes[] = { 845 MockWrite writes[] = {
843 MockWrite(true, reinterpret_cast<const char*>(kGetSyn), 846 MockWrite(true, reinterpret_cast<const char*>(kGetSyn),
844 arraysize(kGetSyn)), 847 arraysize(kGetSyn)),
845 MockRead(true, 0, 0) // EOF 848 MockRead(true, 0, 0) // EOF
846 }; 849 };
847 850
(...skipping 18 matching lines...) Expand all
866 SessionDependencies session_deps; 869 SessionDependencies session_deps;
867 scoped_ptr<SpdyNetworkTransaction> trans( 870 scoped_ptr<SpdyNetworkTransaction> trans(
868 new SpdyNetworkTransaction(CreateSession(&session_deps))); 871 new SpdyNetworkTransaction(CreateSession(&session_deps)));
869 872
870 StaticSocketDataProvider data(reads, arraysize(reads), 873 StaticSocketDataProvider data(reads, arraysize(reads),
871 writes, arraysize(writes)); 874 writes, arraysize(writes));
872 session_deps.socket_factory.AddSocketDataProvider(&data); 875 session_deps.socket_factory.AddSocketDataProvider(&data);
873 876
874 TestCompletionCallback callback; 877 TestCompletionCallback callback;
875 878
876 int rv = trans->Start(&request, &callback, NULL); 879 int rv = trans->Start(&request, &callback, BoundNetLog());
877 EXPECT_EQ(ERR_IO_PENDING, rv); 880 EXPECT_EQ(ERR_IO_PENDING, rv);
878 trans.reset(); // Cancel the transaction. 881 trans.reset(); // Cancel the transaction.
879 882
880 // Flush the MessageLoop while the SessionDependencies (in particular, the 883 // Flush the MessageLoop while the SessionDependencies (in particular, the
881 // MockClientSocketFactory) are still alive. 884 // MockClientSocketFactory) are still alive.
882 MessageLoop::current()->RunAllPending(); 885 MessageLoop::current()->RunAllPending();
883 } 886 }
884 887
885 // Verify that various SynReply headers parse correctly through the 888 // Verify that various SynReply headers parse correctly through the
886 // HTTP layer. 889 // HTTP layer.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 MockRead(true, 0, 0) // EOF 979 MockRead(true, 0, 0) // EOF
977 }; 980 };
978 981
979 HttpRequestInfo request; 982 HttpRequestInfo request;
980 request.method = "GET"; 983 request.method = "GET";
981 request.url = GURL("http://www.google.com/"); 984 request.url = GURL("http://www.google.com/");
982 request.load_flags = 0; 985 request.load_flags = 0;
983 scoped_refptr<DelayedSocketData> data( 986 scoped_refptr<DelayedSocketData> data(
984 new DelayedSocketData(1, reads, arraysize(reads), 987 new DelayedSocketData(1, reads, arraysize(reads),
985 writes, arraysize(writes))); 988 writes, arraysize(writes)));
986 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 989 TransactionHelperResult out = TransactionHelper(request, data.get(),
990 BoundNetLog());
987 EXPECT_EQ(OK, out.rv); 991 EXPECT_EQ(OK, out.rv);
988 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 992 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
989 EXPECT_EQ("hello!", out.response_data); 993 EXPECT_EQ("hello!", out.response_data);
990 994
991 scoped_refptr<HttpResponseHeaders> headers = out.response_info.headers; 995 scoped_refptr<HttpResponseHeaders> headers = out.response_info.headers;
992 EXPECT_TRUE(headers.get() != NULL); 996 EXPECT_TRUE(headers.get() != NULL);
993 void* iter = NULL; 997 void* iter = NULL;
994 std::string name, value, lines; 998 std::string name, value, lines;
995 while (headers->EnumerateHeaderLines(&iter, &name, &value)) { 999 while (headers->EnumerateHeaderLines(&iter, &name, &value)) {
996 lines.append(name); 1000 lines.append(name);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1129 1133
1130 for (int ct = 0; ct < header_count; ct++) { 1134 for (int ct = 0; ct < header_count; ct++) {
1131 const char* header_key = test_cases[i].extra_headers[0][ct * 2]; 1135 const char* header_key = test_cases[i].extra_headers[0][ct * 2];
1132 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1]; 1136 const char* header_value = test_cases[i].extra_headers[0][ct * 2 + 1];
1133 request.extra_headers.SetHeader(header_key, header_value); 1137 request.extra_headers.SetHeader(header_key, header_value);
1134 } 1138 }
1135 1139
1136 scoped_refptr<DelayedSocketData> data( 1140 scoped_refptr<DelayedSocketData> data(
1137 new DelayedSocketData(1, reads, arraysize(reads), 1141 new DelayedSocketData(1, reads, arraysize(reads),
1138 writes, arraysize(writes))); 1142 writes, arraysize(writes)));
1139 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1143 TransactionHelperResult out = TransactionHelper(request, data.get(),
1144 BoundNetLog());
1140 EXPECT_EQ(OK, out.rv) << i; 1145 EXPECT_EQ(OK, out.rv) << i;
1141 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line) << i; 1146 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line) << i;
1142 EXPECT_EQ("hello!", out.response_data) << i; 1147 EXPECT_EQ("hello!", out.response_data) << i;
1143 1148
1144 // Test the response information. 1149 // Test the response information.
1145 EXPECT_TRUE(out.response_info.response_time > 1150 EXPECT_TRUE(out.response_info.response_time >
1146 out.response_info.request_time) << i; 1151 out.response_info.request_time) << i;
1147 base::TimeDelta test_delay = out.response_info.response_time - 1152 base::TimeDelta test_delay = out.response_info.response_time -
1148 out.response_info.request_time; 1153 out.response_info.request_time;
1149 base::TimeDelta min_expected_delay; 1154 base::TimeDelta min_expected_delay;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1226 MockRead(true, 0, 0) // EOF 1231 MockRead(true, 0, 0) // EOF
1227 }; 1232 };
1228 1233
1229 HttpRequestInfo request; 1234 HttpRequestInfo request;
1230 request.method = "GET"; 1235 request.method = "GET";
1231 request.url = GURL("http://www.google.com/"); 1236 request.url = GURL("http://www.google.com/");
1232 request.load_flags = 0; 1237 request.load_flags = 0;
1233 scoped_refptr<DelayedSocketData> data( 1238 scoped_refptr<DelayedSocketData> data(
1234 new DelayedSocketData(1, reads, arraysize(reads), 1239 new DelayedSocketData(1, reads, arraysize(reads),
1235 writes, arraysize(writes))); 1240 writes, arraysize(writes)));
1236 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1241 TransactionHelperResult out = TransactionHelper(request, data.get(),
1242 BoundNetLog());
1237 EXPECT_EQ(ERR_INVALID_RESPONSE, out.rv); 1243 EXPECT_EQ(ERR_INVALID_RESPONSE, out.rv);
1238 } 1244 }
1239 } 1245 }
1240 1246
1241 // Verify that we don't crash on some corrupt frames. 1247 // Verify that we don't crash on some corrupt frames.
1242 TEST_F(SpdyNetworkTransactionTest, CorruptFrameSessionError) { 1248 TEST_F(SpdyNetworkTransactionTest, CorruptFrameSessionError) {
1243 static const unsigned char kSynReplyMassiveLength[] = { 1249 static const unsigned char kSynReplyMassiveLength[] = {
1244 0x80, 0x01, 0x00, 0x02, 1250 0x80, 0x01, 0x00, 0x02,
1245 0x0f, 0x11, 0x11, 0x26, // This is the length field with a big number 1251 0x0f, 0x11, 0x11, 0x26, // This is the length field with a big number
1246 0x00, 0x00, 0x00, 0x01, 1252 0x00, 0x00, 0x00, 0x01,
(...skipping 26 matching lines...) Expand all
1273 MockRead(true, 0, 0) // EOF 1279 MockRead(true, 0, 0) // EOF
1274 }; 1280 };
1275 1281
1276 HttpRequestInfo request; 1282 HttpRequestInfo request;
1277 request.method = "GET"; 1283 request.method = "GET";
1278 request.url = GURL("http://www.google.com/"); 1284 request.url = GURL("http://www.google.com/");
1279 request.load_flags = 0; 1285 request.load_flags = 0;
1280 scoped_refptr<DelayedSocketData> data( 1286 scoped_refptr<DelayedSocketData> data(
1281 new DelayedSocketData(1, reads, arraysize(reads), 1287 new DelayedSocketData(1, reads, arraysize(reads),
1282 writes, arraysize(writes))); 1288 writes, arraysize(writes)));
1283 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1289 TransactionHelperResult out = TransactionHelper(request, data.get(),
1290 BoundNetLog());
1284 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv); 1291 EXPECT_EQ(ERR_SPDY_PROTOCOL_ERROR, out.rv);
1285 } 1292 }
1286 } 1293 }
1287 1294
1288 // Server push: 1295 // Server push:
1289 // ------------ 1296 // ------------
1290 // Client: Send the original SYN request. 1297 // Client: Send the original SYN request.
1291 // Server: Receive the SYN request. 1298 // Server: Receive the SYN request.
1292 // Server: Send a SYN reply, with X-Associated-Content and URL(s). 1299 // Server: Send a SYN reply, with X-Associated-Content and URL(s).
1293 // Server: For each URL, send a SYN_STREAM with the URL and a stream ID, 1300 // Server: For each URL, send a SYN_STREAM with the URL and a stream ID,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1344 HttpRequestInfo request; 1351 HttpRequestInfo request;
1345 request.method = "GET"; 1352 request.method = "GET";
1346 request.url = url; 1353 request.url = url;
1347 request.load_flags = 0; 1354 request.load_flags = 0;
1348 TestCompletionCallback callback; 1355 TestCompletionCallback callback;
1349 1356
1350 // Allows the STOP_LOOP flag to work. 1357 // Allows the STOP_LOOP flag to work.
1351 data->SetCompletionCallback(&callback); 1358 data->SetCompletionCallback(&callback);
1352 // Sends a request. In pass 1, this goes on the wire; in pass 2, it is 1359 // Sends a request. In pass 1, this goes on the wire; in pass 2, it is
1353 // preempted by the push data. 1360 // preempted by the push data.
1354 int rv = trans.Start(&request, &callback, NULL); 1361 int rv = trans.Start(&request, &callback, BoundNetLog());
1355 EXPECT_EQ(ERR_IO_PENDING, rv); 1362 EXPECT_EQ(ERR_IO_PENDING, rv);
1356 1363
1357 // In the case where we are pushing beforehand, complete the next read now. 1364 // In the case where we are pushing beforehand, complete the next read now.
1358 if ((pass == 2) && (test_type == PUSH_AFTER_REQUEST)) { 1365 if ((pass == 2) && (test_type == PUSH_AFTER_REQUEST)) {
1359 data->CompleteRead(); 1366 data->CompleteRead();
1360 } 1367 }
1361 1368
1362 // Process messages until either a FIN or a STOP_LOOP is encountered. 1369 // Process messages until either a FIN or a STOP_LOOP is encountered.
1363 rv = callback.WaitForResult(); 1370 rv = callback.WaitForResult();
1364 if ((pass == 2) && (test_type == PUSH_DURING_REQUEST)) { 1371 if ((pass == 2) && (test_type == PUSH_DURING_REQUEST)) {
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 MockRead(true, 0, 0) // EOF 1625 MockRead(true, 0, 0) // EOF
1619 }; 1626 };
1620 1627
1621 HttpRequestInfo request; 1628 HttpRequestInfo request;
1622 request.method = "GET"; 1629 request.method = "GET";
1623 request.url = GURL("http://www.google.com/"); 1630 request.url = GURL("http://www.google.com/");
1624 request.load_flags = 0; 1631 request.load_flags = 0;
1625 scoped_refptr<DelayedSocketData> data( 1632 scoped_refptr<DelayedSocketData> data(
1626 new DelayedSocketData(2, reads, arraysize(reads), 1633 new DelayedSocketData(2, reads, arraysize(reads),
1627 writes, arraysize(writes))); 1634 writes, arraysize(writes)));
1628 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1635 TransactionHelperResult out = TransactionHelper(request, data.get(),
1636 BoundNetLog());
1629 EXPECT_EQ(ERR_FAILED, out.rv); 1637 EXPECT_EQ(ERR_FAILED, out.rv);
1630 data->Reset(); 1638 data->Reset();
1631 } 1639 }
1632 1640
1633 // Test that partial writes work. 1641 // Test that partial writes work.
1634 TEST_F(SpdyNetworkTransactionTest, PartialWrite) { 1642 TEST_F(SpdyNetworkTransactionTest, PartialWrite) {
1635 // Chop the SYN_STREAM frame into 5 chunks. 1643 // Chop the SYN_STREAM frame into 5 chunks.
1636 const int kChunks = 5; 1644 const int kChunks = 5;
1637 scoped_array<MockWrite> writes(ChopFrame( 1645 scoped_array<MockWrite> writes(ChopFrame(
1638 reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn), kChunks)); 1646 reinterpret_cast<const char*>(kGetSyn), arraysize(kGetSyn), kChunks));
1639 1647
1640 MockRead reads[] = { 1648 MockRead reads[] = {
1641 MockRead(true, reinterpret_cast<const char*>(kGetSynReply), 1649 MockRead(true, reinterpret_cast<const char*>(kGetSynReply),
1642 arraysize(kGetSynReply)), 1650 arraysize(kGetSynReply)),
1643 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame), 1651 MockRead(true, reinterpret_cast<const char*>(kGetBodyFrame),
1644 arraysize(kGetBodyFrame)), 1652 arraysize(kGetBodyFrame)),
1645 MockRead(true, 0, 0) // EOF 1653 MockRead(true, 0, 0) // EOF
1646 }; 1654 };
1647 1655
1648 HttpRequestInfo request; 1656 HttpRequestInfo request;
1649 request.method = "GET"; 1657 request.method = "GET";
1650 request.url = GURL("http://www.google.com/"); 1658 request.url = GURL("http://www.google.com/");
1651 request.load_flags = 0; 1659 request.load_flags = 0;
1652 scoped_refptr<DelayedSocketData> data( 1660 scoped_refptr<DelayedSocketData> data(
1653 new DelayedSocketData(kChunks, reads, arraysize(reads), 1661 new DelayedSocketData(kChunks, reads, arraysize(reads),
1654 writes.get(), kChunks)); 1662 writes.get(), kChunks));
1655 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1663 TransactionHelperResult out = TransactionHelper(request, data.get(),
1664 BoundNetLog());
1656 EXPECT_EQ(OK, out.rv); 1665 EXPECT_EQ(OK, out.rv);
1657 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 1666 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
1658 EXPECT_EQ("hello!", out.response_data); 1667 EXPECT_EQ("hello!", out.response_data);
1659 } 1668 }
1660 1669
1661 TEST_F(SpdyNetworkTransactionTest, ConnectFailure) { 1670 TEST_F(SpdyNetworkTransactionTest, ConnectFailure) {
1662 MockConnect connects[] = { 1671 MockConnect connects[] = {
1663 MockConnect(true, ERR_NAME_NOT_RESOLVED), 1672 MockConnect(true, ERR_NAME_NOT_RESOLVED),
1664 MockConnect(false, ERR_NAME_NOT_RESOLVED), 1673 MockConnect(false, ERR_NAME_NOT_RESOLVED),
1665 MockConnect(true, ERR_INTERNET_DISCONNECTED), 1674 MockConnect(true, ERR_INTERNET_DISCONNECTED),
(...skipping 15 matching lines...) Expand all
1681 MockRead(true, 0, 0) // EOF 1690 MockRead(true, 0, 0) // EOF
1682 }; 1691 };
1683 1692
1684 HttpRequestInfo request; 1693 HttpRequestInfo request;
1685 request.method = "GET"; 1694 request.method = "GET";
1686 request.url = GURL("http://www.google.com/"); 1695 request.url = GURL("http://www.google.com/");
1687 request.load_flags = 0; 1696 request.load_flags = 0;
1688 scoped_refptr<DelayedSocketData> data( 1697 scoped_refptr<DelayedSocketData> data(
1689 new DelayedSocketData(connects[index], 1, reads, arraysize(reads), 1698 new DelayedSocketData(connects[index], 1, reads, arraysize(reads),
1690 writes, arraysize(writes))); 1699 writes, arraysize(writes)));
1691 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1700 TransactionHelperResult out = TransactionHelper(request, data.get(),
1701 BoundNetLog());
1692 EXPECT_EQ(connects[index].result, out.rv); 1702 EXPECT_EQ(connects[index].result, out.rv);
1693 } 1703 }
1694 } 1704 }
1695 1705
1696 // In this test, we enable compression, but get a uncompressed SynReply from 1706 // In this test, we enable compression, but get a uncompressed SynReply from
1697 // the server. Verify that teardown is all clean. 1707 // the server. Verify that teardown is all clean.
1698 TEST_F(SpdyNetworkTransactionTest, DecompressFailureOnSynReply) { 1708 TEST_F(SpdyNetworkTransactionTest, DecompressFailureOnSynReply) {
1699 MockWrite writes[] = { 1709 MockWrite writes[] = {
1700 MockWrite(true, reinterpret_cast<const char*>(kGetSynCompressed), 1710 MockWrite(true, reinterpret_cast<const char*>(kGetSynCompressed),
1701 arraysize(kGetSynCompressed)), 1711 arraysize(kGetSynCompressed)),
(...skipping 11 matching lines...) Expand all
1713 // For this test, we turn on the normal compression. 1723 // For this test, we turn on the normal compression.
1714 EnableCompression(true); 1724 EnableCompression(true);
1715 1725
1716 HttpRequestInfo request; 1726 HttpRequestInfo request;
1717 request.method = "GET"; 1727 request.method = "GET";
1718 request.url = GURL("http://www.google.com/"); 1728 request.url = GURL("http://www.google.com/");
1719 request.load_flags = 0; 1729 request.load_flags = 0;
1720 scoped_refptr<DelayedSocketData> data( 1730 scoped_refptr<DelayedSocketData> data(
1721 new DelayedSocketData(1, reads, arraysize(reads), 1731 new DelayedSocketData(1, reads, arraysize(reads),
1722 writes, arraysize(writes))); 1732 writes, arraysize(writes)));
1723 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 1733 TransactionHelperResult out = TransactionHelper(request, data.get(),
1734 BoundNetLog());
1724 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv); 1735 EXPECT_EQ(ERR_SYN_REPLY_NOT_RECEIVED, out.rv);
1725 data->Reset(); 1736 data->Reset();
1726 1737
1727 EnableCompression(false); 1738 EnableCompression(false);
1728 } 1739 }
1729 1740
1730 // Test that the NetLog contains good data for a simple GET request. 1741 // Test that the NetLog contains good data for a simple GET request.
1731 TEST_F(SpdyNetworkTransactionTest, NetLog) { 1742 TEST_F(SpdyNetworkTransactionTest, NetLog) {
1732 MockWrite writes[] = { 1743 MockWrite writes[] = {
1733 MockWrite(true, reinterpret_cast<const char*>(kGetSyn), 1744 MockWrite(true, reinterpret_cast<const char*>(kGetSyn),
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 SpdySession::SetSSLMode(false); 1855 SpdySession::SetSSLMode(false);
1845 1856
1846 SessionDependencies session_deps; 1857 SessionDependencies session_deps;
1847 scoped_ptr<SpdyNetworkTransaction> trans( 1858 scoped_ptr<SpdyNetworkTransaction> trans(
1848 new SpdyNetworkTransaction(CreateSession(&session_deps))); 1859 new SpdyNetworkTransaction(CreateSession(&session_deps)));
1849 1860
1850 session_deps.socket_factory.AddSocketDataProvider(data); 1861 session_deps.socket_factory.AddSocketDataProvider(data);
1851 1862
1852 TestCompletionCallback callback; 1863 TestCompletionCallback callback;
1853 1864
1854 int rv = trans->Start(&request, &callback, NULL); 1865 int rv = trans->Start(&request, &callback, BoundNetLog());
1855 EXPECT_EQ(ERR_IO_PENDING, rv); 1866 EXPECT_EQ(ERR_IO_PENDING, rv);
1856 1867
1857 out.rv = callback.WaitForResult(); 1868 out.rv = callback.WaitForResult();
1858 EXPECT_EQ(out.rv, OK); 1869 EXPECT_EQ(out.rv, OK);
1859 1870
1860 const HttpResponseInfo* response = trans->GetResponseInfo(); 1871 const HttpResponseInfo* response = trans->GetResponseInfo();
1861 EXPECT_TRUE(response->headers != NULL); 1872 EXPECT_TRUE(response->headers != NULL);
1862 EXPECT_TRUE(response->was_fetched_via_spdy); 1873 EXPECT_TRUE(response->was_fetched_via_spdy);
1863 out.status_line = response->headers->GetStatusLine(); 1874 out.status_line = response->headers->GetStatusLine();
1864 out.response_info = *response; // Make a copy so we can verify. 1875 out.response_info = *response; // Make a copy so we can verify.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1950 SpdySession::SetSSLMode(false); 1961 SpdySession::SetSSLMode(false);
1951 1962
1952 SessionDependencies session_deps; 1963 SessionDependencies session_deps;
1953 scoped_ptr<SpdyNetworkTransaction> trans( 1964 scoped_ptr<SpdyNetworkTransaction> trans(
1954 new SpdyNetworkTransaction(CreateSession(&session_deps))); 1965 new SpdyNetworkTransaction(CreateSession(&session_deps)));
1955 1966
1956 session_deps.socket_factory.AddSocketDataProvider(data); 1967 session_deps.socket_factory.AddSocketDataProvider(data);
1957 1968
1958 TestCompletionCallback callback; 1969 TestCompletionCallback callback;
1959 1970
1960 int rv = trans->Start(&request, &callback, NULL); 1971 int rv = trans->Start(&request, &callback, BoundNetLog());
1961 EXPECT_EQ(ERR_IO_PENDING, rv); 1972 EXPECT_EQ(ERR_IO_PENDING, rv);
1962 1973
1963 out.rv = callback.WaitForResult(); 1974 out.rv = callback.WaitForResult();
1964 EXPECT_EQ(out.rv, OK); 1975 EXPECT_EQ(out.rv, OK);
1965 1976
1966 const HttpResponseInfo* response = trans->GetResponseInfo(); 1977 const HttpResponseInfo* response = trans->GetResponseInfo();
1967 EXPECT_TRUE(response->headers != NULL); 1978 EXPECT_TRUE(response->headers != NULL);
1968 EXPECT_TRUE(response->was_fetched_via_spdy); 1979 EXPECT_TRUE(response->was_fetched_via_spdy);
1969 out.status_line = response->headers->GetStatusLine(); 1980 out.status_line = response->headers->GetStatusLine();
1970 out.response_info = *response; // Make a copy so we can verify. 1981 out.response_info = *response; // Make a copy so we can verify.
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2067 SpdySession::SetSSLMode(false); 2078 SpdySession::SetSSLMode(false);
2068 2079
2069 SessionDependencies session_deps; 2080 SessionDependencies session_deps;
2070 scoped_ptr<SpdyNetworkTransaction> trans( 2081 scoped_ptr<SpdyNetworkTransaction> trans(
2071 new SpdyNetworkTransaction(CreateSession(&session_deps))); 2082 new SpdyNetworkTransaction(CreateSession(&session_deps)));
2072 2083
2073 session_deps.socket_factory.AddSocketDataProvider(data); 2084 session_deps.socket_factory.AddSocketDataProvider(data);
2074 2085
2075 TestCompletionCallback callback; 2086 TestCompletionCallback callback;
2076 2087
2077 int rv = trans->Start(&request, &callback, NULL); 2088 int rv = trans->Start(&request, &callback, BoundNetLog());
2078 EXPECT_EQ(ERR_IO_PENDING, rv); 2089 EXPECT_EQ(ERR_IO_PENDING, rv);
2079 2090
2080 out.rv = callback.WaitForResult(); 2091 out.rv = callback.WaitForResult();
2081 EXPECT_EQ(out.rv, OK); 2092 EXPECT_EQ(out.rv, OK);
2082 2093
2083 const HttpResponseInfo* response = trans->GetResponseInfo(); 2094 const HttpResponseInfo* response = trans->GetResponseInfo();
2084 EXPECT_TRUE(response->headers != NULL); 2095 EXPECT_TRUE(response->headers != NULL);
2085 EXPECT_TRUE(response->was_fetched_via_spdy); 2096 EXPECT_TRUE(response->was_fetched_via_spdy);
2086 out.status_line = response->headers->GetStatusLine(); 2097 out.status_line = response->headers->GetStatusLine();
2087 out.response_info = *response; // Make a copy so we can verify. 2098 out.response_info = *response; // Make a copy so we can verify.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2172 SpdySession::SetSSLMode(false); 2183 SpdySession::SetSSLMode(false);
2173 2184
2174 SessionDependencies session_deps; 2185 SessionDependencies session_deps;
2175 scoped_ptr<SpdyNetworkTransaction> trans( 2186 scoped_ptr<SpdyNetworkTransaction> trans(
2176 new SpdyNetworkTransaction(CreateSession(&session_deps))); 2187 new SpdyNetworkTransaction(CreateSession(&session_deps)));
2177 2188
2178 session_deps.socket_factory.AddSocketDataProvider(data); 2189 session_deps.socket_factory.AddSocketDataProvider(data);
2179 2190
2180 TestCompletionCallback callback; 2191 TestCompletionCallback callback;
2181 2192
2182 int rv = trans->Start(&request, &callback, NULL); 2193 int rv = trans->Start(&request, &callback, BoundNetLog());
2183 EXPECT_EQ(ERR_IO_PENDING, rv); 2194 EXPECT_EQ(ERR_IO_PENDING, rv);
2184 2195
2185 out.rv = callback.WaitForResult(); 2196 out.rv = callback.WaitForResult();
2186 EXPECT_EQ(out.rv, OK); 2197 EXPECT_EQ(out.rv, OK);
2187 2198
2188 const HttpResponseInfo* response = trans->GetResponseInfo(); 2199 const HttpResponseInfo* response = trans->GetResponseInfo();
2189 EXPECT_TRUE(response->headers != NULL); 2200 EXPECT_TRUE(response->headers != NULL);
2190 EXPECT_TRUE(response->was_fetched_via_spdy); 2201 EXPECT_TRUE(response->was_fetched_via_spdy);
2191 out.status_line = response->headers->GetStatusLine(); 2202 out.status_line = response->headers->GetStatusLine();
2192 out.response_info = *response; // Make a copy so we can verify. 2203 out.response_info = *response; // Make a copy so we can verify.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
2267 SpdySession::SetSSLMode(false); 2278 SpdySession::SetSSLMode(false);
2268 2279
2269 SessionDependencies session_deps; 2280 SessionDependencies session_deps;
2270 scoped_ptr<SpdyNetworkTransaction> trans( 2281 scoped_ptr<SpdyNetworkTransaction> trans(
2271 new SpdyNetworkTransaction(CreateSession(&session_deps))); 2282 new SpdyNetworkTransaction(CreateSession(&session_deps)));
2272 2283
2273 session_deps.socket_factory.AddSocketDataProvider(data); 2284 session_deps.socket_factory.AddSocketDataProvider(data);
2274 2285
2275 TestCompletionCallback callback; 2286 TestCompletionCallback callback;
2276 2287
2277 int rv = trans->Start(&request, &callback, NULL); 2288 int rv = trans->Start(&request, &callback, BoundNetLog());
2278 EXPECT_EQ(ERR_IO_PENDING, rv); 2289 EXPECT_EQ(ERR_IO_PENDING, rv);
2279 2290
2280 out.rv = callback.WaitForResult(); 2291 out.rv = callback.WaitForResult();
2281 EXPECT_EQ(out.rv, OK); 2292 EXPECT_EQ(out.rv, OK);
2282 2293
2283 const HttpResponseInfo* response = trans->GetResponseInfo(); 2294 const HttpResponseInfo* response = trans->GetResponseInfo();
2284 EXPECT_TRUE(response->headers != NULL); 2295 EXPECT_TRUE(response->headers != NULL);
2285 EXPECT_TRUE(response->was_fetched_via_spdy); 2296 EXPECT_TRUE(response->was_fetched_via_spdy);
2286 out.status_line = response->headers->GetStatusLine(); 2297 out.status_line = response->headers->GetStatusLine();
2287 out.response_info = *response; // Make a copy so we can verify. 2298 out.response_info = *response; // Make a copy so we can verify.
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2390 HttpRequestInfo request; 2401 HttpRequestInfo request;
2391 request.method = "GET"; 2402 request.method = "GET";
2392 request.url = GURL("http://www.google.com/"); 2403 request.url = GURL("http://www.google.com/");
2393 request.load_flags = 0; 2404 request.load_flags = 0;
2394 2405
2395 scoped_refptr<DelayedSocketData> data( 2406 scoped_refptr<DelayedSocketData> data(
2396 new DelayedSocketData(1, reads, arraysize(reads), 2407 new DelayedSocketData(1, reads, arraysize(reads),
2397 writes, arraysize(writes))); 2408 writes, arraysize(writes)));
2398 TransactionHelperResult out = TransactionHelperWithSession(request, 2409 TransactionHelperResult out = TransactionHelperWithSession(request,
2399 data.get(), 2410 data.get(),
2400 NULL, 2411 BoundNetLog(),
2401 &session_deps, 2412 &session_deps,
2402 session.get()); 2413 session.get());
2403 EXPECT_EQ(OK, out.rv); 2414 EXPECT_EQ(OK, out.rv);
2404 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 2415 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
2405 EXPECT_EQ("hello!", out.response_data); 2416 EXPECT_EQ("hello!", out.response_data);
2406 2417
2407 { 2418 {
2408 // Verify we had two persisted settings. 2419 // Verify we had two persisted settings.
2409 spdy::SpdySettings saved_settings = 2420 spdy::SpdySettings saved_settings =
2410 session->spdy_settings().Get(host_port_pair); 2421 session->spdy_settings().Get(host_port_pair);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
2507 HttpRequestInfo request; 2518 HttpRequestInfo request;
2508 request.method = "GET"; 2519 request.method = "GET";
2509 request.url = GURL("http://www.google.com/"); 2520 request.url = GURL("http://www.google.com/");
2510 request.load_flags = 0; 2521 request.load_flags = 0;
2511 2522
2512 scoped_refptr<DelayedSocketData> data( 2523 scoped_refptr<DelayedSocketData> data(
2513 new DelayedSocketData(2, reads, arraysize(reads), 2524 new DelayedSocketData(2, reads, arraysize(reads),
2514 writes, arraysize(writes))); 2525 writes, arraysize(writes)));
2515 TransactionHelperResult out = TransactionHelperWithSession(request, 2526 TransactionHelperResult out = TransactionHelperWithSession(request,
2516 data.get(), 2527 data.get(),
2517 NULL, 2528 BoundNetLog(),
2518 &session_deps, 2529 &session_deps,
2519 session.get()); 2530 session.get());
2520 EXPECT_EQ(OK, out.rv); 2531 EXPECT_EQ(OK, out.rv);
2521 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line); 2532 EXPECT_EQ("HTTP/1.1 200 OK", out.status_line);
2522 EXPECT_EQ("hello!", out.response_data); 2533 EXPECT_EQ("hello!", out.response_data);
2523 2534
2524 { 2535 {
2525 // Verify we had two persisted settings. 2536 // Verify we had two persisted settings.
2526 spdy::SpdySettings saved_settings = 2537 spdy::SpdySettings saved_settings =
2527 session->spdy_settings().Get(host_port_pair); 2538 session->spdy_settings().Get(host_port_pair);
(...skipping 27 matching lines...) Expand all
2555 MockRead(true, 0, 0) // EOF 2566 MockRead(true, 0, 0) // EOF
2556 }; 2567 };
2557 2568
2558 HttpRequestInfo request; 2569 HttpRequestInfo request;
2559 request.method = "GET"; 2570 request.method = "GET";
2560 request.url = GURL("http://www.google.com/"); 2571 request.url = GURL("http://www.google.com/");
2561 request.load_flags = 0; 2572 request.load_flags = 0;
2562 scoped_refptr<DelayedSocketData> data( 2573 scoped_refptr<DelayedSocketData> data(
2563 new DelayedSocketData(1, reads, arraysize(reads), 2574 new DelayedSocketData(1, reads, arraysize(reads),
2564 writes, arraysize(writes))); 2575 writes, arraysize(writes)));
2565 TransactionHelperResult out = TransactionHelper(request, data.get(), NULL); 2576 TransactionHelperResult out = TransactionHelper(request, data.get(),
2577 BoundNetLog());
2566 EXPECT_EQ(ERR_CONNECTION_CLOSED, out.rv); 2578 EXPECT_EQ(ERR_CONNECTION_CLOSED, out.rv);
2567 } 2579 }
2568 2580
2569 } // namespace net 2581 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/tcp_pinger_unittest.cc ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698