• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }