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

Side by Side Diff: jingle/glue/channel_socket_adapter_unittest.cc

Issue 8824006: Migrate net/socket/socket.h, net/socket/stream_socket.h to base::Bind(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: small win fix Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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
csilv 2011/12/09 00:42:00 nit: include base/bind.h, base/bind_helpers.h
5 #include "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "jingle/glue/channel_socket_adapter.h" 8 #include "jingle/glue/channel_socket_adapter.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
11 #include "net/socket/socket.h" 11 #include "net/socket/socket.h"
12 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/libjingle/source/talk/p2p/base/transportchannel.h" 14 #include "third_party/libjingle/source/talk/p2p/base/transportchannel.h"
(...skipping 22 matching lines...) Expand all
37 37
38 MOCK_METHOD2(SendPacket, int(const char *data, size_t len)); 38 MOCK_METHOD2(SendPacket, int(const char *data, size_t len));
39 MOCK_METHOD2(SetOption, int(talk_base::Socket::Option opt, int value)); 39 MOCK_METHOD2(SetOption, int(talk_base::Socket::Option opt, int value));
40 MOCK_METHOD0(GetError, int()); 40 MOCK_METHOD0(GetError, int());
41 }; 41 };
42 42
43 class TransportChannelSocketAdapterTest : public testing::Test { 43 class TransportChannelSocketAdapterTest : public testing::Test {
44 public: 44 public:
45 TransportChannelSocketAdapterTest() 45 TransportChannelSocketAdapterTest()
46 : ALLOW_THIS_IN_INITIALIZER_LIST( 46 : ALLOW_THIS_IN_INITIALIZER_LIST(
47 callback_(this, &TransportChannelSocketAdapterTest::Callback)), 47 callback_(base::Bind(&TransportChannelSocketAdapterTest::Callback,
48 base::Unretained(this)))),
48 callback_result_(0) { 49 callback_result_(0) {
49 } 50 }
50 51
51 protected: 52 protected:
52 virtual void SetUp() { 53 virtual void SetUp() {
53 target_.reset(new TransportChannelSocketAdapter(&channel_)); 54 target_.reset(new TransportChannelSocketAdapter(&channel_));
54 } 55 }
55 56
56 void Callback(int result) { 57 void Callback(int result) {
57 callback_result_ = result; 58 callback_result_ = result;
58 } 59 }
59 60
60 MockTransportChannel channel_; 61 MockTransportChannel channel_;
61 scoped_ptr<TransportChannelSocketAdapter> target_; 62 scoped_ptr<TransportChannelSocketAdapter> target_;
62 net::OldCompletionCallbackImpl<TransportChannelSocketAdapterTest> callback_; 63 net::CompletionCallback callback_;
63 int callback_result_; 64 int callback_result_;
64 MessageLoopForIO message_loop_; 65 MessageLoopForIO message_loop_;
65 }; 66 };
66 67
67 // Verify that Read() returns net::ERR_IO_PENDING. 68 // Verify that Read() returns net::ERR_IO_PENDING.
68 TEST_F(TransportChannelSocketAdapterTest, Read) { 69 TEST_F(TransportChannelSocketAdapterTest, Read) {
69 scoped_refptr<IOBuffer> buffer(new IOBuffer(kBufferSize)); 70 scoped_refptr<IOBuffer> buffer(new IOBuffer(kBufferSize));
70 71
71 int result = target_->Read(buffer, kBufferSize, &callback_); 72 int result = target_->Read(buffer, kBufferSize, callback_);
72 ASSERT_EQ(net::ERR_IO_PENDING, result); 73 ASSERT_EQ(net::ERR_IO_PENDING, result);
73 74
74 channel_.SignalReadPacket(&channel_, kTestData, kTestDataSize); 75 channel_.SignalReadPacket(&channel_, kTestData, kTestDataSize);
75 EXPECT_EQ(kTestDataSize, callback_result_); 76 EXPECT_EQ(kTestDataSize, callback_result_);
76 } 77 }
77 78
78 // Verify that Read() after Close() returns error. 79 // Verify that Read() after Close() returns error.
79 TEST_F(TransportChannelSocketAdapterTest, ReadClose) { 80 TEST_F(TransportChannelSocketAdapterTest, ReadClose) {
80 scoped_refptr<IOBuffer> buffer(new IOBuffer(kBufferSize)); 81 scoped_refptr<IOBuffer> buffer(new IOBuffer(kBufferSize));
81 82
82 int result = target_->Read(buffer, kBufferSize, &callback_); 83 int result = target_->Read(buffer, kBufferSize, callback_);
83 ASSERT_EQ(net::ERR_IO_PENDING, result); 84 ASSERT_EQ(net::ERR_IO_PENDING, result);
84 85
85 target_->Close(kTestError); 86 target_->Close(kTestError);
86 EXPECT_EQ(kTestError, callback_result_); 87 EXPECT_EQ(kTestError, callback_result_);
87 88
88 // All Read() calls after Close() should return the error. 89 // All Read() calls after Close() should return the error.
89 EXPECT_EQ(kTestError, target_->Read(buffer, kBufferSize, &callback_)); 90 EXPECT_EQ(kTestError, target_->Read(buffer, kBufferSize, callback_));
90 } 91 }
91 92
92 // Verify that Write sends the packet and returns correct result. 93 // Verify that Write sends the packet and returns correct result.
93 TEST_F(TransportChannelSocketAdapterTest, Write) { 94 TEST_F(TransportChannelSocketAdapterTest, Write) {
94 scoped_refptr<IOBuffer> buffer(new IOBuffer(kTestDataSize)); 95 scoped_refptr<IOBuffer> buffer(new IOBuffer(kTestDataSize));
95 96
96 EXPECT_CALL(channel_, SendPacket(buffer->data(), kTestDataSize)) 97 EXPECT_CALL(channel_, SendPacket(buffer->data(), kTestDataSize))
97 .WillOnce(Return(kTestDataSize)); 98 .WillOnce(Return(kTestDataSize));
98 99
99 int result = target_->Write(buffer, kTestDataSize, &callback_); 100 int result = target_->Write(buffer, kTestDataSize, callback_);
100 EXPECT_EQ(kTestDataSize, result); 101 EXPECT_EQ(kTestDataSize, result);
101 } 102 }
102 103
103 // Verify that the message is still sent if Write() is called while 104 // Verify that the message is still sent if Write() is called while
104 // socket is not open yet. The result is the packet is lost. 105 // socket is not open yet. The result is the packet is lost.
105 TEST_F(TransportChannelSocketAdapterTest, WritePending) { 106 TEST_F(TransportChannelSocketAdapterTest, WritePending) {
106 scoped_refptr<IOBuffer> buffer(new IOBuffer(kTestDataSize)); 107 scoped_refptr<IOBuffer> buffer(new IOBuffer(kTestDataSize));
107 108
108 EXPECT_CALL(channel_, SendPacket(buffer->data(), kTestDataSize)) 109 EXPECT_CALL(channel_, SendPacket(buffer->data(), kTestDataSize))
109 .Times(1) 110 .Times(1)
110 .WillOnce(Return(SOCKET_ERROR)); 111 .WillOnce(Return(SOCKET_ERROR));
111 112
112 EXPECT_CALL(channel_, GetError()) 113 EXPECT_CALL(channel_, GetError())
113 .WillOnce(Return(EWOULDBLOCK)); 114 .WillOnce(Return(EWOULDBLOCK));
114 115
115 int result = target_->Write(buffer, kTestDataSize, &callback_); 116 int result = target_->Write(buffer, kTestDataSize, callback_);
116 ASSERT_EQ(net::OK, result); 117 ASSERT_EQ(net::OK, result);
117 } 118 }
118 119
119 } // namespace jingle_glue 120 } // namespace jingle_glue
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698