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

Side by Side Diff: net/http/http_transaction_test_util.h

Issue 1230113012: [net] Better StopCaching() handling for HttpCache::Transaction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing MockTransaction initializers Created 5 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ 5 #ifndef NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_
6 #define NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ 6 #define NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_
7 7
8 #include "net/http/http_transaction.h" 8 #include "net/http/http_transaction.h"
9 9
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 TEST_MODE_SYNC_NET_READ = 1 << 1, 45 TEST_MODE_SYNC_NET_READ = 1 << 1,
46 TEST_MODE_SYNC_CACHE_START = 1 << 2, 46 TEST_MODE_SYNC_CACHE_START = 1 << 2,
47 TEST_MODE_SYNC_CACHE_READ = 1 << 3, 47 TEST_MODE_SYNC_CACHE_READ = 1 << 3,
48 TEST_MODE_SYNC_CACHE_WRITE = 1 << 4, 48 TEST_MODE_SYNC_CACHE_WRITE = 1 << 4,
49 TEST_MODE_SYNC_ALL = (TEST_MODE_SYNC_NET_START | TEST_MODE_SYNC_NET_READ | 49 TEST_MODE_SYNC_ALL = (TEST_MODE_SYNC_NET_START | TEST_MODE_SYNC_NET_READ |
50 TEST_MODE_SYNC_CACHE_START | TEST_MODE_SYNC_CACHE_READ | 50 TEST_MODE_SYNC_CACHE_START | TEST_MODE_SYNC_CACHE_READ |
51 TEST_MODE_SYNC_CACHE_WRITE), 51 TEST_MODE_SYNC_CACHE_WRITE),
52 TEST_MODE_SLOW_READ = 1 << 5 52 TEST_MODE_SLOW_READ = 1 << 5
53 }; 53 };
54 54
55 typedef void (*MockTransactionHandler)(const HttpRequestInfo* request, 55 using MockTransactionReadHandler = int (*)(int64 content_length,
56 std::string* response_status, 56 int64 offset,
57 std::string* response_headers, 57 IOBuffer* buf,
58 std::string* response_data); 58 int buf_len);
59 using MockTransactionHandler = void (*)(const HttpRequestInfo* request,
60 std::string* response_status,
61 std::string* response_headers,
62 std::string* response_data);
59 63
60 struct MockTransaction { 64 struct MockTransaction {
61 const char* url; 65 const char* url;
62 const char* method; 66 const char* method;
63 // If |request_time| is unspecified, the current time will be used. 67 // If |request_time| is unspecified, the current time will be used.
64 base::Time request_time; 68 base::Time request_time;
65 const char* request_headers; 69 const char* request_headers;
66 int load_flags; 70 int load_flags;
67 const char* status; 71 const char* status;
68 const char* response_headers; 72 const char* response_headers;
69 // If |response_time| is unspecified, the current time will be used. 73 // If |response_time| is unspecified, the current time will be used.
70 base::Time response_time; 74 base::Time response_time;
71 const char* data; 75 const char* data;
72 int test_mode; 76 int test_mode;
73 MockTransactionHandler handler; 77 MockTransactionHandler handler;
78 MockTransactionReadHandler read_handler;
74 scoped_refptr<X509Certificate> cert; 79 scoped_refptr<X509Certificate> cert;
75 CertStatus cert_status; 80 CertStatus cert_status;
76 int ssl_connection_status; 81 int ssl_connection_status;
77 // Value returned by MockNetworkTransaction::Start (potentially 82 // Value returned by MockNetworkTransaction::Start (potentially
78 // asynchronously if |!(test_mode & TEST_MODE_SYNC_NET_START)|.) 83 // asynchronously if |!(test_mode & TEST_MODE_SYNC_NET_START)|.)
79 Error return_code; 84 Error return_code;
80 }; 85 };
81 86
82 extern const MockTransaction kSimpleGET_Transaction; 87 extern const MockTransaction kSimpleGET_Transaction;
83 extern const MockTransaction kSimplePOST_Transaction; 88 extern const MockTransaction kSimplePOST_Transaction;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 private: 249 private:
245 int StartInternal(const HttpRequestInfo* request, 250 int StartInternal(const HttpRequestInfo* request,
246 const CompletionCallback& callback, 251 const CompletionCallback& callback,
247 const BoundNetLog& net_log); 252 const BoundNetLog& net_log);
248 void CallbackLater(const CompletionCallback& callback, int result); 253 void CallbackLater(const CompletionCallback& callback, int result);
249 void RunCallback(const CompletionCallback& callback, int result); 254 void RunCallback(const CompletionCallback& callback, int result);
250 255
251 const HttpRequestInfo* request_; 256 const HttpRequestInfo* request_;
252 HttpResponseInfo response_; 257 HttpResponseInfo response_;
253 std::string data_; 258 std::string data_;
254 int data_cursor_; 259 int64 data_cursor_;
260 int64 content_length_;
255 int test_mode_; 261 int test_mode_;
256 RequestPriority priority_; 262 RequestPriority priority_;
263 MockTransactionReadHandler read_handler_;
257 CreateHelper* websocket_handshake_stream_create_helper_; 264 CreateHelper* websocket_handshake_stream_create_helper_;
265 BeforeNetworkStartCallback before_network_start_callback_;
258 base::WeakPtr<MockNetworkLayer> transaction_factory_; 266 base::WeakPtr<MockNetworkLayer> transaction_factory_;
259 int64 received_bytes_; 267 int64 received_bytes_;
260 int64_t sent_bytes_; 268 int64_t sent_bytes_;
261 269
262 // NetLog ID of the fake / non-existent underlying socket used by the 270 // NetLog ID of the fake / non-existent underlying socket used by the
263 // connection. Requires Start() be passed a BoundNetLog with a real NetLog to 271 // connection. Requires Start() be passed a BoundNetLog with a real NetLog to
264 // be initialized. 272 // be initialized.
265 unsigned int socket_log_id_; 273 unsigned int socket_log_id_;
266 274
267 base::WeakPtrFactory<MockNetworkTransaction> weak_factory_; 275 base::WeakPtrFactory<MockNetworkTransaction> weak_factory_;
268 276
269 }; 277 };
270 278
271 class MockNetworkLayer : public HttpTransactionFactory, 279 class MockNetworkLayer : public HttpTransactionFactory,
272 public base::SupportsWeakPtr<MockNetworkLayer> { 280 public base::SupportsWeakPtr<MockNetworkLayer> {
273 public: 281 public:
274 MockNetworkLayer(); 282 MockNetworkLayer();
275 ~MockNetworkLayer() override; 283 ~MockNetworkLayer() override;
276 284
277 int transaction_count() const { return transaction_count_; } 285 int transaction_count() const { return transaction_count_; }
278 bool done_reading_called() const { return done_reading_called_; } 286 bool done_reading_called() const { return done_reading_called_; }
279 bool stop_caching_called() const { return stop_caching_called_; } 287 bool stop_caching_called() const { return stop_caching_called_; }
280 void TransactionDoneReading(); 288 void TransactionDoneReading();
281 void TransactionStopCaching(); 289 void TransactionStopCaching();
282 290
291 // Resets the transaction count. Can be called after test setup in order to
292 // make test expectations independent of how test setup is performed.
293 void ResetTransactionCount();
294
283 // Returns the last priority passed to CreateTransaction, or 295 // Returns the last priority passed to CreateTransaction, or
284 // DEFAULT_PRIORITY if it hasn't been called yet. 296 // DEFAULT_PRIORITY if it hasn't been called yet.
285 RequestPriority last_create_transaction_priority() const { 297 RequestPriority last_create_transaction_priority() const {
286 return last_create_transaction_priority_; 298 return last_create_transaction_priority_;
287 } 299 }
288 300
289 // Returns the last transaction created by 301 // Returns the last transaction created by
290 // CreateTransaction. Returns a NULL WeakPtr if one has not been 302 // CreateTransaction. Returns a NULL WeakPtr if one has not been
291 // created yet, or the last transaction has been destroyed, or 303 // created yet, or the last transaction has been destroyed, or
292 // ClearLastTransaction() has been called and a new transaction 304 // ClearLastTransaction() has been called and a new transaction
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 341
330 //----------------------------------------------------------------------------- 342 //-----------------------------------------------------------------------------
331 // helpers 343 // helpers
332 344
333 // read the transaction completely 345 // read the transaction completely
334 int ReadTransaction(HttpTransaction* trans, std::string* result); 346 int ReadTransaction(HttpTransaction* trans, std::string* result);
335 347
336 } // namespace net 348 } // namespace net
337 349
338 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ 350 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698