1 /*
2 * Copyright (c) 2023 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 "camera_flashlight_test_v1_2.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 CameraFlashlightTestV1_2::SetUpTestCase(void) {}
TearDownTestCase(void)23 void CameraFlashlightTestV1_2::TearDownTestCase(void) {}
SetUp(void)24 void CameraFlashlightTestV1_2::SetUp(void)
25 {
26 cameraTest = std::make_shared<OHOS::Camera::Test>();
27 cameraTest->Init(); // assert inside
28 }
29
TearDown(void)30 void CameraFlashlightTestV1_2::TearDown(void)
31 {
32 cameraTest->Close();
33 }
34
35 /**
36 * @tc.name:SUB_Driver_Camera_Flashlight_0010
37 * @tc.desc:SetCallback_V1_2, Callback object = nullptr;
38 * @tc.size:MediumTest
39 * @tc.type:Function
40 */
41 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0010, TestSize.Level1)
42 {
43 int32_t ret;
44 // step 1: get serviceV1_2
45 cameraTest->serviceV1_2 = OHOS::HDI::Camera::V1_2::ICameraHost::Get("camera_service", false);
46 EXPECT_NE(cameraTest->serviceV1_2, nullptr);
47 CAMERA_LOGI("V1_2::ICameraHost get success");
48 // step 2: set callback object which is nullptr
49 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
50 EXPECT_EQ(ret, HDI::Camera::V1_2::INVALID_ARGUMENT);
51 }
52
53 /**
54 * @tc.name:SUB_Driver_Camera_Flashlight_0020
55 * @tc.desc:SetCallback_V1_2, Callback object exits;
56 * @tc.size:MediumTest
57 * @tc.type:Function
58 */
59 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0020, TestSize.Level1)
60 {
61 int32_t ret;
62 // step 1: get serviceV1_2
63 cameraTest->serviceV1_2 = OHOS::HDI::Camera::V1_2::ICameraHost::Get("camera_service", false);
64 EXPECT_NE(cameraTest->serviceV1_2, nullptr);
65 CAMERA_LOGI("V1_2::ICameraHost get success");
66 // step 2: set callback object which is exits
67 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
68 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
69 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
70 }
71
72 /**
73 * @tc.name:SUB_Driver_Camera_Flashlight_0030
74 * @tc.desc:SetFlashlight_V1_2:statusV1_2 = 3.0f,INVALID_ARGUMENT
75 * @tc.size:MediumTest
76 * @tc.type:Function
77 */
78 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0030, TestSize.Level1)
79 {
80 int32_t ret;
81 // step 1: get serviceV1_2
82 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
83 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
84 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
85 cameraTest->statusV1_2 = 3.0f;
86 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
87 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::INVALID_ARGUMENT);
88 }
89
90 /**
91 * @tc.name:SUB_Driver_Camera_Flashlight_0030
92 * @tc.desc:SetFlashlight_V1_2:statusV1_2 = 0.5f,INVALID_ARGUMENT
93 * @tc.size:MediumTest
94 * @tc.type:Function
95 */
96 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0040, TestSize.Level1)
97 {
98 int32_t ret;
99 // step 1: get serviceV1_2
100 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
101 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
102 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
103 cameraTest->statusV1_2 = 0.5f;
104 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
105 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::INVALID_ARGUMENT);
106 }
107
108 /**
109 * @tc.name:SUB_Driver_Camera_Flashlight_0050
110 * @tc.desc:statusCallback,turn on the flashlight,statusCallback
111 * @tc.size:MediumTest
112 * @tc.type:Function
113 */
114 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0050, TestSize.Level1)
115 {
116 int32_t ret;
117 // step 1: get serviceV1_2
118 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
119 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
120 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
121 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
122 cameraTest->statusV1_2 = 1.0f;
123 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
124 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
125 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
126 }
127
128 /**
129 * @tc.name:SUB_Driver_Camera_Flashlight_0060
130 * @tc.desc:statusCallback,turn off the flashlight,statusCallback
131 * @tc.size:MediumTest
132 * @tc.type:Function
133 */
134 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0060, TestSize.Level1)
135 {
136 int32_t ret;
137 // step 1: get serviceV1_2
138 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
139 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
140 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
141 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
142 cameraTest->statusV1_2 = 0.0f;
143 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
144 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
145 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
146 }
147
148 /**
149 * @tc.name:SUB_Driver_Camera_Flashlight_0080
150 * @tc.desc:statusCallback,turn on the flashlight,statusCallback
151 * @tc.size:MediumTest
152 * @tc.type:Function
153 */
154 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0080, TestSize.Level1)
155 {
156 int32_t ret;
157 // step 1: get serviceV1_2
158 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
159 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
160 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
161 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
162 cameraTest->statusV1_2 = 1.0f;
163 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
164 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
165 sleep(UT_SECOND_TIMES);
166 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
167 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
168 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
169 sleep(UT_SECOND_TIMES);
170 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
171 }
172
173 /**
174 * @tc.name:SUB_Driver_Camera_Flashlight_0070
175 * @tc.desc:statusCallback,turn off the flashlight,statusCallback
176 * @tc.size:MediumTest
177 * @tc.type:Function
178 */
179 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0070, TestSize.Level1)
180 {
181 int32_t ret;
182 // step 1: get serviceV1_2
183 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
184 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
185 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
186 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
187 cameraTest->statusV1_2 = 0.0f;
188 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
189 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
190 sleep(UT_SECOND_TIMES);
191 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
192 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
193 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
194 sleep(UT_SECOND_TIMES);
195 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
196 }
197
198 /**
199 * @tc.name:SUB_Driver_Camera_Flashlight_0090
200 * @tc.desc:turn on the flashlight,opencamera,statusCallback
201 * @tc.size:MediumTest
202 * @tc.type:Function
203 */
204 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0090, TestSize.Level1)
205 {
206 int32_t ret;
207 sleep(1);
208 // step 1: get serviceV1_2
209 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
210 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
211 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
212 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
213 cameraTest->statusV1_2 = 1.0f;
214 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
215 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
216 sleep(UT_SECOND_TIMES);
217 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
218 cameraTest->Open(DEVICE_0);
219 cameraTest->intents = {PREVIEW};
220 cameraTest->StartStream(cameraTest->intents);
221 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
222 sleep(UT_SECOND_TIMES);
223 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_UNAVAILABLE);
224 cameraTest->captureIds = {cameraTest->captureIdPreview};
225 cameraTest->streamIds = {cameraTest->streamIdPreview};
226 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
227 }
228
229 /**
230 * @tc.name:SUB_Driver_Camera_Flashlight_0100
231 * @tc.desc:opencamera,turn on the flashlight,statusCallback
232 * @tc.size:MediumTest
233 * @tc.type:Function
234 */
235 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0100, TestSize.Level1)
236 {
237 int32_t ret;
238 sleep(1);
239 // step 1: get serviceV1_2
240 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
241 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
242 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
243 cameraTest->Open(DEVICE_0);
244 cameraTest->intents = {PREVIEW};
245 cameraTest->StartStream(cameraTest->intents);
246 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
247 cameraTest->statusV1_2 = 1.0f;
248 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
249 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_2::DEVICE_CONFLICT);
250 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_UNAVAILABLE);
251 cameraTest->captureIds = {cameraTest->captureIdPreview};
252 cameraTest->streamIds = {cameraTest->streamIdPreview};
253 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
254 }
255
256 /**
257 * @tc.name:SUB_Driver_Camera_Flashlight_0110
258 * @tc.desc:opencamera,turn off the flashlight,statusCallback
259 * @tc.size:MediumTest
260 * @tc.type:Function
261 */
262 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0110, TestSize.Level1)
263 {
264 int32_t ret;
265 sleep(1);
266 // step 1: get serviceV1_2
267 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
268 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
269 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
270 cameraTest->Open(DEVICE_0);
271 cameraTest->intents = {PREVIEW};
272 cameraTest->StartStream(cameraTest->intents);
273 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
274 cameraTest->statusV1_2 = 0.0f;
275 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
276 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_2::DEVICE_CONFLICT);
277 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_UNAVAILABLE);
278 cameraTest->captureIds = {cameraTest->captureIdPreview};
279 cameraTest->streamIds = {cameraTest->streamIdPreview};
280 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
281 }
282
283 /**
284 * @tc.name:SUB_Driver_Camera_Flashlight_0120
285 * @tc.desc:opencamera,turn on the flashlight,closecamera,turn on the flashlight,
286 * @tc.size:MediumTest
287 * @tc.type:Function
288 */
289 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0120, TestSize.Level1)
290 {
291 int32_t ret;
292 sleep(1);
293 // step 1: get serviceV1_2
294 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
295 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
296 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
297 cameraTest->Open(DEVICE_0);
298 cameraTest->intents = {PREVIEW};
299 cameraTest->StartStream(cameraTest->intents);
300 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
301 cameraTest->statusV1_2 = 1.0f;
302 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
303 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_2::DEVICE_CONFLICT);
304 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_UNAVAILABLE);
305 cameraTest->captureIds = {cameraTest->captureIdPreview};
306 cameraTest->streamIds = {cameraTest->streamIdPreview};
307 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
308 cameraTest->Close();
309 sleep(1);
310 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
311 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
312 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
313 sleep(UT_SECOND_TIMES);
314 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_ON);
315 }
316
317 /**
318 * @tc.name:SUB_Driver_Camera_Flashlight_0130
319 * @tc.desc:opencamera,turn off the flashlight,closecamera,turn off the flashlight,
320 * @tc.size:MediumTest
321 * @tc.type:Function
322 */
323 HWTEST_F(CameraFlashlightTestV1_2, SUB_Driver_Camera_Flashlight_0130, TestSize.Level1)
324 {
325 int32_t ret;
326 sleep(1);
327 // step 1: get serviceV1_2
328 cameraTest->hostCallbackV1_2 = new OHOS::Camera::Test::TestCameraHostCallbackV1_2();
329 ret = cameraTest->serviceV1_2->SetCallback_V1_2(cameraTest->hostCallbackV1_2);
330 EXPECT_EQ(ret, HDI::Camera::V1_0::NO_ERROR);
331 cameraTest->Open(DEVICE_0);
332 cameraTest->intents = {PREVIEW};
333 cameraTest->StartStream(cameraTest->intents);
334 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
335 cameraTest->statusV1_2 = 0.0f;
336 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
337 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_2::DEVICE_CONFLICT);
338 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_UNAVAILABLE);
339 cameraTest->captureIds = {cameraTest->captureIdPreview};
340 cameraTest->streamIds = {cameraTest->streamIdPreview};
341 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
342 cameraTest->Close();
343 sleep(1);
344 EXPECT_EQ(true, cameraTest->cameraDevice == nullptr);
345 cameraTest->rc = cameraTest->serviceV1_2->SetFlashlight_V1_2(cameraTest->statusV1_2);
346 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
347 sleep(UT_SECOND_TIMES);
348 EXPECT_EQ(OHOS::Camera::Test::statusCallback, HDI::Camera::V1_0::FLASHLIGHT_OFF);
349 }