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 "screen_client_test.h"
17 
18 using namespace testing::ext;
19 
20 namespace OHOS {
21 namespace DistributedHardware {
22 constexpr static uint32_t VIDEO_DATA_NUM = 480;
23 
SetUpTestCase(void)24 void ScreenClientTest::SetUpTestCase(void) {}
25 
TearDownTestCase(void)26 void ScreenClientTest::TearDownTestCase(void) {}
27 
SetUp()28 void ScreenClientTest::SetUp()
29 {
30     windowProperty_ = std::make_shared<WindowProperty>();
31     windowProperty_->width = VIDEO_DATA_NUM;
32     windowProperty_->height = VIDEO_DATA_NUM;
33 }
34 
TearDown()35 void ScreenClientTest::TearDown()
36 {
37     windowProperty_ = nullptr;
38 }
39 
40 /**
41  * @tc.name: AddWindow_001
42  * @tc.desc: Verify the AddWindow function.
43  * @tc.type: FUNC
44  * @tc.require: Issue Number
45  */
HWTEST_F(ScreenClientTest, AddWindow_001, TestSize.Level1)46 HWTEST_F(ScreenClientTest, AddWindow_001, TestSize.Level1)
47 {
48     windowProperty_ = nullptr;
49     int32_t ret = ScreenClient::GetInstance().AddWindow(windowProperty_);
50     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_ADD_WINDOW_ERROR, ret);
51 }
52 
53 /**
54  * @tc.name: AddWindow_002
55  * @tc.desc: Verify the AddWindow function.
56  * @tc.type: FUNC
57  * @tc.require: Issue Number
58  */
HWTEST_F(ScreenClientTest, AddWindow_002, TestSize.Level1)59 HWTEST_F(ScreenClientTest, AddWindow_002, TestSize.Level1)
60 {
61     int32_t expectId = ScreenClient::GetInstance().AddWindow(windowProperty_);
62     int32_t ret = ScreenClient::GetInstance().RemoveWindow(expectId);
63     EXPECT_EQ(DH_SUCCESS, ret);
64 }
65 
66 /**
67  * @tc.name: ShowWindow_001
68  * @tc.desc: Verify the ShowWindow function.
69  * @tc.type: FUNC
70  * @tc.require: Issue Number
71  */
HWTEST_F(ScreenClientTest, ShowWindow_001, TestSize.Level1)72 HWTEST_F(ScreenClientTest, ShowWindow_001, TestSize.Level1)
73 {
74     int32_t ret = ScreenClient::GetInstance().ShowWindow(0);
75     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_SHOW_WINDOW_ERROR, ret);
76 }
77 
78 /**
79  * @tc.name: ShowWindow_002
80  * @tc.desc: Verify the ShowWindow function.
81  * @tc.type: FUNC
82  * @tc.require: Issue Number
83  */
HWTEST_F(ScreenClientTest, ShowWindow_002, TestSize.Level1)84 HWTEST_F(ScreenClientTest, ShowWindow_002, TestSize.Level1)
85 {
86     int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty_);
87     int32_t ret = ScreenClient::GetInstance().ShowWindow(windowId);
88     EXPECT_EQ(DH_SUCCESS, ret);
89     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
90     EXPECT_EQ(DH_SUCCESS, ret);
91 }
92 
93 /**
94  * @tc.name: ShowWindow_003
95  * @tc.desc: Verify the ShowWindow function.
96  * @tc.type: FUNC
97  * @tc.require: Issue Number
98  */
HWTEST_F(ScreenClientTest, ShowWindow_003, TestSize.Level1)99 HWTEST_F(ScreenClientTest, ShowWindow_003, TestSize.Level1)
100 {
101     int32_t windowId = 100;
102     ScreenClient::GetInstance().surfaceMap_.emplace(windowId, nullptr);
103     int32_t ret = ScreenClient::GetInstance().ShowWindow(windowId);
104     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_SHOW_WINDOW_ERROR, ret);
105     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
106     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, ret);
107 }
108 
109 /**
110  * @tc.name: HideWindow_001
111  * @tc.desc: Verify the HideWindow function.
112  * @tc.type: FUNC
113  * @tc.require: Issue Number
114  */
HWTEST_F(ScreenClientTest, HideWindow_001, TestSize.Level1)115 HWTEST_F(ScreenClientTest, HideWindow_001, TestSize.Level1)
116 {
117     int32_t ret = ScreenClient::GetInstance().HideWindow(0);
118     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_HIDE_WINDOW_ERROR, ret);
119 }
120 
121 /**
122  * @tc.name: HideWindow_002
123  * @tc.desc: Verify the HideWindow function.
124  * @tc.type: FUNC
125  * @tc.require: Issue Number
126  */
HWTEST_F(ScreenClientTest, HideWindow_002, TestSize.Level1)127 HWTEST_F(ScreenClientTest, HideWindow_002, TestSize.Level1)
128 {
129     int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty_);
130     int32_t ret = ScreenClient::GetInstance().HideWindow(windowId);
131     EXPECT_EQ(DH_SUCCESS, ret);
132     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
133     EXPECT_EQ(DH_SUCCESS, ret);
134 }
135 
136 /**
137  * @tc.name: HideWindow_003
138  * @tc.desc: Verify the HideWindow function.
139  * @tc.type: FUNC
140  * @tc.require: Issue Number
141  */
HWTEST_F(ScreenClientTest, HideWindow_003, TestSize.Level1)142 HWTEST_F(ScreenClientTest, HideWindow_003, TestSize.Level1)
143 {
144     int32_t windowId = 0;
145     ScreenClient::GetInstance().surfaceMap_.emplace(windowId, nullptr);
146     int32_t ret = ScreenClient::GetInstance().HideWindow(windowId);
147     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_HIDE_WINDOW_ERROR, ret);
148     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
149     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, ret);
150 }
151 
152 /**
153  * @tc.name: MoveWindow_001
154  * @tc.desc: Verify the MoveWindow function.
155  * @tc.type: FUNC
156  * @tc.require: Issue Number
157  */
HWTEST_F(ScreenClientTest, MoveWindow_001, TestSize.Level1)158 HWTEST_F(ScreenClientTest, MoveWindow_001, TestSize.Level1)
159 {
160     int32_t ret = ScreenClient::GetInstance().MoveWindow(0, 0, 0);
161     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_MOVE_WINDOW_ERROR, ret);
162 }
163 
164 /**
165  * @tc.name: MoveWindow_002
166  * @tc.desc: Verify the MoveWindow function.
167  * @tc.type: FUNC
168  * @tc.require: Issue Number
169  */
HWTEST_F(ScreenClientTest, MoveWindow_002, TestSize.Level1)170 HWTEST_F(ScreenClientTest, MoveWindow_002, TestSize.Level1)
171 {
172     int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty_);
173     int32_t ret = ScreenClient::GetInstance().MoveWindow(windowId, 0, 0);
174     EXPECT_EQ(DH_SUCCESS, ret);
175     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
176     EXPECT_EQ(DH_SUCCESS, ret);
177 }
178 
179 /**
180  * @tc.name: MoveWindow_003
181  * @tc.desc: Verify the MoveWindow function.
182  * @tc.type: FUNC
183  * @tc.require: Issue Number
184  */
HWTEST_F(ScreenClientTest, MoveWindow_003, TestSize.Level1)185 HWTEST_F(ScreenClientTest, MoveWindow_003, TestSize.Level1)
186 {
187     int32_t windowId = 0;
188     ScreenClient::GetInstance().surfaceMap_.emplace(windowId, nullptr);
189     int32_t ret = ScreenClient::GetInstance().MoveWindow(windowId, 0, 0);
190     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_MOVE_WINDOW_ERROR, ret);
191     ret = ScreenClient::GetInstance().RemoveWindow(windowId);
192     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, ret);
193 }
194 
195 /**
196  * @tc.name: RemoveWindow_001
197  * @tc.desc: Verify the RemoveWindow function.
198  * @tc.type: FUNC
199  * @tc.require: Issue Number
200  */
HWTEST_F(ScreenClientTest, RemoveWindow_001, TestSize.Level1)201 HWTEST_F(ScreenClientTest, RemoveWindow_001, TestSize.Level1)
202 {
203     int32_t ret = ScreenClient::GetInstance().RemoveWindow(0);
204     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, ret);
205 }
206 
207 /**
208  * @tc.name: RemoveWindow_002
209  * @tc.desc: Verify the RemoveWindow function.
210  * @tc.type: FUNC
211  * @tc.require: Issue Number
212  */
HWTEST_F(ScreenClientTest, RemoveWindow_002, TestSize.Level1)213 HWTEST_F(ScreenClientTest, RemoveWindow_002, TestSize.Level1)
214 {
215     int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty_);
216     int32_t ret = ScreenClient::GetInstance().RemoveWindow(windowId);
217     EXPECT_EQ(DH_SUCCESS, ret);
218 }
219 
220 /**
221  * @tc.name: RemoveWindow_002
222  * @tc.desc: Verify the RemoveWindow function.
223  * @tc.type: FUNC
224  * @tc.require: Issue Number
225  */
HWTEST_F(ScreenClientTest, RemoveWindow_003, TestSize.Level1)226 HWTEST_F(ScreenClientTest, RemoveWindow_003, TestSize.Level1)
227 {
228     int32_t windowId = 0;
229     ScreenClient::GetInstance().surfaceMap_.emplace(windowId, nullptr);
230     int32_t ret = ScreenClient::GetInstance().RemoveWindow(windowId);
231     EXPECT_EQ(ERR_DH_SCREEN_SCREENCLIENT_REMOVE_WINDOW_ERROR, ret);
232 }
233 
234 /**
235  * @tc.name: GetSurface_001
236  * @tc.desc: Verify the GetSurface function.
237  * @tc.type: FUNC
238  * @tc.require: Issue Number
239  */
HWTEST_F(ScreenClientTest, GetSurface_001, TestSize.Level1)240 HWTEST_F(ScreenClientTest, GetSurface_001, TestSize.Level1)
241 {
242     EXPECT_EQ(nullptr, ScreenClient::GetInstance().GetSurface(0));
243 }
244 
245 /**
246  * @tc.name: GetSurface_002
247  * @tc.desc: Verify the GetSurface function.
248  * @tc.type: FUNC
249  * @tc.require: Issue Number
250  */
HWTEST_F(ScreenClientTest, GetSurface_002, TestSize.Level1)251 HWTEST_F(ScreenClientTest, GetSurface_002, TestSize.Level1)
252 {
253     int32_t windowId = ScreenClient::GetInstance().AddWindow(windowProperty_);
254     sptr<Surface> actualSurface = ScreenClient::GetInstance().GetSurface(windowId);
255     EXPECT_NE(nullptr, actualSurface);
256     int32_t ret = ScreenClient::GetInstance().RemoveWindow(windowId);
257     EXPECT_EQ(DH_SUCCESS, ret);
258 }
259 
260 /**
261  * @tc.name: DestroyAllWindow_001
262  * @tc.desc: Verify the DestroyAllWindow function.
263  * @tc.type: FUNC
264  * @tc.require: Issue Number
265  */
HWTEST_F(ScreenClientTest, DestroyAllWindow_001, TestSize.Level1)266 HWTEST_F(ScreenClientTest, DestroyAllWindow_001, TestSize.Level1)
267 {
268     ScreenClient::GetInstance().AddWindow(windowProperty_);
269     int32_t ret = ScreenClient::GetInstance().DestroyAllWindow();
270     EXPECT_EQ(DH_SUCCESS, ret);
271 }
272 
273 } // DistributedHardware
274 } // OHOS