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

Side by Side Diff: components/cast_channel/cast_socket_service_unittest.cc

Issue 2925053005: [cast_channel] Implement CastSocketService::OpenSocket() (Closed)
Patch Set: move |logger_| from cast_channel_api to cast_socket_service Created 3 years, 5 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 #include "components/cast_channel/cast_socket_service.h" 5 #include "components/cast_channel/cast_socket_service.h"
6 #include "base/test/mock_callback.h"
6 #include "components/cast_channel/cast_test_util.h" 7 #include "components/cast_channel/cast_test_util.h"
7 #include "content/public/test/test_browser_thread_bundle.h" 8 #include "content/public/test/test_browser_thread_bundle.h"
8 9
10 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
10 12
11 using testing::_; 13 using testing::_;
14 using testing::DoAll;
15 using testing::Invoke;
16 using testing::Return;
17 using testing::ReturnRef;
12 using testing::SaveArg; 18 using testing::SaveArg;
19 using testing::WithArgs;
13 20
14 namespace cast_channel { 21 namespace cast_channel {
15 22
16 class CastSocketServiceTest : public testing::Test { 23 class CastSocketServiceTest : public testing::Test {
17 public: 24 public:
18 CastSocketServiceTest() 25 CastSocketServiceTest()
19 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), 26 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
20 cast_socket_service_(new CastSocketService()) {} 27 cast_socket_service_(new CastSocketService()) {}
21 28
29 CastSocket* AddSocket(std::unique_ptr<CastSocket> socket) {
30 return cast_socket_service_->AddSocket(std::move(socket));
31 }
32
33 void TearDown() override { cast_socket_service_ = nullptr; }
34
22 protected: 35 protected:
23 content::TestBrowserThreadBundle thread_bundle_; 36 content::TestBrowserThreadBundle thread_bundle_;
24 scoped_refptr<CastSocketService> cast_socket_service_; 37 scoped_refptr<CastSocketService> cast_socket_service_;
38 base::MockCallback<CastSocket::OnOpenCallback> mock_on_open_callback_;
39 MockCastSocketObserver mock_observer_;
25 }; 40 };
26 41
27 TEST_F(CastSocketServiceTest, TestAddSocket) { 42 TEST_F(CastSocketServiceTest, TestAddSocket) {
28 int channel_id_1 = 0;
29 auto socket1 = base::MakeUnique<MockCastSocket>(); 43 auto socket1 = base::MakeUnique<MockCastSocket>();
30 EXPECT_CALL(*socket1, set_id(_)).WillOnce(SaveArg<0>(&channel_id_1)); 44 auto* socket_ptr1 = AddSocket(std::move(socket1));
45 EXPECT_NE(0, socket_ptr1->id());
31 46
32 int channel_id = cast_socket_service_->AddSocket(std::move(socket1)); 47 auto socket2 = base::MakeUnique<MockCastSocket>();
33 EXPECT_EQ(channel_id_1, channel_id); 48 auto* socket_ptr2 = AddSocket(std::move(socket2));
34 EXPECT_NE(0, channel_id_1); 49 EXPECT_NE(socket_ptr1->id(), socket_ptr2->id());
35 50
36 int channel_id_2 = 0; 51 auto removed_socket = cast_socket_service_->RemoveSocket(socket_ptr2->id());
37 auto socket2 = base::MakeUnique<MockCastSocket>(); 52 EXPECT_EQ(socket_ptr2, removed_socket.get());
38 EXPECT_CALL(*socket2, set_id(_)).WillOnce(SaveArg<0>(&channel_id_2));
39 53
40 auto* socket_ptr = socket2.get();
41 channel_id = cast_socket_service_->AddSocket(std::move(socket2));
42 EXPECT_EQ(channel_id_2, channel_id);
43 EXPECT_NE(channel_id_1, channel_id_2);
44
45 auto removed_socket = cast_socket_service_->RemoveSocket(channel_id);
46 EXPECT_EQ(socket_ptr, removed_socket.get());
47
48 int channel_id_3 = 0;
49 auto socket3 = base::MakeUnique<MockCastSocket>(); 54 auto socket3 = base::MakeUnique<MockCastSocket>();
50 EXPECT_CALL(*socket3, set_id(_)).WillOnce(SaveArg<0>(&channel_id_3)); 55 auto* socket_ptr3 = AddSocket(std::move(socket3));
51 56 EXPECT_NE(socket_ptr1->id(), socket_ptr3->id());
52 channel_id = cast_socket_service_->AddSocket(std::move(socket3)); 57 EXPECT_NE(socket_ptr2->id(), socket_ptr3->id());
53 EXPECT_EQ(channel_id_3, channel_id);
54 EXPECT_NE(channel_id_1, channel_id_3);
55 EXPECT_NE(channel_id_2, channel_id_3);
56 } 58 }
57 59
58 TEST_F(CastSocketServiceTest, TestRemoveAndGetSocket) { 60 TEST_F(CastSocketServiceTest, TestRemoveAndGetSocket) {
59 int channel_id = 1; 61 int channel_id = 1;
60 auto* socket_ptr = cast_socket_service_->GetSocket(channel_id); 62 auto* socket_ptr = cast_socket_service_->GetSocket(channel_id);
61 EXPECT_FALSE(socket_ptr); 63 EXPECT_FALSE(socket_ptr);
62 auto socket = cast_socket_service_->RemoveSocket(channel_id); 64 auto socket = cast_socket_service_->RemoveSocket(channel_id);
63 EXPECT_FALSE(socket); 65 EXPECT_FALSE(socket);
64 66
65 auto mock_socket = base::MakeUnique<MockCastSocket>(); 67 auto mock_socket = base::MakeUnique<MockCastSocket>();
66 EXPECT_CALL(*mock_socket, set_id(_));
67 68
68 auto* mock_socket_ptr = mock_socket.get(); 69 auto* mock_socket_ptr = AddSocket(std::move(mock_socket));
69 channel_id = cast_socket_service_->AddSocket(std::move(mock_socket)); 70 channel_id = mock_socket_ptr->id();
70 EXPECT_EQ(mock_socket_ptr, cast_socket_service_->GetSocket(channel_id)); 71 EXPECT_EQ(mock_socket_ptr, cast_socket_service_->GetSocket(channel_id));
72
71 socket = cast_socket_service_->RemoveSocket(channel_id); 73 socket = cast_socket_service_->RemoveSocket(channel_id);
72 EXPECT_TRUE(socket); 74 EXPECT_TRUE(socket);
73 } 75 }
74 76
77 TEST_F(CastSocketServiceTest, TestOpenChannel) {
78 auto* mock_socket = new MockCastSocket();
79 auto ip_endpoint = CreateIPEndPointForTest();
80 mock_socket->SetIPEndpoint(ip_endpoint);
81 cast_socket_service_->SetSocketForTest(base::WrapUnique(mock_socket));
82
83 EXPECT_CALL(*mock_socket, Connect(_))
84 .WillOnce(
85 WithArgs<0>(Invoke([&](const CastSocket::OnOpenCallback& callback) {
86 callback.Run(mock_socket->id(), ChannelError::NONE);
87 })));
88 EXPECT_CALL(mock_on_open_callback_, Run(_, ChannelError::NONE));
89 EXPECT_CALL(*mock_socket, AddObserver(_));
90
91 cast_socket_service_->OpenSocket(ip_endpoint, nullptr /* net_log */,
92 mock_on_open_callback_.Get(),
93 &mock_observer_);
94 }
95
75 } // namespace cast_channel 96 } // namespace cast_channel
OLDNEW
« no previous file with comments | « components/cast_channel/cast_socket_service.cc ('k') | components/cast_channel/cast_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698