• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 
16 #include <gtest/gtest.h>
17 #include "window_stub.h"
18 #include "window_agent.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 namespace OHOS {
23 namespace Rosen {
24 class WindowStubTest : public testing::Test {
25 public:
26     static void SetUpTestCase();
27     static void TearDownTestCase();
28     void SetUp() override;
29     void TearDown() override;
30     sptr<WindowStub> windowStub_;
31 };
32 
SetUpTestCase()33 void WindowStubTest::SetUpTestCase()
34 {
35 }
36 
TearDownTestCase()37 void WindowStubTest::TearDownTestCase()
38 {
39 }
40 
SetUp()41 void WindowStubTest::SetUp()
42 {
43     sptr<WindowOption> option = new WindowOption();
44     sptr<WindowImpl> window = new WindowImpl(option);
45     windowStub_ = new WindowAgent(window);
46 }
47 
TearDown()48 void WindowStubTest::TearDown()
49 {
50 }
51 
52 namespace {
53 /**
54  * @tc.name: OnRemoteRequest01
55  * @tc.desc: test InterfaceToken check failed
56  * @tc.type: FUNC
57  */
58 HWTEST_F(WindowStubTest, OnRemoteRequest01, Function | SmallTest | Level2)
59 {
60     MessageParcel data;
61     MessageParcel reply;
62     MessageOption option;
63 
64     data.WriteInterfaceToken(u"error.GetDescriptor");
65 
66     data.WriteInt32(0);
67     data.WriteInt32(0);
68     data.WriteUint32(100);
69     data.WriteUint32(100);
70 
71     data.WriteBool(false);
72 
73     data.WriteUint32(static_cast<uint32_t>(WindowSizeChangeReason::DRAG_START));
74 
75     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
76 
77     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
78     EXPECT_EQ(res, -1);
79 }
80 
81 /**
82  * @tc.name: OnRemoteRequest02
83  * @tc.desc: test TRANS_ID_UPDATE_WINDOW_RECT
84  * @tc.type: FUNC
85  */
86 HWTEST_F(WindowStubTest, OnRemoteRequest02, Function | SmallTest | Level2)
87 {
88     MessageParcel data;
89     MessageParcel reply;
90     MessageOption option;
91 
92     data.WriteInterfaceToken(WindowStub::GetDescriptor());
93 
94     data.WriteInt32(0);
95     data.WriteInt32(0);
96     data.WriteUint32(100);
97     data.WriteUint32(100);
98 
99     data.WriteBool(false);
100 
101     data.WriteUint32(static_cast<uint32_t>(WindowSizeChangeReason::DRAG_START));
102 
103     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
104 
105     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
106     EXPECT_EQ(res, 0);
107 }
108 
109 /**
110  * @tc.name: OnRemoteRequest03
111  * @tc.desc: test TRANS_ID_UPDATE_AVOID_AREA success
112  * @tc.type: FUNC
113  */
114 HWTEST_F(WindowStubTest, OnRemoteRequest03, Function | SmallTest | Level2)
115 {
116     MessageParcel data;
117     MessageParcel reply;
118     MessageOption option;
119 
120     data.WriteInterfaceToken(WindowStub::GetDescriptor());
121 
122     sptr<AvoidArea> avoidArea = new AvoidArea();
123     data.WriteStrongParcelable(avoidArea);
124 
125     data.WriteUint32(static_cast<uint32_t>(AvoidAreaType::TYPE_SYSTEM));
126 
127     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
128 
129     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
130     EXPECT_EQ(res, 0);
131 }
132 
133 /**
134  * @tc.name: OnRemoteRequest04
135  * @tc.desc: test TRANS_ID_UPDATE_AVOID_AREA success
136  * @tc.type: FUNC
137  */
138 HWTEST_F(WindowStubTest, OnRemoteRequest04, Function | SmallTest | Level2)
139 {
140     MessageParcel data;
141     MessageParcel reply;
142     MessageOption option;
143 
144     data.WriteInterfaceToken(WindowStub::GetDescriptor());
145 
146     sptr<AvoidArea> avoidArea = new AvoidArea();
147     data.WriteStrongParcelable(avoidArea);
148 
149     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
150 
151     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
152     EXPECT_EQ(res, -1);
153 }
154 
155 /**
156  * @tc.name: OnRemoteRequest05
157  * @tc.desc: test TRANS_ID_DUMP_INFO success
158  * @tc.type: FUNC
159  */
160 HWTEST_F(WindowStubTest, OnRemoteRequest05, Function | SmallTest | Level2)
161 {
162     MessageParcel data;
163     MessageParcel reply;
164     MessageOption option;
165 
166     data.WriteInterfaceToken(WindowStub::GetDescriptor());
167 
168     std::vector<std::string> params;
169     params.push_back("-a");
170     data.WriteStringVector(params);
171 
172     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
173 
174     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
175     EXPECT_EQ(res, 0);
176 }
177 
178 /**
179  * @tc.name: OnRemoteRequest06
180  * @tc.desc: test TRANS_ID_DUMP_INFO failed
181  * @tc.type: FUNC
182  */
183 HWTEST_F(WindowStubTest, OnRemoteRequest06, Function | SmallTest | Level2)
184 {
185     MessageParcel data;
186     MessageParcel reply;
187     MessageOption option;
188 
189     data.WriteInterfaceToken(WindowStub::GetDescriptor());
190     data.WriteRawData(nullptr, 0);
191 
192     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
193 
194     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
195     EXPECT_EQ(res, 0);
196 }
197 
198 
199 /**
200  * @tc.name: OnRemoteRequest07
201  * @tc.desc: test TRANS_ID_NOTIFY_CLIENT_POINT_UP success
202  * @tc.type: FUNC
203  */
204 HWTEST_F(WindowStubTest, OnRemoteRequest07, Function | SmallTest | Level2)
205 {
206     MessageParcel data;
207     MessageParcel reply;
208     MessageOption option;
209 
210     data.WriteInterfaceToken(WindowStub::GetDescriptor());
211 
212     std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
213     pointerEvent->WriteToParcel(data);
214 
215     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
216 
217     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
218     EXPECT_EQ(res, 0);
219 }
220 
221 /**
222  * @tc.name: OnRemoteRequest08
223  * @tc.desc: test TRANS_ID_NOTIFY_CLIENT_POINT_UP success
224  * @tc.type: FUNC
225  */
226 HWTEST_F(WindowStubTest, OnRemoteRequest08, Function | SmallTest | Level2)
227 {
228     MessageParcel data;
229     MessageParcel reply;
230     MessageOption option;
231 
232     data.WriteInterfaceToken(WindowStub::GetDescriptor());
233 
234     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
235 
236     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
237     EXPECT_EQ(res, -1);
238 }
239 
240 /**
241  * @tc.name: OnRemoteRequest09
242  * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
243  * @tc.type: FUNC
244  */
245 HWTEST_F(WindowStubTest, OnRemoteRequest09, Function | SmallTest | Level2)
246 {
247     MessageParcel data;
248     MessageParcel reply;
249     MessageOption option(MessageOption::TF_ASYNC);
250 
251     data.WriteInterfaceToken(WindowStub::GetDescriptor());
252     data.WriteBool(false);
253     uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS);
254     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
255     EXPECT_EQ(res, 0);
256 }
257 
258 /**
259  * @tc.name: OnRemoteRequest10
260  * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
261  * @tc.type: FUNC
262  */
263 HWTEST_F(WindowStubTest, OnRemoteRequest10, Function | SmallTest | Level2)
264 {
265     MessageParcel data;
266     MessageParcel reply;
267     MessageOption option(MessageOption::TF_ASYNC);
268     uint32_t code = 0;
269 
270     int res = windowStub_->OnRemoteRequest(code, data, reply, option);
271     EXPECT_EQ(res, -1);
272 
273     IWindow::WindowMessage msgId = IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT;
274     EXPECT_EQ(msgId, IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
275 }
276 }
277 }
278 }
279