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