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 except 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 "open_camera_test.h" 16 17void UtestOpenCameraTest::SetUpTestCase(void) 18{} 19void UtestOpenCameraTest::TearDownTestCase(void) 20{} 21void UtestOpenCameraTest::SetUp(void) 22{ 23 if (cameraBase == nullptr) { 24 cameraBase = std::make_shared<TestCameraBase>(); 25 cameraBase->Init(); 26 } 27} 28void UtestOpenCameraTest::TearDown(void) 29{ 30 cameraBase->Close(); 31} 32 33/** 34 * @tc.name: OpenCamera 35 * @tc.desc: OpenCamera, success. 36 * @tc.level: Level0 37 * @tc.size: MediumTest 38 * @tc.type: Function 39 */ 40TEST_F(UtestOpenCameraTest, camera_open_0001) 41{ 42 CAMERA_LOGD("OpenCamera, success."); 43 std::vector<std::string> cameraIds; 44 cameraBase->cameraHost->GetCameraIds(cameraIds); 45 for (const auto &cameraId : cameraIds) { 46 CAMERA_LOGI("cameraId = %{public}s", cameraId.c_str()); 47 } 48 std::string cameraId = cameraIds.front(); 49 const OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 50 OHOS::sptr<ICameraDevice> cameraDevice; 51 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraDevice); 52 EXPECT_EQ(true, cameraBase->rc == HDI::Camera::V1_0::NO_ERROR); 53} 54 55/** 56 * @tc.name: OpenCamera cameraID input error 57 * @tc.desc: OpenCamera, cameraID is not found. 58 * @tc.level: Level2 59 * @tc.size: MediumTest 60 * @tc.type: Function 61 */ 62TEST_F(UtestOpenCameraTest, camera_open_0010) 63{ 64 CAMERA_LOGD("OpenCamera, cameraID is not found."); 65 std::string cameraId = "qwerty"; 66 OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 67 CAMERA_LOGD("opencamera begin"); 68 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 69 CAMERA_LOGD("opencamera end"); 70 EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 71} 72 73/** 74 * @tc.name: OpenCamera cameraID input error 75 * @tc.desc: OpenCamera, cameraID is illegal. 76 * @tc.level: Level2 77 * @tc.size: MediumTest 78 * @tc.type: Function 79 */ 80TEST_F(UtestOpenCameraTest, camera_open_0011) 81{ 82 CAMERA_LOGD("OpenCamera, cameraID is illegal."); 83 std::string cameraId = "1"; 84 OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 85 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 86 EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 87} 88 89/** 90 * @tc.name: OpenCamera cameraID input error 91 * @tc.desc: OpenCamera, cameraID is Empty. 92 * @tc.level: Level2 93 * @tc.size: MediumTest 94 * @tc.type: Function 95 */ 96TEST_F(UtestOpenCameraTest, camera_open_0012) 97{ 98 CAMERA_LOGD("OpenCamera, cameraID is Empty."); 99 std::string cameraId; 100 OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 101 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 102 EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 103} 104 105/** 106 * @tc.name: OpenCamera Callback input error 107 * @tc.desc: OpenCamera, Callback is Null. 108 * @tc.level: Level2 109 * @tc.size: MediumTest 110 * @tc.type: Function 111 */ 112TEST_F(UtestOpenCameraTest, camera_open_0020) 113{ 114 CAMERA_LOGD("OpenCamera, Callback is Null."); 115 std::string cameraId = "CAMERA_FIRST"; 116 OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 117 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 118 EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 119} 120 121/** 122 * @tc.name: OpenCamera cameraID & Callback input error 123 * @tc.desc: OpenCamera, cameraID is not found, callback is null. 124 * @tc.level: Level1 125 * @tc.size: MediumTest 126 * @tc.type: Function 127 */ 128TEST_F(UtestOpenCameraTest, camera_open_0030) 129{ 130 CAMERA_LOGD("OpenCamera, cameraID is not found, callback is null."); 131 std::string cameraId = "qwerty"; 132 OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 133 CAMERA_LOGD("opencamera begin"); 134 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 135 CAMERA_LOGD("opencamera end"); 136 EXPECT_EQ(INVALID_ARGUMENT, cameraBase-> rc); 137} 138 139/** 140 * @tc.name: OpenCamera cameraID & Callback input error 141 * @tc.desc: OpenCamera, cameraID is illegal, callback is null. 142 * @tc.level: Level1 143 * @tc.size: MediumTest 144 * @tc.type: Function 145 */ 146TEST_F(UtestOpenCameraTest, camera_open_0031) 147{ 148 CAMERA_LOGD("OpenCamera, cameraID is illegal, callback is null."); 149 std::string cameraId = "1"; 150 OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 151 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 152 EXPECT_EQ(INVALID_ARGUMENT, cameraBase-> rc); 153} 154 155/** 156 * @tc.name: OpenCamera cameraID & Callback input error 157 * @tc.desc: OpenCamera, cameraID is Empty, callback is null. 158 * @tc.level: Level1 159 * @tc.size: MediumTest 160 * @tc.type: Function 161 */ 162TEST_F(UtestOpenCameraTest, camera_open_0032) 163{ 164 CAMERA_LOGD("OpenCamera, cameraID is Empty, callback is null."); 165 std::string cameraId; 166 OHOS::sptr<ICameraDeviceCallback> callback = nullptr; 167 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 168 EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc); 169} 170 171/** 172 * @tc.name: Open all Cameras 173 * @tc.desc: Open every Cameras what the getCameraId get. 174 * @tc.level: Level2 175 * @tc.size: MediumTest 176 * @tc.type: Function 177 */ 178TEST_F(UtestOpenCameraTest, camera_open_0050) 179{ 180 CAMERA_LOGD("Open all Cameras."); 181 std::vector<std::string> cameraIds; 182 cameraBase->cameraHost->GetCameraIds(cameraIds); 183 for (auto &cameraId : cameraIds) { 184 CAMERA_LOGI("cameraId = %{public}s", cameraId.c_str()); 185 const OHOS::sptr<ICameraDeviceCallback> callback = new DemoCameraDeviceCallback(); 186 cameraBase->rc = (CamRetCode)cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice); 187 EXPECT_EQ(true, cameraBase->rc == HDI::Camera::V1_0::NO_ERROR); 188 if (cameraBase->rc == HDI::Camera::V1_0::NO_ERROR) { 189 CAMERA_LOGI("OpenCamera success, cameraId = %{public}s", cameraId.c_str()); 190 } else { 191 CAMERA_LOGE("OpenCamera fail, rc = %{public}d, cameraId = %{public}s", cameraBase->rc, cameraId.c_str()); 192 } 193 } 194} 195