1 /* 2 * Copyright (c) 2021 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 16 #include "utest_camera_host_impl.h" 17 18 using namespace OHOS; 19 using namespace testing::ext; 20 using namespace OHOS::Camera; 21 22 HWTEST_F(CameraHostImplTest, UTestCreateCameraHost, TestSize.Level0) 23 { 24 bool ret = InitCameraHost(); 25 EXPECT_EQ(true, ret); 26 } 27 28 HWTEST_F(CameraHostImplTest, UTestGetCameraIds, TestSize.Level0) 29 { 30 bool ret = InitCameraHost(); 31 EXPECT_EQ(true, ret); 32 33 ret = GetCameraIds(); 34 EXPECT_EQ(true, ret); 35 } 36 37 HWTEST_F(CameraHostImplTest, UTestGetCameraAbility, TestSize.Level0) 38 { 39 bool ret = InitCameraHost(); 40 EXPECT_EQ(true, ret); 41 42 ret = GetCameraIds(); 43 EXPECT_EQ(true, ret); 44 45 std::shared_ptr<CameraAbility> ability = nullptr; 46 std::string cameraId = cameraIds_.front(); 47 OHOS::Camera::CamRetCode rc = 48 cameraHost_->GetCameraAbility(cameraId, ability); 49 EXPECT_EQ(OHOS::Camera::CamRetCode::NO_ERROR, rc); 50 } 51 52 #ifndef CAMERA_BUILT_ON_OHOS_LITE 53 HWTEST_F(CameraHostImplTest, UTestSetFlashlight, TestSize.Level0) 54 { 55 bool ret = InitCameraHost(); 56 EXPECT_EQ(true, ret); 57 58 ret = GetCameraIds(); 59 EXPECT_EQ(true, ret); 60 61 std::shared_ptr<CameraAbility> ability = nullptr; 62 std::string cameraId = cameraIds_.front(); 63 bool isEnable = true; 64 OHOS::Camera::CamRetCode rc = 65 cameraHost_->SetFlashlight(cameraId, isEnable); 66 EXPECT_EQ(OHOS::Camera::CamRetCode::NO_ERROR, rc); 67 68 sleep(5); 69 70 isEnable = false; 71 rc = cameraHost_->SetFlashlight(cameraId, isEnable); 72 EXPECT_EQ(OHOS::Camera::CamRetCode::NO_ERROR, rc); 73 } 74 #endif 75 76 HWTEST_F(CameraHostImplTest, UTestOpenCamera, TestSize.Level0) 77 { 78 bool ret = InitCameraHost(); 79 EXPECT_EQ(true, ret); 80 81 ret = GetCameraIds(); 82 EXPECT_EQ(true, ret); 83 84 std::string cameraId = cameraIds_.front(); 85 #ifdef CAMERA_BUILT_ON_OHOS_LITE 86 std::shared_ptr<CameraDeviceCallback> deviceCallback = std::make_shared<CameraDeviceCallback>(); 87 #else 88 OHOS::sptr<CameraDeviceCallback> deviceCallback = new CameraDeviceCallback(); 89 #endif 90 OHOS::Camera::CamRetCode rc = cameraHost_->OpenCamera( 91 cameraId, deviceCallback, cameraDevice_); 92 EXPECT_EQ(OHOS::Camera::CamRetCode::NO_ERROR, rc); 93 94 if (cameraDevice_ != nullptr) { 95 cameraDevice_->Close(); 96 cameraDevice_ = nullptr; 97 } 98 } 99 100 HWTEST_F(CameraHostImplTest, OpenCamera_CallbackIsNull, TestSize.Level0) 101 { 102 bool ret = InitCameraHost(); 103 EXPECT_EQ(true, ret); 104 105 ret = GetCameraIds(); 106 EXPECT_EQ(true, ret); 107 108 std::string cameraId = cameraIds_.front(); 109 #ifdef CAMERA_BUILT_ON_OHOS_LITE 110 std::shared_ptr<CameraDeviceCallback> deviceCallback = nullptr; 111 #else 112 OHOS::sptr<CameraDeviceCallback> deviceCallback = nullptr; 113 #endif 114 OHOS::Camera::CamRetCode rc = cameraHost_->OpenCamera( 115 cameraId, deviceCallback, cameraDevice_); 116 EXPECT_EQ(OHOS::Camera::CamRetCode::INVALID_ARGUMENT, rc); 117 118 if (cameraDevice_ != nullptr) { 119 cameraDevice_->Close(); 120 cameraDevice_ = nullptr; 121 } 122 } 123 124 HWTEST_F(CameraHostImplTest, OpenCamera_CameraIdIsEmpty, TestSize.Level0) 125 { 126 bool ret = InitCameraHost(); 127 EXPECT_EQ(true, ret); 128 129 std::string cameraId; 130 #ifdef CAMERA_BUILT_ON_OHOS_LITE 131 std::shared_ptr<CameraDeviceCallback> deviceCallback = std::make_shared<CameraDeviceCallback>(); 132 #else 133 OHOS::sptr<CameraDeviceCallback> deviceCallback = new CameraDeviceCallback(); 134 #endif 135 OHOS::Camera::CamRetCode rc = cameraHost_->OpenCamera( 136 cameraId, deviceCallback, cameraDevice_); 137 EXPECT_EQ(OHOS::Camera::CamRetCode::INVALID_ARGUMENT, rc); 138 139 if (cameraDevice_ != nullptr) { 140 cameraDevice_->Close(); 141 cameraDevice_ = nullptr; 142 } 143 } 144 145 HWTEST_F(CameraHostImplTest, OpenCamera_CameraIdIsNotFound, TestSize.Level0) 146 { 147 bool ret = InitCameraHost(); 148 EXPECT_EQ(true, ret); 149 150 std::string cameraId = "qwerty"; 151 #ifdef CAMERA_BUILT_ON_OHOS_LITE 152 std::shared_ptr<CameraDeviceCallback> deviceCallback = std::make_shared<CameraDeviceCallback>(); 153 #else 154 OHOS::sptr<CameraDeviceCallback> deviceCallback = new CameraDeviceCallback(); 155 #endif 156 OHOS::Camera::CamRetCode rc = cameraHost_->OpenCamera( 157 cameraId, deviceCallback, cameraDevice_); 158 EXPECT_EQ(OHOS::Camera::CamRetCode::INVALID_ARGUMENT, rc); 159 160 if (cameraDevice_ != nullptr) { 161 cameraDevice_->Close(); 162 cameraDevice_ = nullptr; 163 } 164 } 165 166 HWTEST_F(CameraHostImplTest, UtestSetCallback, TestSize.Level0) 167 { 168 bool ret = InitCameraHost(); 169 EXPECT_EQ(true, ret); 170 #ifdef CAMERA_BUILT_ON_OHOS_LITE 171 std::shared_ptr<CameraHostCallback> callback = std::make_shared<CameraHostCallback>(); 172 #else 173 OHOS::sptr<CameraHostCallback> callback = new CameraHostCallback(); 174 #endif 175 OHOS::Camera::CamRetCode rc = cameraHost_->SetCallback(callback); 176 EXPECT_EQ(OHOS::Camera::CamRetCode::NO_ERROR, rc); 177 } 178