summaryrefslogtreecommitdiffstats
path: root/net/socket/socket_test_util.h
Commit message (Collapse)AuthorAgeFilesLines
* This change enables FieldTrial for SPDY. When --use-spdy=npn is used, field ↵lzheng@chromium.org2010-05-211-1/+4
| | | | | | | | | | | | | | | | | test won't be enabled. However, when that flag is missing, A/B test is added to browser_main.cc. Trial A: use npn and spdy. B: use npn but no spdy. C: do nothing. A and B are set to zero for now The histograms we collect are: 1. Page begin to finish time when spdy is enabled/disabled across all sites; 2. Page begin to finish time when spdy is used on sites that support spdy and when spdy is intentionally ignored. BUG=43997 TEST=Don't use --use-spdy=npn, manually change _npn_nospdy and _npn_withspdy percentile and go to spdy supported sites. Review URL: http://codereview.chromium.org/2036012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47896 0039d316-1c4b-4281-b951-d872f2087c98
* Pass nulls through test sockets.gavinp@chromium.org2010-05-101-1/+5
| | | | | | | | | | | | | Fixing 35050, one of the tests I wrote for EPSV required NULS go through the testing framework. That created issue 42432 which covers permitting NULs through our socket tests. I added an interface to SimulateRead which passes in an explicit length, and moved as much of that into ftp_network_transaction_unittest as possible. BUG=42432 TEST=see the modified Epsv test in ftp_network_transaction_unittest.cc Review URL: http://codereview.chromium.org/1949003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46813 0039d316-1c4b-4281-b951-d872f2087c98
* Get tests working for Alternate-Protocol and proxies.willchan@chromium.org2010-05-051-3/+4
| | | | | | | | Fixed some bugs along the way. Review URL: http://codereview.chromium.org/1947004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46509 0039d316-1c4b-4281-b951-d872f2087c98
* Move OrderedSocketData to SocketTestUtil so it can be used elsewhere.willchan@chromium.org2010-05-041-0/+51
| | | | | | Review URL: http://codereview.chromium.org/1756020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46325 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove the implicit constructor for BoundNetLog that allowed ↵eroman@chromium.org2010-04-281-1/+1
| | | | | | | | | passing NULL in place of a const BoundNetLog&. BUG=37421 Review URL: http://codereview.chromium.org/1783008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45851 0039d316-1c4b-4281-b951-d872f2087c98
* SPDY: Fix Alternate-Protocol.willchan@chromium.org2010-04-261-3/+48
| | | | | | | | | | | | (1) In DoInitConnection() we do the existing spdy session check. If it exists there, then we assuem it exists in DoSpdySendRequest(). Unfortunately, we didn't do the same check. Use a member variable to store the HostPortPair. (2) In DoInitConnection(), we used the scheme://urlhost:urlport as the connection group. With Alternate-Protocol, we used the scheme://urlhost:urlport even though we were connecting to a different port, with a different protocol (TLS). This means we would mix conflicting sockets in the ClientSocketPool. I fix this by dropping scheme://, since it's unnecessary, and would cause us not to share SSL sockets in different connection groups (since the specified scheme might be http://, but due to Alternate-Protocol, we actually do an SSL connect). I also don't use the urlhost:urlport, but use the host:port that we actually connect to. TODO(willchan): Fix Alternate-Protocol so it works properly with proxies. I need to change CONNECT for http proxies and patch the SOCKs connects. Review URL: http://codereview.chromium.org/1755005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45627 0039d316-1c4b-4281-b951-d872f2087c98
* Add net log entries that summarize transmit and receive byte counts.vandebo@chromium.org2010-04-231-11/+12
| | | | | | | | | | | | | | | | | | | | | Tx/Rx summaries are integrated into the net log at the last point that bytes were transmitted or received. Hopefully this will help resolve http://crbug.com/37729 by showing if we've received bytes over the network when we hit the "Waiting for cache" bug. This change also modernizes the use of NetLog: - ClientSocket now has a net_log() accessor - ClientSocket::Connect no longer takes a NetLog, instead the TCPClientSocket constructor takes one, others use their transport socket's NetLog - TCPClientSocket creates a new source id with source type SOCKET Also updates PassiveLogCollector infrastructure: - The LiveRequestsObserver lets a RequestTracker update a RequestInfo just before it is displayed. This allows ConnectJobs to be associated with URLRequests while connecting and then reassociated if they are late-bound to a different request. BUG=37729 TEST=tx/rx lines show up in chrome://net-internals/ Review URL: http://codereview.chromium.org/1696005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45449 0039d316-1c4b-4281-b951-d872f2087c98
* Unlike a real TCPClientSocket, the MockTCPClientSocket was still callingmbelshe@chromium.org2010-04-221-0/+1
| | | | | | | | | | | | | | | the pending_callback_ for IO after being disconnected. This did cause a bug in one of the SpdySession tests, SpdyNetworkTransactionTest.WriteError, since the SpdySession would delete itself shortly after calling Disconnect on its socket. Contributed by gavinp@google.com BUG=41394 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45317 0039d316-1c4b-4281-b951-d872f2087c98
* SpdySession now sets the following fields in HttpResponseInfo: ahendrickson@google.com2010-03-251-5/+42
| | | | | | | | | | | | | | | | | | | | | | | request_time response_time vary_data There is also a unit test to exercise the new functionality. - Changed CreateSpdyHeadersFromHttpRequest() to use std::string::append() rather than std::string::operator+() to append a single '\0' character to the string, as the former does nothing. - Now using SpdyFramer. - The unit tests now include all server push cases. BUG=34505 TEST=Run netunittests.exe --gtest_filter=SpdyNetworkTransactionTest.* Review URL: http://codereview.chromium.org/634002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42660 0039d316-1c4b-4281-b951-d872f2087c98
* Implement SOCKSClientSocketPoolvandebo@chromium.org2010-03-221-2/+15
| | | | | | | | | | | | | | This is the first layered pool, so there are several infrastructure changes in this change as well. Add a ConnectionTimeout method to pools so that layered pools can timeout each phase. Add a name method to pools to support per pool UMA histograms. Change SOCKS sockets to take a ClientSocketHandle instead of a ClientSocket BUG=30357 (blocks an SSL Pool) TEST=existing unit tests Review URL: http://codereview.chromium.org/668097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42231 0039d316-1c4b-4281-b951-d872f2087c98
* Generalize the net module's LoadLog facility from a passive container, to an ↵eroman@chromium.org2010-03-161-4/+6
| | | | | | | | | | | | | | | | event stream (NetLog). This makes it possible to associate a single NetLog with a URLRequestContext, and then attach observers to that log to watch the stream of events. This changelist attempts to do the most direct translation, so there will be subsequent iterations to clean up. The user-visible behavior should remain unchanged. BUG=37421 Review URL: http://codereview.chromium.org/848006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41689 0039d316-1c4b-4281-b951-d872f2087c98
* Really connect to the same server in FTP network transaction.phajdan.jr@chromium.org2010-02-201-3/+3
| | | | | | | | | | | | Also create necessary infrastructure to know the address a client socket is connected to. TEST=Covered by net_unittests. BUG=35670 Review URL: http://codereview.chromium.org/598071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39559 0039d316-1c4b-4281-b951-d872f2087c98
* Pulled out Callback code into base/callback.h. This is the first step ↵akalin@chromium.org2010-02-191-0/+1
| | | | | | | | | | | | | towards redoing the Callback interfaces. Added and removed includes as needed. BUG=35223 TEST=trybots Review URL: http://codereview.chromium.org/646061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39419 0039d316-1c4b-4281-b951-d872f2087c98
* Add bounds checking to StaticSocketDataProvider, to make tests more reliablephajdan.jr@chromium.org2010-02-091-12/+17
| | | | | | | | | | | when they fail. TEST=net_unittests BUG=27567 Review URL: http://codereview.chromium.org/582020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38453 0039d316-1c4b-4281-b951-d872f2087c98
* Rename GetNextProtocol -> GetNextProtoagl@chromium.org2009-12-111-1/+1
| | | | | | | | Following up on wtc's comments. http://codereview.chromium.org/484005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34370 0039d316-1c4b-4281-b951-d872f2087c98
* Add GetNextProtocol method to SSLClientSocket.agl@chromium.org2009-12-101-0/+1
| | | | | | http://codereview.chromium.org/484005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34288 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bug where FLIP sessions can crash if the connect fails.mbelshe@google.com2009-12-041-0/+1
| | | | | | | | | | | | | | Update the mocksocket so that we can test connection statuses. Verified that the test case crashes without the flip_session.cc fix. BUG=none TEST=FlipNetworkTransaction.ConnectFailure Review URL: http://codereview.chromium.org/462023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33792 0039d316-1c4b-4281-b951-d872f2087c98
* Update network priorities to support better granularitymbelshe@google.com2009-12-021-1/+1
| | | | | | | | | | | | | | of resource loading from WebKit into the network stack. In order to fully make these work, webkit changes are needed as well. BUG=none TEST=none Review URL: http://codereview.chromium.org/452033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33546 0039d316-1c4b-4281-b951-d872f2087c98
* Remove extraneous semicolons.wtc@chromium.org2009-12-011-3/+3
| | | | | | | | | R=mbelshe BUG=none TEST=no compilation errors Review URL: http://codereview.chromium.org/450026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33407 0039d316-1c4b-4281-b951-d872f2087c98
* Define the GetPeerName method of the ClientSocket interface for allwtc@chromium.org2009-11-301-7/+4
| | | | | | | | | | | | | | | platforms, in preparation for using SSLClientSocketNSS on Windows. nss_memio.c does not need to include <unistd.h> Fix style nits. R=eroman BUG=28744 TEST=none Review URL: http://codereview.chromium.org/440031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33319 0039d316-1c4b-4281-b951-d872f2087c98
* Add a default constructor to the MockRead struct sombelshe@google.com2009-11-241-0/+3
| | | | | | | | | | | | that we can do things like dynamically create an array of them. BUG=none TEST=none Review URL: http://codereview.chromium.org/434039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32951 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 32807, which was incorrectly reverted.mbelshe@google.com2009-11-231-0/+2
| | | | | | | | | | | | | | | | | | The async notification via OnReadComplete was still posting a callback through this message loop. This makes it difficult to write tests, as callbacks already scheduled will go in front of the OnReadComplete(). Treat the notifications through OnReadComplete as synchronous always. This doesn't effect existing tests, but makes my new tests possible. BUG=none TEST=this is the test! Review URL: http://codereview.chromium.org/436014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32886 0039d316-1c4b-4281-b951-d872f2087c98
* Believe this causes the valgrind linux test failures. Since it is a small ↵tim@chromium.org2009-11-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | change I decided to revert instead of disable the test. Revert 32807 - The async notification via OnReadComplete was still posting a callback through this message loop. This makes it difficult to write tests, as callbacks already scheduled will go in front of the OnReadComplete(). Treat the notifications through OnReadComplete as synchronous always. This doesn't effect existing tests, but makes my new tests possible. TBR=mbelshe BUG=none TEST=this is the test! Review URL: http://codereview.chromium.org/414073 TBR=mbelshe@google.com Review URL: http://codereview.chromium.org/431016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32838 0039d316-1c4b-4281-b951-d872f2087c98
* The async notification via OnReadComplete was still postingmbelshe@google.com2009-11-231-0/+2
| | | | | | | | | | | | | | | | | a callback through this message loop. This makes it difficult to write tests, as callbacks already scheduled will go in front of the OnReadComplete(). Treat the notifications through OnReadComplete as synchronous always. This doesn't effect existing tests, but makes my new tests possible. BUG=none TEST=this is the test! Review URL: http://codereview.chromium.org/414073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32807 0039d316-1c4b-4281-b951-d872f2087c98
* After draining the body of a 401/407 response, verify thatwtc@chromium.org2009-11-121-0/+18
| | | | | | | | | | | | | | | | | the keep-alive connection is still connected and idle before reusing it for authentication restart. An impatient server may have closed the connection while waiting for the user to enter the username and password. In socket_test_util.cc, return the mock ERR_UNEXPECTED error synchronously. R=eroman BUG=21675 TEST=new unit test Review URL: http://codereview.chromium.org/389007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31846 0039d316-1c4b-4281-b951-d872f2087c98
* Enable async IO completions on MockSockets through thembelshe@google.com2009-11-111-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | SocketDataProvider. This makes a few changes: - The SocketDataProvider::GetNextRead() is now allowed to return a result of ERR_IO_PENDING. Previously, this was just an error. Now, this informs the MockClientSocket using the SocketDataProvider that the Mock IO will be completely asynchronously. - MockClientSocket implements a new method called OnReadComplete(). This method is used to asynchronously complete a Read from the SocketDataProvider. The MockClientSocket, after receiving ERR_IO_PENDING from SocketDataProvider::GetNextRead will be blocked until this call is made. The rest of the patch is just refactoring the MockTCPClientSocket to implement a true async-io simulation. It needs to record the user buffer from the initial read, and then fill it when the data is provided. BUG=none TEST=<this is for better testing> Review URL: http://codereview.chromium.org/392003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31723 0039d316-1c4b-4281-b951-d872f2087c98
* There was confusion in the mock socket classes due tombelshe@google.com2009-11-111-44/+46
| | | | | | | | | | | | | | | | | | | overlapping names. The MockSocket is not actually a socket. It is an interface for fetching data for reads and writes on a socket. The MockClientSocket and MockTCPClientSocket are the actual sockets. Rename MockSocket to SocketDataProvider. Rename SSLMockSocket to SSLSocketDataProvider. Update all tests to reflect name change. BUG=none TEST=none Review URL: http://codereview.chromium.org/384024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31640 0039d316-1c4b-4281-b951-d872f2087c98
* Add a couple of methods to the StaticMockSocket for verifyingmbelshe@google.com2009-11-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | that all data has been consumed from the Mock socket. Tests can optionally use this by including a zero-length read at the end of their data and then verifying that it is at the end. Example: MockWrite writes[] = { MockWrite( ... <data> ...), MockWrite( ... <data> ...), MockWrite( ... <data> ...), MockWrite(true, 0, 0), // Marks EOF } <run tests> EXPECT_EQ(mock_socket.at_write_eof()); TEST=this is the test BUG=none Review URL: http://codereview.chromium.org/385011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31605 0039d316-1c4b-4281-b951-d872f2087c98
* Add LoadLog to ClientSocket::Connect().willchan@chromium.org2009-11-021-3/+5
| | | | | | | | TODO: Use LoadLog in FLIP code. Review URL: http://codereview.chromium.org/344026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30765 0039d316-1c4b-4281-b951-d872f2087c98
* Make our Mock Sockets capable of running full duplex.mbelshe@google.com2009-10-091-2/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/273013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28622 0039d316-1c4b-4281-b951-d872f2087c98
* Add methods for setting socket buffers to the Socket mbelshe@google.com2009-09-091-0/+2
| | | | | | | | | | | | class. Also add a few stats counters for TCP read/write stats. BUG=none TEST=none Review URL: http://codereview.chromium.org/199048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25803 0039d316-1c4b-4281-b951-d872f2087c98
* Don't trust server's PASV response that much in FtpNetworkTransaction.phajdan.jr@chromium.org2009-08-281-6/+14
| | | | | | | | | TEST=Covered by net_unittests. http://crbug.com/20334 Review URL: http://codereview.chromium.org/180011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24818 0039d316-1c4b-4281-b951-d872f2087c98
* Fix transaction hang when downloading certain FTP files.phajdan.jr@chromium.org2009-08-261-0/+11
| | | | | | | | | TEST=Covered by net_unittests. http://crbug.com/19855 Review URL: http://codereview.chromium.org/174428 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24492 0039d316-1c4b-4281-b951-d872f2087c98
* Make ClientSocketHandle::Init() typesafe.willchan@chromium.org2009-08-191-7/+4
| | | | | | | | | | | Introduce a REGISTER_SOCKET_PARAMS_FOR_POOL macro to register valid SocketParams for a ClientSocketPool subtype. Update HttpNetworkSession's ClientSocketPool to return the concrete TCPClientSocketPool instead of the parent interface. Renamed the member variable&accessor. Updated tests. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/173018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23743 0039d316-1c4b-4281-b951-d872f2087c98
* Change ClientSocketHandle to take the pool as a parameter to Init() rather ↵willchan@chromium.org2009-08-181-5/+15
| | | | | | | | | | than the constructor. The purpose of this change is to allow ClientSocketHandle to be able to accept ClientSocketPools of different types, since we will want to pass a TCPClientSocketPool or an SSLClientSocketPool or whatever to it. BUG=http://crbug.com/13289 Review URL: http://codereview.chromium.org/171003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23629 0039d316-1c4b-4281-b951-d872f2087c98
* Followup after socket tests refactoring http://codereview.chromium.org/155925phajdan.jr@chromium.org2009-07-291-2/+3
| | | | | | | | | | | | | - more complete checks for data validity - private data member with getter instead of public data member, eh - replace some magic numbers with more readable constants TEST=none http://crbug.com/17445 Review URL: http://codereview.chromium.org/159514 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21957 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring in socket pool unittests:phajdan.jr@chromium.org2009-07-231-0/+69
| | | | | | | | | | | | | - share more code - improve readability - help detect cases we don't test order of all requests made TEST=Covered by net_unittests. http://crbug.com/17445 Review URL: http://codereview.chromium.org/155925 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21456 0039d316-1c4b-4281-b951-d872f2087c98
* Correctly handle multiple control response lines in new FTP transactionphajdan.jr@chromium.org2009-07-081-2/+8
| | | | | | | | | | | After this change it should correctly handle all cases of multiple 230 welcome responses. It also fixes some other related bugs. TEST=Covered by net_unittests. BUG=none Review URL: http://codereview.chromium.org/149211 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20148 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up some code not to set off coverity warnings.willchan@chromium.org2009-07-061-1/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/149149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19962 0039d316-1c4b-4281-b951-d872f2087c98
* Tests for socks4/4a implementation.arindam@chromium.org2009-06-281-0/+85
| | | | | | | | | | | Refactoring of void BuildHandshakeWriteBuffer() to const std::string BuildHandshakeWriteBuffer() const,and removing private members handshake_buf_len_ and buffer_len_ (since buffer_ is now std::string, buffer_.size()) is more than sufficient for buffer size. TEST=unittests BUG=469 Review URL: http://codereview.chromium.org/139009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19474 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 19466.thakis@chromium.org2009-06-271-85/+0
| | | | | | Review URL: http://codereview.chromium.org/150003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19468 0039d316-1c4b-4281-b951-d872f2087c98
* Tests for socks4/4a implementation.arindam@chromium.org2009-06-271-0/+85
| | | | | | | | | | | | Refactoring of void BuildHandshakeWriteBuffer() to const std::string BuildHandshakeWriteBuffer() const, and removing private members handshake_buf_len_ and buffer_len_ (since buffer_ is now std::string, buffer_.size()) is more than sufficient. TEST=unittests BUG=469 Review URL: http://codereview.chromium.org/139009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19466 0039d316-1c4b-4281-b951-d872f2087c98
* reverting the change 19354, 19356arindam@chromium.org2009-06-261-85/+0
| | | | | | | | | | | TEST=none BUG=none TBR=eroman Review URL: http://codereview.chromium.org/149076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19357 0039d316-1c4b-4281-b951-d872f2087c98
* Tests for socks4/4a implementation.arindam@chromium.org2009-06-261-0/+85
| | | | | | | | | | | | Refactoring of void BuildHandshakeWriteBuffer() to const std::string BuildHandshakeWriteBuffer() const, and removing private members handshake_buf_len_ and buffer_len_ (since buffer_ is now std::string, buffer_.size()) is more than sufficient. TEST=unittests BUG=none Review URL: http://codereview.chromium.org/139009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19354 0039d316-1c4b-4281-b951-d872f2087c98
* Make more things possible with mock sockets:phajdan.jr@chromium.org2009-06-251-9/+10
| | | | | | | | | | | | - check connection state in mock read and write - make possible simulating short reads in DynamicMockSocket TEST=none http://crbug.com/15259 Review URL: http://codereview.chromium.org/147117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19222 0039d316-1c4b-4281-b951-d872f2087c98
* Move socket related files from net/base to net/socket.willchan@chromium.org2009-06-221-0/+204
Review URL: http://codereview.chromium.org/144009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18985 0039d316-1c4b-4281-b951-d872f2087c98