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 <gtest/gtest.h>
17 #include "bluetooth_opp.h"
18 #include "bluetooth_remote_device.h"
19 #include "bluetooth_host.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Bluetooth {
26 using namespace std;
27
28 class OppObserverTest : public OppObserver {
29 public:
30 OppObserverTest() = default;
31 virtual ~OppObserverTest() = default;
OnReceiveIncomingFileChanged(const BluetoothOppTransferInformation & transferInformation)32 virtual void OnReceiveIncomingFileChanged(const BluetoothOppTransferInformation &transferInformation) {}
OnTransferStateChanged(const BluetoothOppTransferInformation & transferInformation)33 virtual void OnTransferStateChanged(const BluetoothOppTransferInformation &transferInformation) {}
34
35 private:
36 };
37
38
39 static Bluetooth::Opp *profile_;
40 static std::shared_ptr<OppObserverTest> g_oppObserverTest = std::make_shared<OppObserverTest>();
41
42 class OppTest : public testing::Test {
43 public:
44 OppTest();
45 ~OppTest();
46
47 static void SetUpTestCase(void);
48 static void TearDownTestCase(void);
49 void SetUp();
50 void TearDown();
51 bool CompareDevice(std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState,
52 std::vector<std::string> bluetoothRemoteDeviceAddr);
53 bool CompareTransferInformation(const BluetoothOppTransferInformation &information,
54 const BluetoothOppTransferInformation &transferInformation);
55
56 private:
57 };
58
OppTest()59 OppTest::OppTest()
60 {
61 }
62
~OppTest()63 OppTest::~OppTest()
64 {
65 }
66
SetUpTestCase(void)67 void OppTest::SetUpTestCase(void)
68 {
69 }
TearDownTestCase(void)70 void OppTest::TearDownTestCase(void)
71 {
72 }
SetUp()73 void OppTest::SetUp()
74 {
75 }
TearDown()76 void OppTest::TearDown()
77 {
78 }
79
CompareDevice(std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState,std::vector<std::string> bluetoothRemoteDeviceAddr)80 bool OppTest::CompareDevice(std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState,
81 std::vector<std::string> bluetoothRemoteDeviceAddr)
82 {
83 if (bluetoothRemoteDeviceByState.size() != bluetoothRemoteDeviceAddr.size()) {
84 return false;
85 }
86 for (int i = 0; i < bluetoothRemoteDeviceByState.size(); i++) {
87 if (bluetoothRemoteDeviceByState[i].GetDeviceAddr().compare(bluetoothRemoteDeviceAddr[i]) != 0) {
88 return false;
89 }
90 }
91 return true;
92 }
93
CompareTransferInformation(const BluetoothOppTransferInformation & information,const BluetoothOppTransferInformation & transferInformation)94 bool OppTest::CompareTransferInformation(const BluetoothOppTransferInformation &information,
95 const BluetoothOppTransferInformation &transferInformation)
96 {
97 if (&information == &transferInformation) {
98 return true;
99 }
100 if ((information.GetFileName() != transferInformation.GetFileName()) ||
101 (information.GetFilePath() != transferInformation.GetFilePath()) ||
102 (information.GetMimeType() != transferInformation.GetMimeType()) ||
103 (information.GetDeviceName() != transferInformation.GetDeviceName()) ||
104 (information.GetDeviceAddress() != transferInformation.GetDeviceAddress()) ||
105 (information.GetTimeStamp() != transferInformation.GetTimeStamp()) ||
106 (information.GetCurrentBytes() != transferInformation.GetCurrentBytes()) ||
107 (information.GetTotalBytes() != transferInformation.GetTotalBytes()) ||
108 (information.GetFailedReason() != transferInformation.GetFailedReason()) ||
109 (information.GetDirection() != transferInformation.GetDirection()) ||
110 (information.GetStatus() != transferInformation.GetStatus()) ||
111 (information.GetId() != transferInformation.GetId())) {
112 return false;
113 }
114 return true;
115 }
116
117 /*
118 * @tc.number: OPP_ModuleTest_GetDevicesByStates_00100
119 * @tc.name: GetDevicesByStates
120 * @tc.desc:
121 */
122 HWTEST_F(OppTest, OPP_ModuleTest_GetDevicesByStates_00100, TestSize.Level1)
123 {
124 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetDevicesByStates_00100 start";
125
126 GTEST_LOG_(INFO) << "GetDevicesByStates function test";
127
128 profile_ = Opp::GetProfile();
129 std::vector<int> states;
130 std::vector<std::string> bluetoothRemoteDeviceAddr;
131 std::vector<BluetoothRemoteDevice> bluetoothRemoteDeviceByState = profile_->GetDevicesByStates(states);
132 EXPECT_TRUE(CompareDevice(bluetoothRemoteDeviceByState, bluetoothRemoteDeviceAddr));
133
134 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetDevicesByStates_00100 end";
135 }
136
137
138 /*
139 * @tc.number: OPP_ModuleTest_GetDeviceState_00100
140 * @tc.name: GetDeviceState
141 * @tc.desc:
142 */
143 HWTEST_F(OppTest, OPP_ModuleTest_GetDeviceState_00100, TestSize.Level1)
144 {
145 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetDeviceState_00100 start";
146
147 GTEST_LOG_(INFO) << "GetDeviceState function test";
148
149 int sucess = static_cast<int>(BTConnectState::DISCONNECTED);
150 BluetoothRemoteDevice device;
151 profile_ = Opp::GetProfile();
152 EXPECT_EQ(sucess, profile_->GetDeviceState(device));
153
154 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetDeviceState_00100 end";
155 }
156
157 /*
158 * @tc.number: OPP_ModuleTest_SendFile_00100
159 * @tc.name: SendFile
160 * @tc.desc:
161 */
162 HWTEST_F(OppTest, OPP_ModuleTest_SendFile_00100, TestSize.Level1)
163 {
164 GTEST_LOG_(INFO) << "OPP_ModuleTest_SendFile_00100 start";
165
166 GTEST_LOG_(INFO) << "SendFile function test";
167
168 std::string device;
169 std::vector<std::string>filePaths;
170 std::vector<std::string>mimeTypes;
171 profile_ = Opp::GetProfile();
172 EXPECT_FALSE(profile_->SendFile(device, filePaths, mimeTypes));
173
174 GTEST_LOG_(INFO) << "OPP_ModuleTest_SendFile_00100 end";
175 }
176
177 /*
178 * @tc.number: OPP_ModuleTest_SetIncomingFileConfirmation_00100
179 * @tc.name: SetIncomingFileConfirmation
180 * @tc.desc:
181 */
182 HWTEST_F(OppTest, OPP_ModuleTest_SetIncomingFileConfirmation_00100, TestSize.Level1)
183 {
184 GTEST_LOG_(INFO) << "OPP_ModuleTest_SetIncomingFileConfirmation_00100 start";
185
186 GTEST_LOG_(INFO) << "SetIncomingFileConfirmation function test";
187
188 bool accept = true;
189 profile_ = Opp::GetProfile();
190 EXPECT_FALSE(profile_->SetIncomingFileConfirmation(accept));
191
192 GTEST_LOG_(INFO) << "OPP_ModuleTest_SetIncomingFileConfirmation_00100 end";
193 }
194
195 /*
196 * @tc.number: OPP_ModuleTest_GetCurrentTransferInformation_00100
197 * @tc.name: GetCurrentTransferInformation
198 * @tc.desc:
199 */
200 HWTEST_F(OppTest, OPP_ModuleTest_GetCurrentTransferInformation_00100, TestSize.Level1)
201 {
202 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetCurrentTransferInformation_00100 start";
203
204 GTEST_LOG_(INFO) << "GetCurrentTransferInformation function test";
205
206 profile_ = Opp::GetProfile();
207 BluetoothOppTransferInformation Infermation;
208 BluetoothOppTransferInformation transferInfermation = profile_->GetCurrentTransferInformation();
209 EXPECT_TRUE(CompareTransferInformation(Infermation, transferInfermation));
210
211 GTEST_LOG_(INFO) << "OPP_ModuleTest_GetCurrentTransferInformation_00100 end";
212 }
213
214 /*
215 * @tc.number: OPP_ModuleTest_CancelTransfer_00100
216 * @tc.name: CancelTransfer
217 * @tc.desc:
218 */
219 HWTEST_F(OppTest, OPP_ModuleTest_CancelTransfer_00100, TestSize.Level1)
220 {
221 GTEST_LOG_(INFO) << "OPP_ModuleTest_CancelTransfer_00100 start";
222
223 GTEST_LOG_(INFO) << "CancelTransfer function test";
224
225 profile_ = Opp::GetProfile();
226 EXPECT_FALSE(profile_->CancelTransfer());
227
228 GTEST_LOG_(INFO) << "OPP_ModuleTest_CancelTransfer_00100 end";
229 }
230
231 /*
232 * @tc.number: OPP_ModuleTest_RegisterObserver_00100
233 * @tc.name: RegisterObserver
234 * @tc.desc:
235 */
236 HWTEST_F(OppTest, OPP_ModuleTest_RegisterObserver_00100, TestSize.Level1)
237 {
238 GTEST_LOG_(INFO) << "OPP_ModuleTest_RegisterObserver_00100 start";
239
240 GTEST_LOG_(INFO) << "RegisterObserver function test";
241
242 profile_ = Opp::GetProfile();
243 profile_->RegisterObserver(g_oppObserverTest);
244
245 GTEST_LOG_(INFO) << "OPP_ModuleTest_RegisterObserver_00100 end";
246 }
247
248 /*
249 * @tc.number: OPP_ModuleTest_DeregisterObserver_00100
250 * @tc.name: DeregisterObserver
251 * @tc.desc:
252 */
253 HWTEST_F(OppTest, OPP_ModuleTest_DeregisterObserver_00100, TestSize.Level1)
254 {
255 GTEST_LOG_(INFO) << "OPP_ModuleTest_DeregisterObserver_00100 start";
256
257 GTEST_LOG_(INFO) << "DeregisterObserver function test";
258
259 profile_ = Opp::GetProfile();
260 profile_->DeregisterObserver(g_oppObserverTest);
261
262 GTEST_LOG_(INFO) << "OPP_ModuleTest_DeregisterObserver_00100 end";
263 }
264
265 /*
266 * @tc.number: OPP_ModuleTest_OnReceiveIncomingFileChanged_00100
267 * @tc.name: OnReceiveIncomingFileChanged
268 * @tc.desc:
269 */
270 HWTEST_F(OppTest, OPP_ModuleTest_OnReceiveIncomingFileChanged_00100, TestSize.Level1)
271 {
272 GTEST_LOG_(INFO) << "OPP_ModuleTest_OnReceiveIncomingFileChanged_00100 start";
273
274 GTEST_LOG_(INFO) << "OnReceiveIncomingFileChanged function test";
275
276 BluetoothOppTransferInformation trasnferInformation;
277 g_oppObserverTest->OnReceiveIncomingFileChanged(trasnferInformation);
278
279 GTEST_LOG_(INFO) << "OPP_ModuleTest_OnReceiveIncomingFileChanged_00100 end";
280 }
281
282 /*
283 * @tc.number: OPP_ModuleTest_OnTransferStateChanged_00100
284 * @tc.name: OnTransferStateChanged
285 * @tc.desc:
286 */
287 HWTEST_F(OppTest, OPP_ModuleTest_OnTransferStateChanged_00100, TestSize.Level1)
288 {
289 GTEST_LOG_(INFO) << "OPP_ModuleTest_OnTransferStateChanged_00100 start";
290
291 GTEST_LOG_(INFO) << "OnTransferStateChanged function test";
292
293 BluetoothOppTransferInformation trasnferInformation;
294 g_oppObserverTest->OnTransferStateChanged(trasnferInformation);
295
296 GTEST_LOG_(INFO) << "OPP_ModuleTest_OnTransferStateChanged_00100 end";
297 }
298 } // namespace Bluetooth
299 } // namespace OHOS
300