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