• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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