1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci#include "hdi_host_test.h"
17094332d3Sopenharmony_ci
18094332d3Sopenharmony_ciusing namespace OHOS;
19094332d3Sopenharmony_ciusing namespace std;
20094332d3Sopenharmony_ciusing namespace testing::ext;
21094332d3Sopenharmony_ciusing namespace OHOS::Camera;
22094332d3Sopenharmony_ci
23094332d3Sopenharmony_civoid HdiHostTest::SetUpTestCase(void) {}
24094332d3Sopenharmony_civoid HdiHostTest::TearDownTestCase(void) {}
25094332d3Sopenharmony_civoid HdiHostTest::SetUp(void)
26094332d3Sopenharmony_ci{
27094332d3Sopenharmony_ci    Test_ = std::make_shared<OHOS::Camera::Test>();
28094332d3Sopenharmony_ci    Test_->Init();
29094332d3Sopenharmony_ci}
30094332d3Sopenharmony_civoid HdiHostTest::TearDown(void)
31094332d3Sopenharmony_ci{
32094332d3Sopenharmony_ci    Test_->Close();
33094332d3Sopenharmony_ci}
34094332d3Sopenharmony_ci
35094332d3Sopenharmony_ci/**
36094332d3Sopenharmony_ci  * @tc.name: GetCameraIds
37094332d3Sopenharmony_ci  * @tc.desc: CamRetCode GetCameraIds([out] String[] ids);
38094332d3Sopenharmony_ci  * @tc.size: MediumTest
39094332d3Sopenharmony_ci  * @tc.type: Function
40094332d3Sopenharmony_ci  */
41094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0010, TestSize.Level0)
42094332d3Sopenharmony_ci{
43094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: GetCameraIds([out] String[] ids)." << std::endl;
44094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
45094332d3Sopenharmony_ci        Test_->rc = Test_->service->GetCameraIds(Test_->cameraIds);
46094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
47094332d3Sopenharmony_ci        EXPECT_LT(0, Test_->cameraIds.size());
48094332d3Sopenharmony_ci        std::cout << "==========[test log]Check hdi_host:cameraIds.size()= ."<< Test_->cameraIds.size() << std::endl;
49094332d3Sopenharmony_ci    }
50094332d3Sopenharmony_ci}
51094332d3Sopenharmony_ci
52094332d3Sopenharmony_ci/**
53094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
54094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, normal cameraId.
55094332d3Sopenharmony_ci  * @tc.size: MediumTest
56094332d3Sopenharmony_ci  * @tc.type: Function
57094332d3Sopenharmony_ci  */
58094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0020, TestSize.Level0)
59094332d3Sopenharmony_ci{
60094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: GetCameraAbility, normal cameraId." << std::endl;
61094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
62094332d3Sopenharmony_ci        Test_->rc = Test_->service->GetCameraIds(Test_->cameraIds);
63094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
64094332d3Sopenharmony_ci        for (int i=0; i<Test_->cameraIds.size(); i++) {
65094332d3Sopenharmony_ci            Test_->rc = Test_->service->GetCameraAbility(Test_->cameraIds[i], Test_->ability);
66094332d3Sopenharmony_ci            std::cout << "==========[test log]Check hdi_host: cameraid = " << Test_->cameraIds[i] << std::endl;
67094332d3Sopenharmony_ci            EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
68094332d3Sopenharmony_ci        }
69094332d3Sopenharmony_ci    }
70094332d3Sopenharmony_ci}
71094332d3Sopenharmony_ci
72094332d3Sopenharmony_ci/**
73094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
74094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, abnormal cameraId = 'abc'.
75094332d3Sopenharmony_ci  * @tc.size: MediumTest
76094332d3Sopenharmony_ci  * @tc.type: Function
77094332d3Sopenharmony_ci  */
78094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0021, TestSize.Level2)
79094332d3Sopenharmony_ci{
80094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: GetCameraAbility, abnormal cameraId = 'abc'." << std::endl;
81094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
82094332d3Sopenharmony_ci        std::string cameraId = "abc";
83094332d3Sopenharmony_ci        Test_->rc = Test_->service->GetCameraAbility(cameraId, Test_->ability);
84094332d3Sopenharmony_ci        std::cout << "==========[test log]Check hdi_host: Test_->rc ="<< Test_->rc << std::endl;
85094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::CamRetCode::INVALID_ARGUMENT);
86094332d3Sopenharmony_ci    }
87094332d3Sopenharmony_ci}
88094332d3Sopenharmony_ci
89094332d3Sopenharmony_ci/**
90094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
91094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, abnormal cameraId = ''
92094332d3Sopenharmony_ci  * @tc.size: MediumTest
93094332d3Sopenharmony_ci  * @tc.type: Function
94094332d3Sopenharmony_ci  */
95094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0022, TestSize.Level2)
96094332d3Sopenharmony_ci{
97094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: GetCameraAbility, abnormal cameraId = ''." << std::endl;
98094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
99094332d3Sopenharmony_ci        std::string cameraId = "";
100094332d3Sopenharmony_ci        Test_->rc = Test_->service->GetCameraAbility(cameraId, Test_->ability);
101094332d3Sopenharmony_ci        std::cout << "==========[test log]Check hdi_host: Test_->rc ="<< Test_->rc << std::endl;
102094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::CamRetCode::INVALID_ARGUMENT);
103094332d3Sopenharmony_ci    }
104094332d3Sopenharmony_ci}
105094332d3Sopenharmony_ci
106094332d3Sopenharmony_ci/**
107094332d3Sopenharmony_ci  * @tc.name: OpenCamera
108094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, normal cameraId.
109094332d3Sopenharmony_ci  * @tc.size: MediumTest
110094332d3Sopenharmony_ci  * @tc.type: Function
111094332d3Sopenharmony_ci  */
112094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0030, TestSize.Level0)
113094332d3Sopenharmony_ci{
114094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, normal cameraId."<< std::endl;
115094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
116094332d3Sopenharmony_ci        Test_->service->GetCameraIds(Test_->cameraIds);
117094332d3Sopenharmony_ci        Test_->CreateDeviceCallback();
118094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(Test_->cameraIds.front(), Test_->deviceCallback, Test_->cameraDevice);
119094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
120094332d3Sopenharmony_ci        if (Test_->rc != Camera::NO_ERROR || Test_->cameraDevice == nullptr) {
121094332d3Sopenharmony_ci            std::cout << "==========[test log]Check hdi_host: OpenCamera failed." << std::endl;
122094332d3Sopenharmony_ci            return;
123094332d3Sopenharmony_ci        }
124094332d3Sopenharmony_ci        std::cout << "==========[test log]Check hdi_host: OpenCamera success." << std::endl;
125094332d3Sopenharmony_ci    }
126094332d3Sopenharmony_ci}
127094332d3Sopenharmony_ci
128094332d3Sopenharmony_ci/**
129094332d3Sopenharmony_ci  * @tc.name: OpenCamera
130094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is not found.
131094332d3Sopenharmony_ci  * @tc.size: MediumTest
132094332d3Sopenharmony_ci  * @tc.type: Function
133094332d3Sopenharmony_ci  */
134094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0031, TestSize.Level2)
135094332d3Sopenharmony_ci{
136094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, cameraID is not found."<< std::endl;
137094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
138094332d3Sopenharmony_ci        std::string cameraId = "qwerty";
139094332d3Sopenharmony_ci        Test_->CreateDeviceCallback();
140094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(cameraId, Test_->deviceCallback, Test_->cameraDevice);
141094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
142094332d3Sopenharmony_ci    }
143094332d3Sopenharmony_ci}
144094332d3Sopenharmony_ci
145094332d3Sopenharmony_ci/**
146094332d3Sopenharmony_ci  * @tc.name: OpenCamera
147094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is illegal.
148094332d3Sopenharmony_ci  * @tc.size: MediumTest
149094332d3Sopenharmony_ci  * @tc.type: Function
150094332d3Sopenharmony_ci  */
151094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0032, TestSize.Level2)
152094332d3Sopenharmony_ci{
153094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, cameraID is illegal."<< std::endl;
154094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
155094332d3Sopenharmony_ci        std::string cameraId = "1";
156094332d3Sopenharmony_ci        Test_->CreateDeviceCallback();
157094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(cameraId, Test_->deviceCallback, Test_->cameraDevice);
158094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
159094332d3Sopenharmony_ci    }
160094332d3Sopenharmony_ci}
161094332d3Sopenharmony_ci
162094332d3Sopenharmony_ci/**
163094332d3Sopenharmony_ci  * @tc.name: OpenCamera
164094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is Empty.
165094332d3Sopenharmony_ci  * @tc.size: MediumTest
166094332d3Sopenharmony_ci  * @tc.type: Function
167094332d3Sopenharmony_ci  */
168094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0033, TestSize.Level2)
169094332d3Sopenharmony_ci{
170094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, cameraID is Empty."<< std::endl;
171094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
172094332d3Sopenharmony_ci        std::string cameraId = "";
173094332d3Sopenharmony_ci        Test_->CreateDeviceCallback();
174094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(cameraId, Test_->deviceCallback, Test_->cameraDevice);
175094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
176094332d3Sopenharmony_ci    }
177094332d3Sopenharmony_ci}
178094332d3Sopenharmony_ci
179094332d3Sopenharmony_ci/**
180094332d3Sopenharmony_ci  * @tc.name: OpenCamera
181094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, Callback is Null.
182094332d3Sopenharmony_ci  * @tc.size: MediumTest
183094332d3Sopenharmony_ci  * @tc.type: Function
184094332d3Sopenharmony_ci  */
185094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0034, TestSize.Level2)
186094332d3Sopenharmony_ci{
187094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, Callback is Null."<< std::endl;
188094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
189094332d3Sopenharmony_ci        Test_->service->GetCameraIds(Test_->cameraIds);
190094332d3Sopenharmony_ci        Test_->deviceCallback = nullptr;
191094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(Test_->cameraIds.front(), Test_->deviceCallback, Test_->cameraDevice);
192094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
193094332d3Sopenharmony_ci    }
194094332d3Sopenharmony_ci}
195094332d3Sopenharmony_ci
196094332d3Sopenharmony_ci/**
197094332d3Sopenharmony_ci  * @tc.name: OpenCamera
198094332d3Sopenharmony_ci  * @tc.desc: cameraID is not found, callback is null.
199094332d3Sopenharmony_ci  * @tc.size: MediumTest
200094332d3Sopenharmony_ci  * @tc.type: Function
201094332d3Sopenharmony_ci  */
202094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0035, TestSize.Level2)
203094332d3Sopenharmony_ci{
204094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: OpenCamera, cameraID is not found, callback is null."<< std::endl;
205094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
206094332d3Sopenharmony_ci        std::string cameraId = "abc";
207094332d3Sopenharmony_ci        Test_->CreateDeviceCallback();
208094332d3Sopenharmony_ci        Test_->rc = Test_->service->OpenCamera(cameraId, Test_->deviceCallback, Test_->cameraDevice);
209094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
210094332d3Sopenharmony_ci    }
211094332d3Sopenharmony_ci}
212094332d3Sopenharmony_ci
213094332d3Sopenharmony_ci/**
214094332d3Sopenharmony_ci  * @tc.name: SetFlashlight
215094332d3Sopenharmony_ci  * @tc.desc: SetFlashlight, normal cameraId.
216094332d3Sopenharmony_ci  * @tc.size: MediumTest
217094332d3Sopenharmony_ci  * @tc.type: Function
218094332d3Sopenharmony_ci  */
219094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0040, TestSize.Level0)
220094332d3Sopenharmony_ci{
221094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: SetFlashlight, normal cameraId." << std::endl;
222094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
223094332d3Sopenharmony_ci        Test_->service->GetCameraIds(Test_->cameraIds);
224094332d3Sopenharmony_ci        Test_->status = true;
225094332d3Sopenharmony_ci        Test_->rc = Test_->service->SetFlashlight(Test_->cameraIds.front(), Test_->status);
226094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
227094332d3Sopenharmony_ci    }
228094332d3Sopenharmony_ci}
229094332d3Sopenharmony_ci
230094332d3Sopenharmony_ci/**
231094332d3Sopenharmony_ci  * @tc.name: SetFlashlight
232094332d3Sopenharmony_ci  * @tc.desc: SetFlashlight, cameraId is not found.
233094332d3Sopenharmony_ci  * @tc.size: MediumTest
234094332d3Sopenharmony_ci  * @tc.type: Function
235094332d3Sopenharmony_ci  */
236094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0041, TestSize.Level2)
237094332d3Sopenharmony_ci{
238094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: SetFlashlight, cameraId is not found." << std::endl;
239094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
240094332d3Sopenharmony_ci        std::string cameraId = "abc";
241094332d3Sopenharmony_ci        Test_->status = true;
242094332d3Sopenharmony_ci        Test_->rc = Test_->service->SetFlashlight(cameraId, Test_->status);
243094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
244094332d3Sopenharmony_ci    }
245094332d3Sopenharmony_ci}
246094332d3Sopenharmony_ci
247094332d3Sopenharmony_ci/**
248094332d3Sopenharmony_ci  * @tc.name: SetFlashlight
249094332d3Sopenharmony_ci  * @tc.desc: SetFlashlight, cameraId is empty.
250094332d3Sopenharmony_ci  * @tc.size: MediumTest
251094332d3Sopenharmony_ci  * @tc.type: Function
252094332d3Sopenharmony_ci  */
253094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0042, TestSize.Level2)
254094332d3Sopenharmony_ci{
255094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: SetFlashlight, cameraId is empty." << std::endl;
256094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
257094332d3Sopenharmony_ci        std::string cameraId = "";
258094332d3Sopenharmony_ci        Test_->status = true;
259094332d3Sopenharmony_ci        Test_->rc = Test_->service->SetFlashlight(cameraId, Test_->status);
260094332d3Sopenharmony_ci        EXPECT_EQ(true, Test_->rc == Camera::INVALID_ARGUMENT);
261094332d3Sopenharmony_ci    }
262094332d3Sopenharmony_ci}
263094332d3Sopenharmony_ci
264094332d3Sopenharmony_ci/**
265094332d3Sopenharmony_ci  * @tc.name: SetFlashlight
266094332d3Sopenharmony_ci  * @tc.desc: SetFlashlight, status is true.
267094332d3Sopenharmony_ci  * @tc.size: MediumTest
268094332d3Sopenharmony_ci  * @tc.type: Function
269094332d3Sopenharmony_ci  */
270094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0043, TestSize.Level2)
271094332d3Sopenharmony_ci{
272094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: SetFlashlight, normal cameraId." << std::endl;
273094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
274094332d3Sopenharmony_ci        Test_->service->GetCameraIds(Test_->cameraIds);
275094332d3Sopenharmony_ci        Test_->status = true;
276094332d3Sopenharmony_ci        Test_->rc = Test_->service->SetFlashlight(Test_->cameraIds.front(), Test_->status);
277094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
278094332d3Sopenharmony_ci    }
279094332d3Sopenharmony_ci}
280094332d3Sopenharmony_ci
281094332d3Sopenharmony_ci/**
282094332d3Sopenharmony_ci  * @tc.name: SetFlashlight
283094332d3Sopenharmony_ci  * @tc.desc: SetFlashlight, status is false.
284094332d3Sopenharmony_ci  * @tc.size: MediumTest
285094332d3Sopenharmony_ci  * @tc.type: Function
286094332d3Sopenharmony_ci  */
287094332d3Sopenharmony_ciHWTEST_F(HdiHostTest, Camera_Hdi_0044, TestSize.Level2)
288094332d3Sopenharmony_ci{
289094332d3Sopenharmony_ci    std::cout << "==========[test log]Check hdi_host: SetFlashlight, normal cameraId." << std::endl;
290094332d3Sopenharmony_ci    if (Test_->cameraDevice == nullptr) {
291094332d3Sopenharmony_ci        Test_->service->GetCameraIds(Test_->cameraIds);
292094332d3Sopenharmony_ci        Test_->status = false;
293094332d3Sopenharmony_ci        Test_->rc = Test_->service->SetFlashlight(Test_->cameraIds.front(), Test_->status);
294094332d3Sopenharmony_ci        EXPECT_EQ(Test_->rc, Camera::NO_ERROR);
295094332d3Sopenharmony_ci    }
296094332d3Sopenharmony_ci}
297