1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2023 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#include "open_camera_test.h" 16094332d3Sopenharmony_ci 17094332d3Sopenharmony_civoid UtestOpenCameraTest::SetUpTestCase(void) 18094332d3Sopenharmony_ci{} 19094332d3Sopenharmony_civoid UtestOpenCameraTest::TearDownTestCase(void) 20094332d3Sopenharmony_ci{} 21094332d3Sopenharmony_civoid UtestOpenCameraTest::SetUp(void) 22094332d3Sopenharmony_ci{ 23094332d3Sopenharmony_ci if (cameraBase == nullptr) { 24094332d3Sopenharmony_ci cameraBase = std::make_shared<TestCameraBase>(); 25094332d3Sopenharmony_ci cameraBase->Init(); 26094332d3Sopenharmony_ci } 27094332d3Sopenharmony_ci} 28094332d3Sopenharmony_civoid UtestOpenCameraTest::TearDown(void) 29094332d3Sopenharmony_ci{ 30094332d3Sopenharmony_ci cameraBase->Close(); 31094332d3Sopenharmony_ci} 32094332d3Sopenharmony_ci 33094332d3Sopenharmony_ci/** 34094332d3Sopenharmony_ci * @tc.name: OpenCamera 35094332d3Sopenharmony_ci * @tc.desc: OpenCamera, success. 36094332d3Sopenharmony_ci * @tc.level: Level0 37094332d3Sopenharmony_ci * @tc.size: MediumTest 38094332d3Sopenharmony_ci * @tc.type: Function 39094332d3Sopenharmony_ci */ 40094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0001) 41094332d3Sopenharmony_ci{ 42094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, success."); 43094332d3Sopenharmony_ci std::vector<std::string> cameraIds; 44094332d3Sopenharmony_ci cameraBase->cameraHost->GetCameraIds(cameraIds); 45094332d3Sopenharmony_ci for (const auto &cameraId : cameraIds) { 46094332d3Sopenharmony_ci CAMERA_LOGI("cameraId = %{public}s", cameraId.c_str()); 47094332d3Sopenharmony_ci } 48094332d3Sopenharmony_ci std::string cameraId = cameraIds.front(); 49094332d3Sopenharmony_ci const OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 50094332d3Sopenharmony_ci OHOS::sptr<ICameraDevice> cameraDevice; 51094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraDevice); 52094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->rc == HDI::Camera::V1_0::NO_ERROR); 53094332d3Sopenharmony_ci} 54094332d3Sopenharmony_ci 55094332d3Sopenharmony_ci/** 56094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID input error 57094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is not found. 58094332d3Sopenharmony_ci * @tc.level: Level2 59094332d3Sopenharmony_ci * @tc.size: MediumTest 60094332d3Sopenharmony_ci * @tc.type: Function 61094332d3Sopenharmony_ci */ 62094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0010) 63094332d3Sopenharmony_ci{ 64094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is not found."); 65094332d3Sopenharmony_ci std::string cameraId = "qwerty"; 66094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 67094332d3Sopenharmony_ci CAMERA_LOGD("opencamera begin"); 68094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 69094332d3Sopenharmony_ci CAMERA_LOGD("opencamera end"); 70094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 71094332d3Sopenharmony_ci} 72094332d3Sopenharmony_ci 73094332d3Sopenharmony_ci/** 74094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID input error 75094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is illegal. 76094332d3Sopenharmony_ci * @tc.level: Level2 77094332d3Sopenharmony_ci * @tc.size: MediumTest 78094332d3Sopenharmony_ci * @tc.type: Function 79094332d3Sopenharmony_ci */ 80094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0011) 81094332d3Sopenharmony_ci{ 82094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is illegal."); 83094332d3Sopenharmony_ci std::string cameraId = "1"; 84094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 85094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 86094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 87094332d3Sopenharmony_ci} 88094332d3Sopenharmony_ci 89094332d3Sopenharmony_ci/** 90094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID input error 91094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is Empty. 92094332d3Sopenharmony_ci * @tc.level: Level2 93094332d3Sopenharmony_ci * @tc.size: MediumTest 94094332d3Sopenharmony_ci * @tc.type: Function 95094332d3Sopenharmony_ci */ 96094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0012) 97094332d3Sopenharmony_ci{ 98094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is Empty."); 99094332d3Sopenharmony_ci std::string cameraId; 100094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 101094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 102094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 103094332d3Sopenharmony_ci} 104094332d3Sopenharmony_ci 105094332d3Sopenharmony_ci/** 106094332d3Sopenharmony_ci * @tc.name: OpenCamera Callback input error 107094332d3Sopenharmony_ci * @tc.desc: OpenCamera, Callback is Null. 108094332d3Sopenharmony_ci * @tc.level: Level2 109094332d3Sopenharmony_ci * @tc.size: MediumTest 110094332d3Sopenharmony_ci * @tc.type: Function 111094332d3Sopenharmony_ci */ 112094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0020) 113094332d3Sopenharmony_ci{ 114094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, Callback is Null."); 115094332d3Sopenharmony_ci std::string cameraId = "CAMERA_FIRST"; 116094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 117094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 118094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 119094332d3Sopenharmony_ci} 120094332d3Sopenharmony_ci 121094332d3Sopenharmony_ci/** 122094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID & Callback input error 123094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is not found, callback is null. 124094332d3Sopenharmony_ci * @tc.level: Level1 125094332d3Sopenharmony_ci * @tc.size: MediumTest 126094332d3Sopenharmony_ci * @tc.type: Function 127094332d3Sopenharmony_ci */ 128094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0030) 129094332d3Sopenharmony_ci{ 130094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is not found, callback is null."); 131094332d3Sopenharmony_ci std::string cameraId = "qwerty"; 132094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 133094332d3Sopenharmony_ci CAMERA_LOGD("opencamera begin"); 134094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 135094332d3Sopenharmony_ci CAMERA_LOGD("opencamera end"); 136094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase-> rc); 137094332d3Sopenharmony_ci} 138094332d3Sopenharmony_ci 139094332d3Sopenharmony_ci/** 140094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID & Callback input error 141094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is illegal, callback is null. 142094332d3Sopenharmony_ci * @tc.level: Level1 143094332d3Sopenharmony_ci * @tc.size: MediumTest 144094332d3Sopenharmony_ci * @tc.type: Function 145094332d3Sopenharmony_ci */ 146094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0031) 147094332d3Sopenharmony_ci{ 148094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is illegal, callback is null."); 149094332d3Sopenharmony_ci std::string cameraId = "1"; 150094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 151094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 152094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase-> rc); 153094332d3Sopenharmony_ci} 154094332d3Sopenharmony_ci 155094332d3Sopenharmony_ci/** 156094332d3Sopenharmony_ci * @tc.name: OpenCamera cameraID & Callback input error 157094332d3Sopenharmony_ci * @tc.desc: OpenCamera, cameraID is Empty, callback is null. 158094332d3Sopenharmony_ci * @tc.level: Level1 159094332d3Sopenharmony_ci * @tc.size: MediumTest 160094332d3Sopenharmony_ci * @tc.type: Function 161094332d3Sopenharmony_ci */ 162094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0032) 163094332d3Sopenharmony_ci{ 164094332d3Sopenharmony_ci CAMERA_LOGD("OpenCamera, cameraID is Empty, callback is null."); 165094332d3Sopenharmony_ci std::string cameraId; 166094332d3Sopenharmony_ci OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 167094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 168094332d3Sopenharmony_ci EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 169094332d3Sopenharmony_ci} 170094332d3Sopenharmony_ci 171094332d3Sopenharmony_ci/** 172094332d3Sopenharmony_ci * @tc.name: Open all Cameras 173094332d3Sopenharmony_ci * @tc.desc: Open every Cameras what the getCameraId get. 174094332d3Sopenharmony_ci * @tc.level: Level2 175094332d3Sopenharmony_ci * @tc.size: MediumTest 176094332d3Sopenharmony_ci * @tc.type: Function 177094332d3Sopenharmony_ci */ 178094332d3Sopenharmony_ciTEST_F(UtestOpenCameraTest, camera_open_0050) 179094332d3Sopenharmony_ci{ 180094332d3Sopenharmony_ci CAMERA_LOGD("Open all Cameras."); 181094332d3Sopenharmony_ci std::vector<std::string> cameraIds; 182094332d3Sopenharmony_ci cameraBase->cameraHost->GetCameraIds(cameraIds); 183094332d3Sopenharmony_ci for (auto &cameraId : cameraIds) { 184094332d3Sopenharmony_ci CAMERA_LOGI("cameraId = %{public}s", cameraId.c_str()); 185094332d3Sopenharmony_ci const OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 186094332d3Sopenharmony_ci cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 187094332d3Sopenharmony_ci EXPECT_EQ(true, cameraBase->rc == HDI::Camera::V1_0::NO_ERROR); 188094332d3Sopenharmony_ci if (cameraBase->rc == HDI::Camera::V1_0::NO_ERROR) { 189094332d3Sopenharmony_ci CAMERA_LOGI("OpenCamera success, cameraId = %{public}s", cameraId.c_str()); 190094332d3Sopenharmony_ci } else { 191094332d3Sopenharmony_ci CAMERA_LOGE("OpenCamera fail, rc = %{public}d, cameraId = %{public}s", cameraBase->rc, cameraId.c_str()); 192094332d3Sopenharmony_ci } 193094332d3Sopenharmony_ci } 194094332d3Sopenharmony_ci} 195