• 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 
18 #include <iremote_broker.h>
19 #include <iremote_object.h>
20 #include "window_transition_info.h"
21 #include "iremote_object_mocker.h"
22 
23 using namespace testing;
24 using namespace testing::ext;
25 
26 namespace OHOS {
27 namespace Rosen {
28 using RemoteMocker = IRemoteObjectMocker;
29 class WindowTransitionInfoTest : public testing::Test {
30 public:
31     static void SetUpTestCase();
32     static void TearDownTestCase();
33     void SetUp() override;
34     void TearDown() override;
35 
36     void SetTransitionInfo(sptr<WindowTransitionInfo> info);
37 };
38 
SetUpTestCase()39 void WindowTransitionInfoTest::SetUpTestCase()
40 {
41 }
42 
TearDownTestCase()43 void WindowTransitionInfoTest::TearDownTestCase()
44 {
45 }
46 
SetUp()47 void WindowTransitionInfoTest::SetUp()
48 {
49 }
50 
TearDown()51 void WindowTransitionInfoTest::TearDown()
52 {
53 }
54 
SetTransitionInfo(sptr<WindowTransitionInfo> info)55 void WindowTransitionInfoTest::SetTransitionInfo(sptr<WindowTransitionInfo> info)
56 {
57     info->bundleName_ = "bundleName";
58     info->abilityName_ = "abilityName";
59     info->mode_ = WindowMode::WINDOW_MODE_FULLSCREEN;
60     info->windowRect_ = { 10, 10, 10, 10 };
61     info->displayId_ = 0;
62 }
63 
64 namespace {
65 /**
66  * @tc.name: WindowTransitionInfo01
67  * @tc.desc: WindowTransitionInfo::WindowTransitionInfo test
68  * @tc.type: FUNC
69  */
70 HWTEST_F(WindowTransitionInfoTest, WindowTransitionInfo01, Function | SmallTest | Level2)
71 {
72     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
73     ASSERT_NE(nullptr, info);
74     info->bundleName_ = "TestAbilityTransitionInfo1";
75     sptr<WindowTransitionInfo> winTransitionInfo1 = new WindowTransitionInfo(info);
76     ASSERT_NE(nullptr, winTransitionInfo1);
77     ASSERT_EQ(info->bundleName_, winTransitionInfo1->bundleName_);
78     ASSERT_EQ(3, winTransitionInfo1->supportWindowModes_.size());
79     ASSERT_EQ(AppExecFwk::SupportWindowMode::FULLSCREEN, winTransitionInfo1->supportWindowModes_[0]);
80     ASSERT_EQ(AppExecFwk::SupportWindowMode::SPLIT, winTransitionInfo1->supportWindowModes_[1]);
81     ASSERT_EQ(AppExecFwk::SupportWindowMode::FLOATING, winTransitionInfo1->supportWindowModes_[2]);
82 
83     info->bundleName_ = "TestAbilityTransitionInfo2";
84     info->windowModes_.emplace_back(AppExecFwk::SupportWindowMode::SPLIT);
85     sptr<WindowTransitionInfo> winTransitionInfo2 = new WindowTransitionInfo(info);
86     ASSERT_EQ(info->bundleName_, winTransitionInfo2->bundleName_);
87     ASSERT_EQ(1, winTransitionInfo2->supportWindowModes_.size());
88     ASSERT_EQ(AppExecFwk::SupportWindowMode::SPLIT, winTransitionInfo2->supportWindowModes_[0]);
89 }
90 /**
91  * @tc.name: Marshalling
92  * @tc.desc: WindowTransitionInfo::Marshalling test
93  * @tc.type: FUNC
94  */
95 HWTEST_F(WindowTransitionInfoTest, Marshalling01, Function | SmallTest | Level2)
96 {
97     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
98     ASSERT_NE(nullptr, info);
99 
100     Parcel parcel;
101     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
102     ASSERT_NE(nullptr, winTransitionInfo);
103 
104     winTransitionInfo->bundleName_ = "bundleNameValue";
105     winTransitionInfo->abilityName_ = "abilityNameValue";
106 
107     bool result = winTransitionInfo->Marshalling(parcel);
108     ASSERT_EQ(true, result);
109 
110     sptr<IRemoteObject> romote = new RemoteMocker();
111     winTransitionInfo->abilityToken_ = romote;
112     result = winTransitionInfo->Marshalling(parcel);
113     ASSERT_EQ(true, result);
114 }
115 
116 /**
117  * @tc.name: GetBundleName
118  * @tc.desc: WindowTransitionInfo::GetBundleName test
119  * @tc.type: FUNC
120  */
121 HWTEST_F(WindowTransitionInfoTest, GetBundleName, Function | SmallTest | Level2)
122 {
123     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
124     ASSERT_NE(nullptr, info);
125 
126     Parcel parcel;
127     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
128     ASSERT_NE(nullptr, winTransitionInfo);
129     std::string name = "bundleNameValue";
130     winTransitionInfo->SetBundleName(name);
131     auto ret = winTransitionInfo->GetBundleName();
132     ASSERT_EQ(ret, name);
133 }
134 
135 /**
136  * @tc.name: GetAbilityName
137  * @tc.desc: WindowTransitionInfo::GetAbilityName test
138  * @tc.type: FUNC
139  */
140 HWTEST_F(WindowTransitionInfoTest, GetAbilityName, Function | SmallTest | Level2)
141 {
142     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
143     ASSERT_NE(nullptr, info);
144 
145     Parcel parcel;
146     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
147     ASSERT_NE(nullptr, winTransitionInfo);
148     std::string name = "abilityNameValue";
149     winTransitionInfo->SetAbilityName(name);
150     auto ret = winTransitionInfo->GetAbilityName();
151     ASSERT_EQ(ret, name);
152 }
153 
154 /**
155  * @tc.name: GetWindowMode
156  * @tc.desc: WindowTransitionInfo::GetWindowMode test
157  * @tc.type: FUNC
158  */
159 HWTEST_F(WindowTransitionInfoTest, GetWindowMode, Function | SmallTest | Level2)
160 {
161     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
162     ASSERT_NE(nullptr, info);
163 
164     Parcel parcel;
165     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
166     ASSERT_NE(nullptr, winTransitionInfo);
167     WindowMode mode = WindowMode{1};
168     winTransitionInfo->SetWindowMode(mode);
169     auto ret = winTransitionInfo->GetWindowMode();
170     ASSERT_EQ(ret, mode);
171 }
172 
173 /**
174  * @tc.name: GetWindowRect
175  * @tc.desc: WindowTransitionInfo::GetWindowRect test
176  * @tc.type: FUNC
177  */
178 HWTEST_F(WindowTransitionInfoTest, GetWindowRect, Function | SmallTest | Level2)
179 {
180     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
181     ASSERT_NE(nullptr, info);
182 
183     Parcel parcel;
184     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
185     ASSERT_NE(nullptr, winTransitionInfo);
186     Rect rect = {0, 0, 50, 100};
187     winTransitionInfo->SetWindowRect(rect);
188     auto ret = winTransitionInfo->GetWindowRect();
189     ASSERT_EQ(ret, rect);
190 }
191 
192 /**
193  * @tc.name: GetAbilityToken
194  * @tc.desc: WindowTransitionInfo::GetAbilityToken test
195  * @tc.type: FUNC
196  */
197 HWTEST_F(WindowTransitionInfoTest, GetAbilityToken, Function | SmallTest | Level2)
198 {
199     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
200     ASSERT_NE(nullptr, info);
201 
202     Parcel parcel;
203     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
204     ASSERT_NE(nullptr, winTransitionInfo);
205     sptr<IRemoteObject> abilityToken;
206     winTransitionInfo->SetAbilityToken(abilityToken);
207     auto ret = winTransitionInfo->GetAbilityToken();
208     ASSERT_EQ(ret, abilityToken);
209 }
210 
211 /**
212  * @tc.name: GetDisplayId
213  * @tc.desc: WindowTransitionInfo::GetDisplayId test
214  * @tc.type: FUNC
215  */
216 HWTEST_F(WindowTransitionInfoTest, GetDisplayId, Function | SmallTest | Level2)
217 {
218     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
219     ASSERT_NE(nullptr, info);
220 
221     Parcel parcel;
222     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
223     ASSERT_NE(nullptr, winTransitionInfo);
224     winTransitionInfo->SetDisplayId(0);
225     auto ret = winTransitionInfo->GetDisplayId();
226     ASSERT_EQ(ret, 0);
227 }
228 
229 /**
230  * @tc.name: GetWindowType
231  * @tc.desc: WindowTransitionInfo::GetWindowType test
232  * @tc.type: FUNC
233  */
234 HWTEST_F(WindowTransitionInfoTest, GetWindowType, Function | SmallTest | Level2)
235 {
236     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
237     ASSERT_NE(nullptr, info);
238 
239     Parcel parcel;
240     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
241     ASSERT_NE(nullptr, winTransitionInfo);
242     WindowType windowType = WindowType{1};
243     winTransitionInfo->SetWindowType(windowType);
244     auto ret = winTransitionInfo->GetWindowType();
245     ASSERT_EQ(ret, windowType);
246 }
247 
248 /**
249  * @tc.name: GetShowFlagWhenLocked
250  * @tc.desc: WindowTransitionInfo::GetShowFlagWhenLocked test
251  * @tc.type: FUNC
252  */
253 HWTEST_F(WindowTransitionInfoTest, GetShowFlagWhenLocked, Function | SmallTest | Level2)
254 {
255     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
256     ASSERT_NE(nullptr, info);
257 
258     Parcel parcel;
259     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
260     ASSERT_NE(nullptr, winTransitionInfo);
261     winTransitionInfo->SetShowFlagWhenLocked(false);
262     auto ret = winTransitionInfo->GetShowFlagWhenLocked();
263     ASSERT_EQ(ret, false);
264 }
265 
266 /**
267  * @tc.name: GetIsRecent
268  * @tc.desc: WindowTransitionInfo::GetIsRecent test
269  * @tc.type: FUNC
270  */
271 HWTEST_F(WindowTransitionInfoTest, GetIsRecent, Function | SmallTest | Level2)
272 {
273     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
274     ASSERT_NE(nullptr, info);
275 
276     Parcel parcel;
277     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
278     ASSERT_NE(nullptr, winTransitionInfo);
279     winTransitionInfo->SetIsRecent(false);
280     auto ret = winTransitionInfo->GetIsRecent();
281     ASSERT_EQ(ret, false);
282 }
283 
284 /**
285  * @tc.name: GetApiCompatibleVersion
286  * @tc.desc: WindowTransitionInfo::GetApiCompatibleVersion test
287  * @tc.type: FUNC
288  */
289 HWTEST_F(WindowTransitionInfoTest, GetApiCompatibleVersion, Function | SmallTest | Level2)
290 {
291     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
292     ASSERT_NE(nullptr, info);
293 
294     Parcel parcel;
295     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
296     ASSERT_NE(nullptr, winTransitionInfo);
297     auto ret = winTransitionInfo->GetApiCompatibleVersion();
298     ASSERT_EQ(ret, 0);
299 }
300 
301 /**
302  * @tc.name: GetMissionId
303  * @tc.desc: WindowTransitionInfo::GetMissionId test
304  * @tc.type: FUNC
305  */
306 HWTEST_F(WindowTransitionInfoTest, GetMissionId, Function | SmallTest | Level2)
307 {
308     sptr<AAFwk::AbilityTransitionInfo> info = new AAFwk::AbilityTransitionInfo();
309     ASSERT_NE(nullptr, info);
310 
311     Parcel parcel;
312     sptr<WindowTransitionInfo> winTransitionInfo = new WindowTransitionInfo(info);
313     ASSERT_NE(nullptr, winTransitionInfo);
314     winTransitionInfo->SetMissionId(0);
315     auto ret = winTransitionInfo->GetMissionId();
316     ASSERT_EQ(ret, 0);
317 }
318 }
319 } // namespace Rosen
320 } // namespace OHOS