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
SetUpTestCase(void)17 void UtestOpenCameraTest::SetUpTestCase(void)
18 {}
TearDownTestCase(void)19 void UtestOpenCameraTest::TearDownTestCase(void)
20 {}
SetUp(void)21 void UtestOpenCameraTest::SetUp(void)
22 {
23 if (cameraBase == nullptr) {
24 cameraBase = std::make_shared<TestCameraBase>();
25 cameraBase->Init();
26 }
27 }
TearDown(void)28 void 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 */
TEST_F(UtestOpenCameraTest,camera_open_0001)40 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0010)62 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0011)80 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0012)96 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0020)112 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0030)128 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0031)146 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0032)162 TEST_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 */
TEST_F(UtestOpenCameraTest,camera_open_0050)178 TEST_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