| OLD | NEW |
| 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 TEST_MODE_SYNC_NET_READ = 1 << 1, | 47 TEST_MODE_SYNC_NET_READ = 1 << 1, |
| 48 TEST_MODE_SYNC_CACHE_START = 1 << 2, | 48 TEST_MODE_SYNC_CACHE_START = 1 << 2, |
| 49 TEST_MODE_SYNC_CACHE_READ = 1 << 3, | 49 TEST_MODE_SYNC_CACHE_READ = 1 << 3, |
| 50 TEST_MODE_SYNC_CACHE_WRITE = 1 << 4, | 50 TEST_MODE_SYNC_CACHE_WRITE = 1 << 4, |
| 51 TEST_MODE_SYNC_ALL = (TEST_MODE_SYNC_NET_START | TEST_MODE_SYNC_NET_READ | | 51 TEST_MODE_SYNC_ALL = (TEST_MODE_SYNC_NET_START | TEST_MODE_SYNC_NET_READ | |
| 52 TEST_MODE_SYNC_CACHE_START | TEST_MODE_SYNC_CACHE_READ | | 52 TEST_MODE_SYNC_CACHE_START | TEST_MODE_SYNC_CACHE_READ | |
| 53 TEST_MODE_SYNC_CACHE_WRITE), | 53 TEST_MODE_SYNC_CACHE_WRITE), |
| 54 TEST_MODE_SLOW_READ = 1 << 5 | 54 TEST_MODE_SLOW_READ = 1 << 5 |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 typedef void (*MockTransactionHandler)(const HttpRequestInfo* request, | 57 using MockTransactionReadHandler = int (*)(int64_t content_length, |
| 58 std::string* response_status, | 58 int64_t offset, |
| 59 std::string* response_headers, | 59 IOBuffer* buf, |
| 60 std::string* response_data); | 60 int buf_len); |
| 61 using MockTransactionHandler = void (*)(const HttpRequestInfo* request, |
| 62 std::string* response_status, |
| 63 std::string* response_headers, |
| 64 std::string* response_data); |
| 61 | 65 |
| 62 struct MockTransaction { | 66 struct MockTransaction { |
| 63 const char* url; | 67 const char* url; |
| 64 const char* method; | 68 const char* method; |
| 65 // If |request_time| is unspecified, the current time will be used. | 69 // If |request_time| is unspecified, the current time will be used. |
| 66 base::Time request_time; | 70 base::Time request_time; |
| 67 const char* request_headers; | 71 const char* request_headers; |
| 68 int load_flags; | 72 int load_flags; |
| 69 const char* status; | 73 const char* status; |
| 70 const char* response_headers; | 74 const char* response_headers; |
| 71 // If |response_time| is unspecified, the current time will be used. | 75 // If |response_time| is unspecified, the current time will be used. |
| 72 base::Time response_time; | 76 base::Time response_time; |
| 73 const char* data; | 77 const char* data; |
| 74 int test_mode; | 78 int test_mode; |
| 75 MockTransactionHandler handler; | 79 MockTransactionHandler handler; |
| 80 MockTransactionReadHandler read_handler; |
| 76 scoped_refptr<X509Certificate> cert; | 81 scoped_refptr<X509Certificate> cert; |
| 77 CertStatus cert_status; | 82 CertStatus cert_status; |
| 78 int ssl_connection_status; | 83 int ssl_connection_status; |
| 79 // Value returned by MockNetworkTransaction::Start (potentially | 84 // Value returned by MockNetworkTransaction::Start (potentially |
| 80 // asynchronously if |!(test_mode & TEST_MODE_SYNC_NET_START)|.) | 85 // asynchronously if |!(test_mode & TEST_MODE_SYNC_NET_START)|.) |
| 81 Error return_code; | 86 Error return_code; |
| 82 }; | 87 }; |
| 83 | 88 |
| 84 extern const MockTransaction kSimpleGET_Transaction; | 89 extern const MockTransaction kSimpleGET_Transaction; |
| 85 extern const MockTransaction kSimplePOST_Transaction; | 90 extern const MockTransaction kSimplePOST_Transaction; |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 private: | 256 private: |
| 252 int StartInternal(const HttpRequestInfo* request, | 257 int StartInternal(const HttpRequestInfo* request, |
| 253 const CompletionCallback& callback, | 258 const CompletionCallback& callback, |
| 254 const BoundNetLog& net_log); | 259 const BoundNetLog& net_log); |
| 255 void CallbackLater(const CompletionCallback& callback, int result); | 260 void CallbackLater(const CompletionCallback& callback, int result); |
| 256 void RunCallback(const CompletionCallback& callback, int result); | 261 void RunCallback(const CompletionCallback& callback, int result); |
| 257 | 262 |
| 258 const HttpRequestInfo* request_; | 263 const HttpRequestInfo* request_; |
| 259 HttpResponseInfo response_; | 264 HttpResponseInfo response_; |
| 260 std::string data_; | 265 std::string data_; |
| 261 int data_cursor_; | 266 int64_t data_cursor_; |
| 267 int64_t content_length_; |
| 262 int test_mode_; | 268 int test_mode_; |
| 263 RequestPriority priority_; | 269 RequestPriority priority_; |
| 270 MockTransactionReadHandler read_handler_; |
| 264 CreateHelper* websocket_handshake_stream_create_helper_; | 271 CreateHelper* websocket_handshake_stream_create_helper_; |
| 272 BeforeNetworkStartCallback before_network_start_callback_; |
| 265 base::WeakPtr<MockNetworkLayer> transaction_factory_; | 273 base::WeakPtr<MockNetworkLayer> transaction_factory_; |
| 266 int64_t received_bytes_; | 274 int64_t received_bytes_; |
| 267 int64_t sent_bytes_; | 275 int64_t sent_bytes_; |
| 268 | 276 |
| 269 // NetLog ID of the fake / non-existent underlying socket used by the | 277 // NetLog ID of the fake / non-existent underlying socket used by the |
| 270 // connection. Requires Start() be passed a BoundNetLog with a real NetLog to | 278 // connection. Requires Start() be passed a BoundNetLog with a real NetLog to |
| 271 // be initialized. | 279 // be initialized. |
| 272 unsigned int socket_log_id_; | 280 unsigned int socket_log_id_; |
| 273 | 281 |
| 274 bool done_reading_called_; | 282 bool done_reading_called_; |
| 275 | 283 |
| 276 base::WeakPtrFactory<MockNetworkTransaction> weak_factory_; | 284 base::WeakPtrFactory<MockNetworkTransaction> weak_factory_; |
| 277 | 285 |
| 278 }; | 286 }; |
| 279 | 287 |
| 280 class MockNetworkLayer : public HttpTransactionFactory, | 288 class MockNetworkLayer : public HttpTransactionFactory, |
| 281 public base::SupportsWeakPtr<MockNetworkLayer> { | 289 public base::SupportsWeakPtr<MockNetworkLayer> { |
| 282 public: | 290 public: |
| 283 MockNetworkLayer(); | 291 MockNetworkLayer(); |
| 284 ~MockNetworkLayer() override; | 292 ~MockNetworkLayer() override; |
| 285 | 293 |
| 286 int transaction_count() const { return transaction_count_; } | 294 int transaction_count() const { return transaction_count_; } |
| 287 bool done_reading_called() const { return done_reading_called_; } | 295 bool done_reading_called() const { return done_reading_called_; } |
| 288 bool stop_caching_called() const { return stop_caching_called_; } | 296 bool stop_caching_called() const { return stop_caching_called_; } |
| 289 void TransactionDoneReading(); | 297 void TransactionDoneReading(); |
| 290 void TransactionStopCaching(); | 298 void TransactionStopCaching(); |
| 291 | 299 |
| 300 // Resets the transaction count. Can be called after test setup in order to |
| 301 // make test expectations independent of how test setup is performed. |
| 302 void ResetTransactionCount(); |
| 303 |
| 292 // Returns the last priority passed to CreateTransaction, or | 304 // Returns the last priority passed to CreateTransaction, or |
| 293 // DEFAULT_PRIORITY if it hasn't been called yet. | 305 // DEFAULT_PRIORITY if it hasn't been called yet. |
| 294 RequestPriority last_create_transaction_priority() const { | 306 RequestPriority last_create_transaction_priority() const { |
| 295 return last_create_transaction_priority_; | 307 return last_create_transaction_priority_; |
| 296 } | 308 } |
| 297 | 309 |
| 298 // Returns the last transaction created by | 310 // Returns the last transaction created by |
| 299 // CreateTransaction. Returns a NULL WeakPtr if one has not been | 311 // CreateTransaction. Returns a NULL WeakPtr if one has not been |
| 300 // created yet, or the last transaction has been destroyed, or | 312 // created yet, or the last transaction has been destroyed, or |
| 301 // ClearLastTransaction() has been called and a new transaction | 313 // ClearLastTransaction() has been called and a new transaction |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 | 350 |
| 339 //----------------------------------------------------------------------------- | 351 //----------------------------------------------------------------------------- |
| 340 // helpers | 352 // helpers |
| 341 | 353 |
| 342 // read the transaction completely | 354 // read the transaction completely |
| 343 int ReadTransaction(HttpTransaction* trans, std::string* result); | 355 int ReadTransaction(HttpTransaction* trans, std::string* result); |
| 344 | 356 |
| 345 } // namespace net | 357 } // namespace net |
| 346 | 358 |
| 347 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ | 359 #endif // NET_HTTP_HTTP_TRANSACTION_UNITTEST_H_ |
| OLD | NEW |