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

Unified Diff: chrome/browser/extensions/api/socket/tcp_socket_unittest.cc

Issue 10273016: Refactor the socket API to remove onEvent callback in socket.create() function. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/socket/tcp_socket_unittest.cc
diff --git a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc b/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc
index d190cc94c96d59da0ae63760acaf3f1c53c3d3bb..5052e66fa333c9ffd63b0281ed02a3bb0897c1fe 100644
--- a/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc
+++ b/chrome/browser/extensions/api/socket/tcp_socket_unittest.cc
@@ -53,42 +53,61 @@ class MockAPIResourceEventNotifier : public APIResourceEventNotifier {
virtual ~MockAPIResourceEventNotifier() {}
};
+class CompleteHandler {
+ public:
+ CompleteHandler() {}
+ MOCK_METHOD1(OnComplete, void(int result_code));
+ MOCK_METHOD2(OnReadComplete, void(int result_code,
+ scoped_refptr<net::IOBuffer> io_buffer));
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CompleteHandler);
+};
+
+
TEST(SocketTest, TestTCPSocketRead) {
net::AddressList address_list;
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list);
APIResourceEventNotifier* notifier = new MockAPIResourceEventNotifier();
+ CompleteHandler handler;
scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
tcp_client_socket, notifier));
EXPECT_CALL(*tcp_client_socket, Read(_, _, _))
.Times(1);
+ EXPECT_CALL(handler, OnReadComplete(_, _))
+ .Times(1);
- scoped_refptr<net::IOBufferWithSize> io_buffer(
- new net::IOBufferWithSize(512));
- socket->Read(io_buffer.get(), io_buffer->size());
+ const int count = 512;
+ socket->Read(count, base::Bind(&CompleteHandler::OnReadComplete,
+ base::Unretained(&handler)));
}
TEST(SocketTest, TestTCPSocketWrite) {
net::AddressList address_list;
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list);
APIResourceEventNotifier* notifier = new MockAPIResourceEventNotifier();
+ CompleteHandler handler;
scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
tcp_client_socket, notifier));
EXPECT_CALL(*tcp_client_socket, Write(_, _, _))
.Times(1);
+ EXPECT_CALL(handler, OnComplete(_))
+ .Times(1);
scoped_refptr<net::IOBufferWithSize> io_buffer(
new net::IOBufferWithSize(256));
- socket->Write(io_buffer.get(), io_buffer->size());
+ socket->Write(io_buffer.get(), io_buffer->size(),
+ base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler)));
}
TEST(SocketTest, TestTCPSocketBlockedWrite) {
net::AddressList address_list;
MockTCPSocket* tcp_client_socket = new MockTCPSocket(address_list);
MockAPIResourceEventNotifier* notifier = new MockAPIResourceEventNotifier();
+ CompleteHandler handler;
scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
tcp_client_socket, notifier));
@@ -98,15 +117,14 @@ TEST(SocketTest, TestTCPSocketBlockedWrite) {
.Times(1)
.WillOnce(testing::DoAll(SaveArg<2>(&callback),
Return(net::ERR_IO_PENDING)));
-
scoped_refptr<net::IOBufferWithSize> io_buffer(new net::IOBufferWithSize(
1));
- ASSERT_EQ(net::ERR_IO_PENDING, socket->Write(io_buffer.get(),
- io_buffer->size()));
+ socket->Write(io_buffer.get(), io_buffer->size(),
+ base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler)));
// Good. Original call came back unable to complete. Now pretend the socket
// finished, and confirm that we passed the error back.
- EXPECT_CALL(*notifier, OnWriteComplete(42))
+ EXPECT_CALL(handler, OnComplete(42))
.Times(1);
callback.Run(42);
}
« no previous file with comments | « chrome/browser/extensions/api/socket/tcp_socket.cc ('k') | chrome/browser/extensions/api/socket/udp_socket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698