summaryrefslogtreecommitdiffstats
path: root/net/http/http_transaction_unittest.h
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-25 23:48:06 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-25 23:48:06 +0000
commit472ce96a4b839814ed93c26d35d07c78de019b17 (patch)
tree8355f2a490ce20c4be7485f40505544e3d602a26 /net/http/http_transaction_unittest.h
parentb597956cd427a3b830a498c69602753ce6117119 (diff)
downloadchromium_src-472ce96a4b839814ed93c26d35d07c78de019b17.zip
chromium_src-472ce96a4b839814ed93c26d35d07c78de019b17.tar.gz
chromium_src-472ce96a4b839814ed93c26d35d07c78de019b17.tar.bz2
Clean up net unit testing code.
- Move code included from blah_unittest.h (where blah_unittest.cc has actual unittests) into their own files, often completely out-of-lining the definitions. - Remove anonymous namespaces from headers. - Reorder method declarations. - Make other unit test link against net_test_support instead of reaching in and including .h files in their targets directly. BUG=68682 TEST=compiles Review URL: http://codereview.chromium.org/6264013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72562 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http/http_transaction_unittest.h')
-rw-r--r--net/http/http_transaction_unittest.h217
1 files changed, 40 insertions, 177 deletions
diff --git a/net/http/http_transaction_unittest.h b/net/http/http_transaction_unittest.h
index 3149534..0a11bb5 100644
--- a/net/http/http_transaction_unittest.h
+++ b/net/http/http_transaction_unittest.h
@@ -8,15 +8,11 @@
#include "net/http/http_transaction.h"
-#include <algorithm>
#include <string>
#include "base/callback.h"
#include "base/compiler_specific.h"
-#include "base/message_loop.h"
#include "base/string16.h"
-#include "base/string_util.h"
-#include "base/stringprintf.h"
#include "net/base/io_buffer.h"
#include "net/base/load_flags.h"
#include "net/base/net_errors.h"
@@ -27,6 +23,10 @@
#include "net/http/http_response_headers.h"
#include "net/http/http_response_info.h"
+namespace net {
+class IOBuffer;
+}
+
//-----------------------------------------------------------------------------
// mock transaction data
@@ -97,12 +97,7 @@ struct ScopedMockTransaction : MockTransaction {
class MockHttpRequest : public net::HttpRequestInfo {
public:
- explicit MockHttpRequest(const MockTransaction& t) {
- url = GURL(t.url);
- method = t.method;
- extra_headers.AddHeadersFromString(t.request_headers);
- load_flags = t.load_flags;
- }
+ explicit MockHttpRequest(const MockTransaction& t);
};
//-----------------------------------------------------------------------------
@@ -110,25 +105,11 @@ class MockHttpRequest : public net::HttpRequestInfo {
class TestTransactionConsumer : public CallbackRunner< Tuple1<int> > {
public:
- explicit TestTransactionConsumer(net::HttpTransactionFactory* factory)
- : state_(IDLE),
- trans_(NULL),
- error_(net::OK) {
- // Disregard the error code.
- factory->CreateTransaction(&trans_);
- ++quit_counter_;
- }
-
- ~TestTransactionConsumer() {
- }
+ explicit TestTransactionConsumer(net::HttpTransactionFactory* factory);
+ virtual ~TestTransactionConsumer();
void Start(const net::HttpRequestInfo* request,
- const net::BoundNetLog& net_log) {
- state_ = STARTING;
- int result = trans_->Start(request, this, net_log);
- if (result != net::ERR_IO_PENDING)
- DidStart(result);
- }
+ const net::BoundNetLog& net_log);
bool is_done() const { return state_ == DONE; }
int error() const { return error_; }
@@ -139,60 +120,22 @@ class TestTransactionConsumer : public CallbackRunner< Tuple1<int> > {
const std::string& content() const { return content_; }
private:
- // Callback implementation:
- virtual void RunWithParams(const Tuple1<int>& params) {
- int result = params.a;
- switch (state_) {
- case STARTING:
- DidStart(result);
- break;
- case READING:
- DidRead(result);
- break;
- default:
- NOTREACHED();
- }
- }
-
- void DidStart(int result) {
- if (result != net::OK) {
- DidFinish(result);
- } else {
- Read();
- }
- }
-
- void DidRead(int result) {
- if (result <= 0) {
- DidFinish(result);
- } else {
- content_.append(read_buf_->data(), result);
- Read();
- }
- }
-
- void DidFinish(int result) {
- state_ = DONE;
- error_ = result;
- if (--quit_counter_ == 0)
- MessageLoop::current()->Quit();
- }
-
- void Read() {
- state_ = READING;
- read_buf_ = new net::IOBuffer(1024);
- int result = trans_->Read(read_buf_, 1024, this);
- if (result != net::ERR_IO_PENDING)
- DidRead(result);
- }
-
enum State {
IDLE,
STARTING,
READING,
DONE
- } state_;
+ };
+
+ void DidStart(int result);
+ void DidRead(int result);
+ void DidFinish(int result);
+ void Read();
+
+ // Callback implementation:
+ virtual void RunWithParams(const Tuple1<int>& params);
+ State state_;
scoped_ptr<net::HttpTransaction> trans_;
std::string content_;
scoped_refptr<net::IOBuffer> read_buf_;
@@ -210,107 +153,38 @@ class TestTransactionConsumer : public CallbackRunner< Tuple1<int> > {
// HttpCache implementation.
class MockNetworkTransaction : public net::HttpTransaction {
public:
- MockNetworkTransaction() :
- ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)), data_cursor_(0) {
- }
+ MockNetworkTransaction();
+ virtual ~MockNetworkTransaction();
virtual int Start(const net::HttpRequestInfo* request,
net::CompletionCallback* callback,
- const net::BoundNetLog& net_log) {
- const MockTransaction* t = FindMockTransaction(request->url);
- if (!t)
- return net::ERR_FAILED;
-
- std::string resp_status = t->status;
- std::string resp_headers = t->response_headers;
- std::string resp_data = t->data;
- if (t->handler)
- (t->handler)(request, &resp_status, &resp_headers, &resp_data);
-
- std::string header_data = base::StringPrintf(
- "%s\n%s\n", resp_status.c_str(), resp_headers.c_str());
- std::replace(header_data.begin(), header_data.end(), '\n', '\0');
-
- response_.request_time = base::Time::Now();
- if (!t->request_time.is_null())
- response_.request_time = t->request_time;
-
- response_.was_cached = false;
+ const net::BoundNetLog& net_log);
- response_.response_time = base::Time::Now();
- if (!t->response_time.is_null())
- response_.response_time = t->response_time;
-
- response_.headers = new net::HttpResponseHeaders(header_data);
- response_.ssl_info.cert_status = t->cert_status;
- data_ = resp_data;
- test_mode_ = t->test_mode;
-
- if (test_mode_ & TEST_MODE_SYNC_NET_START)
- return net::OK;
-
- CallbackLater(callback, net::OK);
- return net::ERR_IO_PENDING;
- }
-
- virtual int RestartIgnoringLastError(net::CompletionCallback* callback) {
- return net::ERR_FAILED;
- }
+ virtual int RestartIgnoringLastError(net::CompletionCallback* callback);
virtual int RestartWithCertificate(net::X509Certificate* client_cert,
- net::CompletionCallback* callback) {
- return net::ERR_FAILED;
- }
+ net::CompletionCallback* callback);
virtual int RestartWithAuth(const string16& username,
const string16& password,
- net::CompletionCallback* callback) {
- return net::ERR_FAILED;
- }
+ net::CompletionCallback* callback);
- virtual bool IsReadyToRestartForAuth() {
- return false;
- }
+ virtual bool IsReadyToRestartForAuth();
virtual int Read(net::IOBuffer* buf, int buf_len,
- net::CompletionCallback* callback) {
- int data_len = static_cast<int>(data_.size());
- int num = std::min(buf_len, data_len - data_cursor_);
- if (num) {
- memcpy(buf->data(), data_.data() + data_cursor_, num);
- data_cursor_ += num;
- }
- if (test_mode_ & TEST_MODE_SYNC_NET_READ)
- return num;
-
- CallbackLater(callback, num);
- return net::ERR_IO_PENDING;
- }
+ net::CompletionCallback* callback);
- virtual void StopCaching() {}
+ virtual void StopCaching();
- virtual const net::HttpResponseInfo* GetResponseInfo() const {
- return &response_;
- }
+ virtual const net::HttpResponseInfo* GetResponseInfo() const;
- virtual net::LoadState GetLoadState() const {
- if (data_cursor_)
- return net::LOAD_STATE_READING_RESPONSE;
- return net::LOAD_STATE_IDLE;
- }
+ virtual net::LoadState GetLoadState() const;
- virtual uint64 GetUploadProgress() const {
- return 0;
- }
+ virtual uint64 GetUploadProgress() const;
private:
- void CallbackLater(net::CompletionCallback* callback, int result) {
- MessageLoop::current()->PostTask(FROM_HERE, task_factory_.NewRunnableMethod(
- &MockNetworkTransaction::RunCallback, callback, result));
- }
- void RunCallback(net::CompletionCallback* callback, int result) {
- callback->Run(result);
- }
+ void CallbackLater(net::CompletionCallback* callback, int result);
+ void RunCallback(net::CompletionCallback* callback, int result);
ScopedRunnableMethodFactory<MockNetworkTransaction> task_factory_;
net::HttpResponseInfo response_;
@@ -321,32 +195,21 @@ class MockNetworkTransaction : public net::HttpTransaction {
class MockNetworkLayer : public net::HttpTransactionFactory {
public:
- MockNetworkLayer() : transaction_count_(0) {
- }
-
- virtual int CreateTransaction(scoped_ptr<net::HttpTransaction>* trans) {
- transaction_count_++;
- trans->reset(new MockNetworkTransaction());
- return net::OK;
- }
-
- virtual net::HttpCache* GetCache() {
- return NULL;
- }
-
- virtual net::HttpNetworkSession* GetSession() {
- return NULL;
- }
-
- virtual void Suspend(bool suspend) {}
+ MockNetworkLayer();
+ virtual ~MockNetworkLayer();
int transaction_count() const { return transaction_count_; }
+ // net::HttpTransactionFactory:
+ virtual int CreateTransaction(scoped_ptr<net::HttpTransaction>* trans);
+ virtual net::HttpCache* GetCache();
+ virtual net::HttpNetworkSession* GetSession();
+ virtual void Suspend(bool suspend);
+
private:
int transaction_count_;
};
-
//-----------------------------------------------------------------------------
// helpers