• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "soft_bus_manager_test.h"
17 #include "soft_bus_manager.h"
18 #include "socket_factory.h"
19 #include "socket.h"
20 #include "remote_connect_listener_manager.h"
21 
22 #include "gtest/gtest.h"
23 
24 namespace OHOS {
25 namespace UserIam {
26 namespace UserAuth {
27 using namespace testing;
28 using namespace testing::ext;
29 
SetUpTestCase()30 void SoftBusManagerTest::SetUpTestCase()
31 {
32 }
33 
TearDownTestCase()34 void SoftBusManagerTest::TearDownTestCase()
35 {
36 }
37 
SetUp()38 void SoftBusManagerTest::SetUp()
39 {
40 }
41 
TearDown()42 void SoftBusManagerTest::TearDown()
43 {
44 }
45 
46 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestCheckAndCopyStr, TestSize.Level0)
47 {
48     char dest[1];
49     uint32_t destLen = 2;
50     const std::string src = "123123123";
51     EXPECT_EQ(SoftBusManager::GetInstance().CheckAndCopyStr(dest, destLen, src), false);
52 }
53 
54 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnBind_001, TestSize.Level0)
55 {
56     PeerSocketInfo info;
57     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnBind(-2, info));
58 }
59 
60 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestRegistSoftBusListener, TestSize.Level0)
61 {
62     EXPECT_NO_THROW({
63         SoftBusManager::GetInstance().RegistSoftBusListener();
64         SoftBusManager::GetInstance().UnRegistSoftBusListener();
65     });
66 }
67 
68 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestSocketInit, TestSize.Level0)
69 {
70     EXPECT_NO_THROW({
71         SoftBusManager::GetInstance().ServiceSocketInit();
72         SoftBusManager::GetInstance().ServiceSocketUnInit();
73     });
74 }
75 
76 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestDeleteSocket, TestSize.Level0)
77 {
78     EXPECT_NO_THROW({
79         SoftBusManager::GetInstance().DeleteSocket(600);
80     });
81 }
82 
83 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestServiceSocketListen, TestSize.Level0)
84 {
85     int32_t socketId = 100;
86     SoftBusManager::GetInstance().ServiceSocketUnInit();
87     SoftBusManager::GetInstance().ServiceSocketInit();
88     int ret = SoftBusManager::GetInstance().ServiceSocketListen(socketId);
89     EXPECT_EQ(ret, SUCCESS);
90 
91     PeerSocketInfo info;
92     char testNetworkId[] = "1122";
93     info.networkId = testNetworkId;
94     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnBind(socketId, info));
95 
96     int32_t clientSocketId = 200;
97     const std::string connectionName = "testConnection";
98     const uint32_t tokenId = 1234;
99     const std::string networkId = "networkId";
100     SoftBusManager::GetInstance().DoOpenConnection(connectionName, tokenId, networkId);
101     auto clientSocket = SocketFactory::CreateClientSocket(clientSocketId, connectionName, networkId);
102     EXPECT_EQ(SoftBusManager::GetInstance().ClientSocketBind(clientSocketId), SUCCESS);
103     SoftBusManager::GetInstance().AddConnection(connectionName, clientSocket);
104     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
105     RemoteConnectListenerManager::GetInstance().OnConnectionUp(connectionName);
106 
107     const std::string srcEndPoint = "123";
108     const std::string destEndPoint = "456";
109     const std::shared_ptr<Attributes> attributes = Common::MakeShared<Attributes>();
110     ASSERT_NE(attributes, nullptr);
111     MsgCallback callback;
112     EXPECT_NO_THROW(SoftBusManager::GetInstance().SendMessage(connectionName, srcEndPoint, destEndPoint, attributes,
113         callback));
114 
115     EXPECT_EQ(SoftBusManager::GetInstance().DoCloseConnection(connectionName), SUCCESS);
116     SoftBusManager::GetInstance().ServiceSocketUnInit();
117     SoftBusManager::GetInstance().DeleteSocket(socketId);
118     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
119 }
120 
121 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOpenConnection, TestSize.Level0)
122 {
123     const std::string connectionName = "testConnection";
124     const uint32_t tokenId = 1234;
125     const std::string networkId = "networkId";
126     SoftBusManager::GetInstance().DoOpenConnection(connectionName, tokenId, networkId);
127     EXPECT_EQ(SoftBusManager::GetInstance().DoCloseConnection(connectionName), SUCCESS);
128 }
129 
130 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestServiceSocketUnInit_003, TestSize.Level0)
131 {
132     int32_t socketId = 100;
133     int32_t clientSocketId = 200;
134     const std::string connectionName = "testConnection";
135     const std::string networkId = "networkId";
136     SoftBusManager::GetInstance().ServiceSocketUnInit();
137     SoftBusManager::GetInstance().ServiceSocketInit();
138     std::shared_ptr<BaseSocket> clientSocket = SocketFactory::CreateClientSocket(clientSocketId,
139         connectionName, networkId);
140     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
141     auto findSocket = SoftBusManager::GetInstance().FindSocketBySocketId(socketId);
142     EXPECT_EQ(findSocket, nullptr);
143     SoftBusManager::GetInstance().ServiceSocketUnInit();
144     SoftBusManager::GetInstance().DeleteSocket(socketId);
145     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
146 }
147 
148 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_001, TestSize.Level0)
149 {
150     const void *data = new char[10];
151     uint32_t dataLen = 3;
152     int32_t socketId = 100;
153     int32_t clientSocketId = 200;
154     const std::string connectionName = "testConnection";
155     const std::string networkId = "networkId";
156     SoftBusManager::GetInstance().ServiceSocketUnInit();
157     SoftBusManager::GetInstance().ServiceSocketInit();
158     std::shared_ptr<BaseSocket> clientSocket = SocketFactory::CreateClientSocket(clientSocketId,
159         connectionName, networkId);
160     SoftBusManager::GetInstance().AddSocket(clientSocketId, clientSocket);
161     EXPECT_NO_THROW({
162         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
163     });
164     SoftBusManager::GetInstance().ServiceSocketUnInit();
165     SoftBusManager::GetInstance().DeleteSocket(socketId);
166     SoftBusManager::GetInstance().DeleteSocket(clientSocketId);
167 }
168 
169 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnShutdown_001, TestSize.Level0)
170 {
171     ShutdownReason reason = SHUTDOWN_REASON_UNKNOWN;
172     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnShutdown(-2, reason));
173     int32_t socketId = 100;
174     std::shared_ptr<BaseSocket> serverSocket = SocketFactory::CreateServerSocket(socketId);
175     SoftBusManager::GetInstance().AddSocket(socketId, serverSocket);
176     SoftBusManager::GetInstance().SetServerSocket(serverSocket);
177     EXPECT_NO_THROW(SoftBusManager::GetInstance().OnShutdown(600, reason));
178     SoftBusManager::GetInstance().DeleteSocket(socketId);
179     SoftBusManager::GetInstance().ServiceSocketUnInit();
180 }
181 
182 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_002, TestSize.Level0)
183 {
184     int32_t socketId = 100;
185     const void *data = new char[10];
186     uint32_t dataLen = 3;
187     EXPECT_NO_THROW({
188         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
189     });
190 }
191 
192 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnServerBytes_003, TestSize.Level0)
193 {
194     int32_t socketId = -2;
195     const void *data = new char[10];
196     uint32_t dataLen = 3;
197     EXPECT_NO_THROW({
198         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
199         SoftBusManager::GetInstance().OnClientBytes(socketId, nullptr, dataLen);
200     });
201 }
202 
203 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestOnClientBytes_001, TestSize.Level0)
204 {
205     int32_t socketId = -2;
206     const void *data = new char[10];
207     uint32_t dataLen = 3;
208     static const int32_t MAX_ONBYTES_RECEIVED_DATA_LEN = 1024 * 1024 * 10;
209     std::string connectionName = "testConnection1";
210     const std::string networkId = "networkId1";
211     EXPECT_NO_THROW({
212         SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
213         SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
214     });
215     socketId = 0;
216     SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
217     SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
218     socketId = 100;
219     SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
220     SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
221     dataLen = 0;
222     SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
223     SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
224     dataLen = MAX_ONBYTES_RECEIVED_DATA_LEN + 1;
225     SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
226     SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
227     dataLen = 3;
228     SoftBusManager::GetInstance().OnClientBytes(socketId, data, dataLen);
229     SoftBusManager::GetInstance().OnServerBytes(socketId, data, dataLen);
230     while (connectionName.length() <= 257) {
231         connectionName += "testConnection1";
232     }
233     SoftBusManager::GetInstance().ClientSocketInit(connectionName, networkId);
234 }
235 
236 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestStart, TestSize.Level0)
237 {
238     EXPECT_NO_THROW({
239         SoftBusManager::GetInstance().Start();
240         SoftBusManager::GetInstance().Stop();
241     });
242 }
243 
244 HWTEST_F(SoftBusManagerTest, SoftBusManagerTestDeviceInit, TestSize.Level0)
245 {
246     ResultCode ret = SoftBusManager::GetInstance().DeviceInit();
247     EXPECT_EQ(ret, SUCCESS);
248     EXPECT_NO_THROW(SoftBusManager::GetInstance().DeviceUnInit());
249 }
250 } // namespace UserAuth
251 } // namespace UserIam
252 } // namespace OHOS
253