1 /*
2 * Copyright (c) 2022-2024 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 "1.0/include/screen_manager_adapter_test.h"
17
18 #include "common/include/screen_manager_adapter.h"
19 #include "display_manager.h"
20 #include "dscreen_constants.h"
21 #include "dscreen_errcode.h"
22 #include "dscreen_util.h"
23 #include "token_setproc.h"
24 #include "video_param.h"
25
26 using namespace testing;
27 using namespace testing::ext;
28
29 namespace OHOS {
30 namespace DistributedHardware {
31 constexpr static uint32_t VIDEO_DATA_NUM = 480;
SetUpTestCase(void)32 void DScreenManagerAdapterTest::SetUpTestCase(void) {}
33
TearDownTestCase(void)34 void DScreenManagerAdapterTest::TearDownTestCase(void) {}
35
SetUp(void)36 void DScreenManagerAdapterTest::SetUp(void) {}
37
TearDown(void)38 void DScreenManagerAdapterTest::TearDown(void) {}
39
40 /**
41 * @tc.name: CreateVirtualScreen_001
42 * @tc.desc: Verify the CreateVirtualScreen function failed.
43 * @tc.type: FUNC
44 * @tc.require: Issue Number
45 */
46 HWTEST_F(DScreenManagerAdapterTest, CreateVirtualScreen_001, TestSize.Level1)
47 {
48 std::string devId;
49 std::string dhId;
50 std::shared_ptr<VideoParam> videoParam = nullptr;
51 uint64_t ret = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam);
52 EXPECT_EQ(SCREEN_ID_INVALID, ret);
53 }
54
55 /**
56 * @tc.name: CreateVirtualScreen_002
57 * @tc.desc: Verify the CreateVirtualScreen function failed.
58 * @tc.type: FUNC
59 * @tc.require: Issue Number
60 */
61 HWTEST_F(DScreenManagerAdapterTest, CreateVirtualScreen_002, TestSize.Level1)
62 {
63 std::string devId = "devId";
64 std::string dhId = "dhId";
65 std::shared_ptr<VideoParam> videoParam = std::make_shared<VideoParam>();
66 std::string screenName = DSCREEN_PREFIX + SEPERATOR + GetInterruptString(devId) +
67 SEPERATOR + GetInterruptString(dhId);
68 ScreenMgrAdapter::GetInstance().screenIdMap_.emplace(screenName, 100);
69 uint64_t ret = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam);
70 EXPECT_EQ(SCREEN_ID_INVALID, ret);
71 }
72
73 /**
74 * @tc.name: CreateVirtualScreen_003
75 * @tc.desc: Verify the CreateVirtualScreen function failed.
76 * @tc.type: FUNC
77 * @tc.require: Issue Number
78 */
79 HWTEST_F(DScreenManagerAdapterTest, CreateVirtualScreen_003, TestSize.Level1)
80 {
81 std::string devId = "devId";
82 std::string dhId = "dhId";
83 ScreenMgrAdapter::GetInstance().screenIdMap_.clear();
84 std::shared_ptr<VideoParam> videoParam = std::make_shared<VideoParam>();
85 uint64_t ret = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam);
86 EXPECT_EQ(1, ScreenMgrAdapter::GetInstance().screenIdMap_.size());
87
88 ret = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam);
89 EXPECT_EQ(1, ScreenMgrAdapter::GetInstance().screenIdMap_.size());
90 ScreenMgrAdapter::GetInstance().RemoveVirtualScreen(ret);
91 ScreenMgrAdapter::GetInstance().screenIdMap_.clear();
92 }
93
94 /**
95 * @tc.name: RegisterScreenGroupListener_001
96 * @tc.desc: Verify the RegisterScreenGroupListener function failed.
97 * @tc.type: FUNC
98 * @tc.require: Issue Number
99 */
100 HWTEST_F(DScreenManagerAdapterTest, RegisterScreenGroupListener_001, TestSize.Level1)
101 {
102 sptr<Rosen::ScreenManager::IScreenGroupListener> listener = nullptr;
103 int32_t ret = ScreenMgrAdapter::GetInstance().RegisterScreenGroupListener(listener);
104 EXPECT_EQ(ERR_DH_SCREEN_SA_REGISTER_SCREENLISTENER_FAIL, ret);
105 }
106
107 /**
108 * @tc.name: RegisterScreenGroupListener_002
109 * @tc.desc: Verify the RegisterScreenGroupListener function failed.
110 * @tc.type: FUNC
111 * @tc.require: Issue Number
112 */
113 HWTEST_F(DScreenManagerAdapterTest, RegisterScreenGroupListener_002, TestSize.Level1)
114 {
115 sptr<Rosen::ScreenManager::IScreenGroupListener> listener(new MockScreenGroupListener());
116 ScreenMgrAdapter::GetInstance().listenerRegistered_ = true;
117 int32_t ret = ScreenMgrAdapter::GetInstance().RegisterScreenGroupListener(listener);
118 EXPECT_EQ(DH_SUCCESS, ret);
119 }
120
121 /**
122 * @tc.name: RegisterScreenGroupListener_003
123 * @tc.desc: Verify the RegisterScreenGroupListener function failed.
124 * @tc.type: FUNC
125 * @tc.require: Issue Number
126 */
127 HWTEST_F(DScreenManagerAdapterTest, RegisterScreenGroupListener_003, TestSize.Level1)
128 {
129 sptr<Rosen::ScreenManager::IScreenGroupListener> listener(new MockScreenGroupListener());
130 ScreenMgrAdapter::GetInstance().listenerRegistered_ = false;
131 int32_t ret = ScreenMgrAdapter::GetInstance().RegisterScreenGroupListener(listener);
132 EXPECT_EQ(DH_SUCCESS, ret);
133 ScreenMgrAdapter::GetInstance().UnregisterScreenGroupListener(listener);
134 }
135
136 /**
137 * @tc.name: UnregisterScreenGroupListener_001
138 * @tc.desc: Verify the UnregisterScreenGroupListener function failed.
139 * @tc.type: FUNC
140 * @tc.require: Issue Number
141 */
142 HWTEST_F(DScreenManagerAdapterTest, UnregisterScreenGroupListener_001, TestSize.Level1)
143 {
144 sptr<Rosen::ScreenManager::IScreenGroupListener> listener = nullptr;
145 int32_t ret = ScreenMgrAdapter::GetInstance().UnregisterScreenGroupListener(listener);
146 ScreenMgrAdapter::GetInstance().RemoveScreenFromGroup(100);
147 EXPECT_EQ(ERR_DH_SCREEN_SA_UNREGISTER_SCREENLISTENER_FAIL, ret);
148 }
149
150 /**
151 * @tc.name: UnregisterScreenGroupListener_002
152 * @tc.desc: Verify the UnregisterScreenGroupListener function failed.
153 * @tc.type: FUNC
154 * @tc.require: Issue Number
155 */
156 HWTEST_F(DScreenManagerAdapterTest, UnregisterScreenGroupListener_002, TestSize.Level1)
157 {
158 sptr<Rosen::ScreenManager::IScreenGroupListener> listener(new MockScreenGroupListener());
159 ScreenMgrAdapter::GetInstance().listenerRegistered_ = false;
160 int32_t ret = ScreenMgrAdapter::GetInstance().UnregisterScreenGroupListener(listener);
161 EXPECT_EQ(DH_SUCCESS, ret);
162 }
163
164 /**
165 * @tc.name: UnregisterScreenGroupListener_003
166 * @tc.desc: Verify the UnregisterScreenGroupListener function failed.
167 * @tc.type: FUNC
168 * @tc.require: Issue Number
169 */
170 HWTEST_F(DScreenManagerAdapterTest, UnregisterScreenGroupListener_003, TestSize.Level1)
171 {
172 sptr<Rosen::ScreenManager::IScreenGroupListener> listener(new MockScreenGroupListener());
173 ScreenMgrAdapter::GetInstance().listenerRegistered_ = true;
174 int32_t ret = ScreenMgrAdapter::GetInstance().UnregisterScreenGroupListener(listener);
175 EXPECT_EQ(ERR_DH_SCREEN_SA_UNREGISTER_SCREENLISTENER_FAIL, ret);
176 }
177
178 /**
179 * @tc.name: RemoveVirtualScreen_001
180 * @tc.desc: Verify the RemoveVirtualScreen function failed.
181 * @tc.type: FUNC
182 * @tc.require: Issue Number
183 */
184 HWTEST_F(DScreenManagerAdapterTest, RemoveVirtualScreen_001, TestSize.Level1)
185 {
186 int32_t ret = ScreenMgrAdapter::GetInstance().RemoveVirtualScreen(100);
187 EXPECT_EQ(ERR_DH_SCREEN_SA_REMOVE_VIRTUALSCREEN_FAIL, ret);
188 }
189
190 /**
191 * @tc.name: SetImageSurface_001
192 * @tc.desc: Verify the SetImageSurface function failed.
193 * @tc.type: FUNC
194 * @tc.require: Issue Number
195 */
196 HWTEST_F(DScreenManagerAdapterTest, SetImageSurface_001, TestSize.Level1)
197 {
198 sptr<OHOS::Surface> surface = nullptr;
199 uint64_t screenId = 0;
200 int32_t ret = ScreenMgrAdapter::GetInstance().SetImageSurface(screenId, surface);
201 EXPECT_EQ(ERR_DH_SCREEN_SA_SET_IMAGESURFACE_FAIL, ret);
202 }
203
204 /**
205 * @tc.name: GetMapRelation_001
206 * @tc.desc: Verify the GetMapRelation function failed.
207 * @tc.type: FUNC
208 * @tc.require: Issue Number
209 */
210 HWTEST_F(DScreenManagerAdapterTest, GetMapRelation_001, TestSize.Level1)
211 {
212 std::shared_ptr<DScreenMapRelation> ret = ScreenMgrAdapter::GetInstance().GetMapRelation(100000);
213 EXPECT_EQ(nullptr, ret);
214 }
215
216 /**
217 * @tc.name: GetMapRelation_002
218 * @tc.desc: Verify the GetMapRelation function failed.
219 * @tc.type: FUNC
220 * @tc.require: Issue Number
221 */
222 HWTEST_F(DScreenManagerAdapterTest, GetMapRelation_002, TestSize.Level1)
223 {
224 std::string devId = "devId";
225 std::string dhId = "dhId";
226 ScreenMgrAdapter::GetInstance().screenIdMap_.clear();
227 std::shared_ptr<VideoParam> videoParam = std::make_shared<VideoParam>();
228 videoParam->SetScreenWidth(VIDEO_DATA_NUM);
229 videoParam->SetScreenHeight(VIDEO_DATA_NUM);
230 uint64_t VirtualScreenId = ScreenMgrAdapter::GetInstance().CreateVirtualScreen(devId, dhId, videoParam);
231 uint64_t defaultScreenId = Rosen::DisplayManager::GetInstance().GetDefaultDisplay()->GetScreenId();
232 std::shared_ptr<DScreenMapRelation> ret = ScreenMgrAdapter::GetInstance().GetMapRelation(defaultScreenId);
233 ScreenMgrAdapter::GetInstance().RemoveVirtualScreen(VirtualScreenId);
234 ScreenMgrAdapter::GetInstance().screenIdMap_.clear();
235 EXPECT_NE(nullptr, ret);
236 }
237 } // namespace DistributedHardware
238 } // namespace OHOS
239