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