• 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 "window_property.h"
19 #include "wm_common_inner.h"
20 
21 using namespace testing;
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace Rosen {
26 class WindowPropertyTest : public testing::Test {
27 public:
28     static void SetUpTestCase();
29     static void TearDownTestCase();
30     virtual void SetUp() override;
31     virtual void TearDown() override;
32 };
33 
SetUpTestCase()34 void WindowPropertyTest::SetUpTestCase()
35 {
36 }
37 
TearDownTestCase()38 void WindowPropertyTest::TearDownTestCase()
39 {
40 }
41 
SetUp()42 void WindowPropertyTest::SetUp()
43 {
44 }
45 
TearDown()46 void WindowPropertyTest::TearDown()
47 {
48 }
49 
50 namespace {
51 /**
52  * @tc.name: MarshallingUnmarshalling
53  * @tc.desc: Marshalling Unmarshalling test
54  * @tc.type: FUNC
55  */
56 HWTEST_F(WindowPropertyTest, MarshallingUnmarshalling, Function | SmallTest | Level2)
57 {
58     WindowProperty winPropSrc;
59     winPropSrc.SetPrivacyMode(true);
60     winPropSrc.SetTransparent(true);
61     winPropSrc.SetTransform(Transform::Identity());
62 
63     Parcel parcel;
64     winPropSrc.Marshalling(parcel);
65     WindowProperty* winPropDst = winPropSrc.Unmarshalling(parcel);
66 
67     ASSERT_EQ(winPropDst->GetPrivacyMode(), true);
68     ASSERT_EQ(winPropDst->GetTransparent(), true);
69     ASSERT_EQ(winPropDst->GetTransform(), Transform::Identity());
70     delete winPropDst;
71 }
72 
73 /**
74  * @tc.name: CopyFrom
75  * @tc.desc: CopyFrom test
76  * @tc.type: FUNC
77  */
78 HWTEST_F(WindowPropertyTest, CopyFrom, Function | SmallTest | Level2)
79 {
80     const sptr<WindowProperty> winPropSrc = new(std::nothrow) WindowProperty();
81     winPropSrc->SetPrivacyMode(true);
82     winPropSrc->SetTransparent(true);
83     winPropSrc->SetTransform(Transform::Identity());
84 
85     WindowProperty winPropDst(winPropSrc); // winPropDst.CopyFrom(winPropSrc);
86 
87     ASSERT_EQ(winPropSrc->GetPrivacyMode(), winPropDst.GetPrivacyMode());
88     ASSERT_EQ(winPropSrc->GetTransparent(), winPropDst.GetTransparent());
89     ASSERT_EQ(winPropSrc->GetTransform(), winPropDst.GetTransform());
90 }
91 
92 /**
93  * @tc.name: Read
94  * @tc.desc: Read test
95  * @tc.type: FUNC
96  */
97 HWTEST_F(WindowPropertyTest, Read, Function | SmallTest | Level2)
98 {
99     WindowProperty winPropSrc;
100     winPropSrc.SetPrivacyMode(true);
101     winPropSrc.SetTransparent(true);
102 
103     Parcel parcel;
104     winPropSrc.Marshalling(parcel);
105 
106     WindowProperty winPropDst;
107     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_RECT);
108     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_MODE);
109     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_FLAGS);
110     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_OTHER_PROPS);
111     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_FOCUSABLE);
112     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_TOUCHABLE);
113     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_CALLING_WINDOW);
114     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_ORIENTATION);
115     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_TURN_SCREEN_ON);
116     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_KEEP_SCREEN_ON);
117     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_SET_BRIGHTNESS);
118     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_MODE_SUPPORT_INFO);
119     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_TOUCH_HOT_AREA);
120     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_TRANSFORM_PROPERTY);
121     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_ANIMATION_FLAG);
122     winPropDst.Read(parcel, PropertyChangeAction::ACTION_UPDATE_PRIVACY_MODE);
123 
124     ASSERT_EQ(true, winPropDst.GetPrivacyMode());
125     ASSERT_EQ(false, winPropDst.GetTransparent());
126 }
127 
128 /**
129  * @tc.name: Write
130  * @tc.desc: Write test
131  * @tc.type: FUNC
132  */
133 HWTEST_F(WindowPropertyTest, Write, Function | SmallTest | Level2)
134 {
135     Parcel parcel;
136     WindowProperty winPropDst;
137     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_RECT));
138     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_MODE));
139     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_FLAGS));
140     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_OTHER_PROPS));
141     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_FOCUSABLE));
142     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_TOUCHABLE));
143     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_CALLING_WINDOW));
144     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_ORIENTATION));
145     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_TURN_SCREEN_ON));
146     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_KEEP_SCREEN_ON));
147     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_SET_BRIGHTNESS));
148     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_MODE_SUPPORT_INFO));
149     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_TOUCH_HOT_AREA));
150     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_TRANSFORM_PROPERTY));
151     ASSERT_EQ(true, winPropDst.Write(parcel, PropertyChangeAction::ACTION_UPDATE_ANIMATION_FLAG));
152 }
153 
154 /**
155  * @tc.name: SetAbilityInfo
156  * @tc.desc: Test SetAbilityInfo and GetAbilityInfo
157  * @tc.type: FUNC
158  */
159 HWTEST_F(WindowPropertyTest, SetAbilityInfo, Function | SmallTest | Level2)
160 {
161     WindowProperty winPropDst;
162     AbilityInfo info;
163     info.bundleName_ = "testBundleName";
164     info.abilityName_ = "testAbilityName";
165     winPropDst.SetAbilityInfo(info);
166     ASSERT_EQ("testBundleName", winPropDst.GetAbilityInfo().bundleName_);
167     ASSERT_EQ("testAbilityName", winPropDst.GetAbilityInfo().abilityName_);
168 }
169 
170 /**
171  * @tc.name: ResumeLastWindowMode
172  * @tc.desc: Test ResumeLastWindowMode
173  * @tc.type: FUNC
174  */
175 HWTEST_F(WindowPropertyTest, ResumeLastWindowMode, Function | SmallTest | Level2)
176 {
177     WindowProperty winPropDst;
178     winPropDst.modeSupportInfo_ =  WindowModeSupport::WINDOW_MODE_SUPPORT_PIP;
179     winPropDst.lastMode_ =  WindowMode::WINDOW_MODE_PIP;
180     winPropDst.mode_ = WindowMode::WINDOW_MODE_UNDEFINED;
181     winPropDst.ResumeLastWindowMode();
182     ASSERT_EQ(WindowMode::WINDOW_MODE_PIP, winPropDst.mode_);
183 
184     winPropDst.modeSupportInfo_ =  WindowModeSupport::WINDOW_MODE_SUPPORT_SPLIT_SECONDARY;
185     winPropDst.lastMode_ =  WindowMode::WINDOW_MODE_PIP;
186     winPropDst.mode_ = WindowMode::WINDOW_MODE_UNDEFINED;
187     winPropDst.ResumeLastWindowMode();
188     ASSERT_EQ(WindowMode::WINDOW_MODE_UNDEFINED, winPropDst.mode_);
189 
190     winPropDst.modeSupportInfo_ =  WindowModeSupport::WINDOW_MODE_SUPPORT_FLOATING;
191     winPropDst.lastMode_ =  WindowMode::WINDOW_MODE_PIP;
192     winPropDst.mode_ = WindowMode::WINDOW_MODE_UNDEFINED;
193     winPropDst.ResumeLastWindowMode();
194     ASSERT_EQ(WindowMode::WINDOW_MODE_FLOATING, winPropDst.mode_);
195 }
196 }
197 } // namespace Rosen
198 } // namespace OHOS