1 /*
2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file expected 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 #include "hdi_host_uttest.h"
16
17 using namespace OHOS;
18 using namespace std;
19 using namespace testing::ext;
20 using namespace OHOS::Camera;
21
SetUpTestCase(void)22 void HdiHostUtTest::SetUpTestCase(void) {}
TearDownTestCase(void)23 void HdiHostUtTest::TearDownTestCase(void) {}
SetUp(void)24 void HdiHostUtTest::SetUp(void)
25 {
26 cameraTest = std::make_shared<OHOS::Camera::Test>();
27 cameraTest->Init();
28 }
29
TearDown(void)30 void HdiHostUtTest::TearDown(void)
31 {
32 cameraTest->Close();
33 }
34
35 /**
36 * @tc.name: GitCameraIds
37 * @tc.desc: CamRetCode GetCameraIds([out] String[] ipds)
38 * @tc.size: MediumTest
39 * @tc.type: Function
40 */
41 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_1500, TestSize.Level0)
42 {
43 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
44 if (cameraTest->cameraDevice == nullptr) {
45 cameraTest->rc = cameraTest->service->GetCameraIds(cameraTest->cameraIds);
46 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
47 EXPECT_LT(0, cameraTest->cameraIds.size());
48 CAMERA_LOGE("check hdi_host: cameraIds.size() = %{public}zu", cameraTest->cameraIds.size());
49 }
50 }
51
52 /**
53 * @tc.name: GetCameraAbility
54 * @tc.desc: GetCameraAbility, abnormal cameraId = ''
55 * @tc.size: MediumTest
56 * @tc.type: Function
57 */
58 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_1600, TestSize.Level0)
59 {
60 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
61 if (cameraTest->cameraDevice == nullptr) {
62 std::string testCameraId = "";
63 cameraTest->rc = cameraTest->service->GetCameraAbility(testCameraId, cameraTest->abilityVec);
64 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
65 }
66 }
67
68 /**
69 * @tc.name: GetCameraAbility
70 * @tc.desc: GetCameraAbility, abnormal cameraId = ' '
71 * @tc.size: MediumTest
72 * @tc.type: Function
73 */
74 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_1700, TestSize.Level0)
75 {
76 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
77 if (cameraTest->cameraDevice == nullptr) {
78 std::string testCameraId = "";
79 cameraTest->rc = cameraTest->service->GetCameraAbility(testCameraId, cameraTest->abilityVec);
80 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
81 }
82 }
83
84 /**
85 * @tc.name: OpenCamera
86 * @tc.desc: OpenCamera, normal cameraId
87 * @tc.size: MediumTest
88 * @tc.type: Function
89 */
90 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_1800, TestSize.Level0)
91 {
92 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
93 if (cameraTest->cameraDevice == nullptr) {
94 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
95 cameraTest->deviceCallback = new OHOS::Camera::Test::DemoCameraDeviceCallback();
96 cameraTest->rc = cameraTest->service->OpenCamera(cameraTest->cameraIds.front(), cameraTest->deviceCallback,
97 cameraTest->cameraDevice);
98 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
99 if (cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->cameraDevice == nullptr) {
100 CAMERA_LOGE("check hdi_host: OpenCamera failed");
101 return;
102 }
103 }
104 }
105
106 /**
107 * @tc.name: OpenCamera
108 * @tc.desc: OpenCamera, cameraId is not found
109 * @tc.size: MediumTest
110 * @tc.type: Function
111 */
112 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_1900, TestSize.Level0)
113 {
114 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
115 if (cameraTest->cameraDevice == nullptr) {
116 std::string testCameraId = "qwerty";
117 cameraTest->deviceCallback = new OHOS::Camera::Test::DemoCameraDeviceCallback();
118 cameraTest->rc = cameraTest->service->OpenCamera(testCameraId, cameraTest->deviceCallback,
119 cameraTest->cameraDevice);
120 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
121 }
122 }
123
124 /**
125 * @tc.name: OpenCamera
126 * @tc.desc: OpenCamera, cameraId is illegal
127 * @tc.size: MediumTest
128 * @tc.type: Function
129 */
130 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2000, TestSize.Level0)
131 {
132 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
133 if (cameraTest->cameraDevice == nullptr) {
134 std::string testCameraId = "1";
135 cameraTest->deviceCallback = new OHOS::Camera::Test::DemoCameraDeviceCallback();
136 cameraTest->rc = cameraTest->service->OpenCamera(testCameraId, cameraTest->deviceCallback,
137 cameraTest->cameraDevice);
138 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
139 }
140 }
141
142 /**
143 * @tc.name: OpenCamera
144 * @tc.desc: OpenCamera, cameraId is empty
145 * @tc.size: MediumTest
146 * @tc.type: Function
147 */
148 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2100, TestSize.Level0)
149 {
150 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
151 if (cameraTest->cameraDevice == nullptr) {
152 std::string testCameraId = "";
153 cameraTest->deviceCallback = new OHOS::Camera::Test::DemoCameraDeviceCallback();
154 cameraTest->rc = cameraTest->service->OpenCamera(testCameraId, cameraTest->deviceCallback,
155 cameraTest->cameraDevice);
156 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
157 }
158 }
159
160 /**
161 * @tc.name: OpenCamera
162 * @tc.desc: OpenCamera, callback is null
163 * @tc.size: MediumTest
164 * @tc.type: Function
165 */
166 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2200, TestSize.Level0)
167 {
168 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
169 if (cameraTest->cameraDevice == nullptr) {
170 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
171 cameraTest->deviceCallback = nullptr;
172 cameraTest->rc = cameraTest->service->OpenCamera(cameraTest->cameraIds.front(), cameraTest->deviceCallback,
173 cameraTest->cameraDevice);
174 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
175 }
176 }
177
178 /**
179 * @tc.name: OpenCamera
180 * @tc.desc: cameraId is not found, callback is null
181 * @tc.size: MediumTest
182 * @tc.type: Function
183 */
184 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2300, TestSize.Level0)
185 {
186 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
187 if (cameraTest->cameraDevice == nullptr) {
188 std::string testCameraId = "abc";
189 cameraTest->deviceCallback = nullptr;
190 cameraTest->rc = cameraTest->service->OpenCamera(testCameraId, cameraTest->deviceCallback,
191 cameraTest->cameraDevice);
192 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
193 }
194 }
195
196 /**
197 * @tc.name: SetFlashlight
198 * @tc.desc: SetFlashlight, normal cameraId
199 * @tc.size: MediumTest
200 * @tc.type: Function
201 */
202 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2400, TestSize.Level0)
203 {
204 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
205 if (cameraTest->cameraDevice == nullptr) {
206 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
207 if (cameraTest->cameraIds.size() > 2) {
208 cameraTest->status = true;
209 cameraTest->rc = cameraTest->service->SetFlashlight(cameraTest->cameraIds.front(), cameraTest->status);
210 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
211 }
212 }
213 }
214
215 /**
216 * @tc.name: SetFlashlight
217 * @tc.desc: SetFlashlight, cameraId is not found
218 * @tc.size: MediumTest
219 * @tc.type: Function
220 */
221 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2500, TestSize.Level0)
222 {
223 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
224 if (cameraTest->cameraDevice == nullptr) {
225 std::string testCameraId = "abc";
226 cameraTest->status = true;
227 cameraTest->rc = cameraTest->service->SetFlashlight(testCameraId, cameraTest->status);
228 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
229 }
230 }
231
232 /**
233 * @tc.name: SetFlashlight
234 * @tc.desc: SetFlashlight, cameraId is not found
235 * @tc.size: MediumTest
236 * @tc.type: Function
237 */
238 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2600, TestSize.Level0)
239 {
240 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
241 if (cameraTest->cameraDevice == nullptr) {
242 std::string testCameraId = "";
243 cameraTest->status = true;
244 cameraTest->rc = cameraTest->service->SetFlashlight(testCameraId, cameraTest->status);
245 EXPECT_EQ(true, cameraTest->rc == INVALID_ARGUMENT);
246 }
247 }
248
249 /**
250 * @tc.name: SetFlashlight
251 * @tc.desc: SetFlashlight, status is false
252 * @tc.size: MediumTest
253 * @tc.type: Function
254 */
255 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2700, TestSize.Level0)
256 {
257 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
258 if (cameraTest->cameraDevice == nullptr) {
259 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
260 if (cameraTest->cameraIds.size() > 2) {
261 cameraTest->status = false;
262 cameraTest->rc = cameraTest->service->SetFlashlight(cameraTest->cameraIds.front(), cameraTest->status);
263 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
264 }
265 }
266 }
267
268 /**
269 * @tc.name: GetCameraAbility
270 * @tc.desc: GetCameraAbility, normal cameraId
271 * @tc.size: MediumTest
272 * @tc.type: Function
273 */
274 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_Merge_2800, TestSize.Level0)
275 {
276 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
277 if (cameraTest->cameraDevice == nullptr) {
278 cameraTest->rc = cameraTest->service->GetCameraIds(cameraTest->cameraIds);
279 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
280 for (int i = 0; i < cameraTest->cameraIds.size(); i++) {
281 cameraTest->rc = cameraTest->service->GetCameraAbility(cameraTest->cameraIds[i], cameraTest->abilityVec);
282 CAMERA_LOGE("check hdi_host: cameraId = %{public}s", cameraTest->cameraIds[i].c_str());
283 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
284 }
285 }
286 }
287
288 #ifdef DISPLAY_COMMUNITY
289 /**
290 * @tc.name: SetFlashlight
291 * @tc.desc: SetFlashlight, normal cameraId
292 * @tc.size: MediumTest
293 * @tc.type: Function
294 */
295 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_MergeRK_2400, TestSize.Level0)
296 {
297 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
298 if (cameraTest->cameraDevice == nullptr) {
299 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
300 cameraTest->status = true;
301 cameraTest->rc = cameraTest->service->SetFlashlight(cameraTest->cameraIds.front(), cameraTest->status);
302 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
303 }
304 }
305
306 /**
307 * @tc.name: SetFlashlight
308 * @tc.desc: SetFlashlight, status is false
309 * @tc.size: MediumTest
310 * @tc.type: Function
311 */
312 HWTEST_F(HdiHostUtTest, SUB_Driver_Camera_MergeRK_2700, TestSize.Level0)
313 {
314 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
315 if (cameraTest->cameraDevice == nullptr) {
316 cameraTest->service->GetCameraIds(cameraTest->cameraIds);
317 cameraTest->status = false;
318 cameraTest->rc = cameraTest->service->SetFlashlight(cameraTest->cameraIds.front(), cameraTest->status);
319 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
320 }
321 }
322 #endif