1e0dac50fSopenharmony_ci/*
2e0dac50fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License.
5e0dac50fSopenharmony_ci * You may obtain a copy of the License at
6e0dac50fSopenharmony_ci *
7e0dac50fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e0dac50fSopenharmony_ci *
9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and
13e0dac50fSopenharmony_ci * limitations under the License.
14e0dac50fSopenharmony_ci */
15e0dac50fSopenharmony_ci#include <gtest/gtest.h>
16e0dac50fSopenharmony_ci
17e0dac50fSopenharmony_ci#include "display_manager.h"
18e0dac50fSopenharmony_ci#include "display_manager_config.h"
19e0dac50fSopenharmony_ci#include "future.h"
20e0dac50fSopenharmony_ci#include "wm_math.h"
21e0dac50fSopenharmony_ci#include "window_node.h"
22e0dac50fSopenharmony_ci#include "window_node_container.h"
23e0dac50fSopenharmony_ci
24e0dac50fSopenharmony_ciusing namespace testing;
25e0dac50fSopenharmony_ciusing namespace testing::ext;
26e0dac50fSopenharmony_ci
27e0dac50fSopenharmony_cinamespace OHOS {
28e0dac50fSopenharmony_cinamespace Rosen {
29e0dac50fSopenharmony_ciclass WindowNodeTest : public testing::Test {
30e0dac50fSopenharmony_cipublic:
31e0dac50fSopenharmony_ci    static void SetUpTestCase();
32e0dac50fSopenharmony_ci    static void TearDownTestCase();
33e0dac50fSopenharmony_ci    virtual void SetUp() override;
34e0dac50fSopenharmony_ci    virtual void TearDown() override;
35e0dac50fSopenharmony_ci};
36e0dac50fSopenharmony_ci
37e0dac50fSopenharmony_civoid WindowNodeTest::SetUpTestCase()
38e0dac50fSopenharmony_ci{
39e0dac50fSopenharmony_ci}
40e0dac50fSopenharmony_ci
41e0dac50fSopenharmony_civoid WindowNodeTest::TearDownTestCase()
42e0dac50fSopenharmony_ci{
43e0dac50fSopenharmony_ci}
44e0dac50fSopenharmony_ci
45e0dac50fSopenharmony_civoid WindowNodeTest::SetUp()
46e0dac50fSopenharmony_ci{
47e0dac50fSopenharmony_ci}
48e0dac50fSopenharmony_ci
49e0dac50fSopenharmony_civoid WindowNodeTest::TearDown()
50e0dac50fSopenharmony_ci{
51e0dac50fSopenharmony_ci}
52e0dac50fSopenharmony_ciclass WindowListener : public IWindow {
53e0dac50fSopenharmony_cipublic:
54e0dac50fSopenharmony_ci    virtual WMError UpdateWindowRect(const struct Rect& rect, bool decoStatus, WindowSizeChangeReason reason,
55e0dac50fSopenharmony_ci        const std::shared_ptr<RSTransaction>& rsTransaction = nullptr) override
56e0dac50fSopenharmony_ci    {
57e0dac50fSopenharmony_ci        return WMError::WM_OK;
58e0dac50fSopenharmony_ci    };
59e0dac50fSopenharmony_ci    virtual WMError UpdateWindowMode(WindowMode mode) override
60e0dac50fSopenharmony_ci    {
61e0dac50fSopenharmony_ci        return WMError::WM_OK;
62e0dac50fSopenharmony_ci    };
63e0dac50fSopenharmony_ci    virtual WMError UpdateWindowModeSupportInfo(uint32_t modeSupportInfo) override
64e0dac50fSopenharmony_ci    {
65e0dac50fSopenharmony_ci        return WMError::WM_OK;
66e0dac50fSopenharmony_ci    };
67e0dac50fSopenharmony_ci    virtual WMError UpdateFocusStatus(bool focused) override
68e0dac50fSopenharmony_ci    {
69e0dac50fSopenharmony_ci        return WMError::WM_OK;
70e0dac50fSopenharmony_ci    };
71e0dac50fSopenharmony_ci    virtual WMError UpdateAvoidArea(const sptr<AvoidArea>& avoidArea, AvoidAreaType type) override
72e0dac50fSopenharmony_ci    {
73e0dac50fSopenharmony_ci        return WMError::WM_OK;
74e0dac50fSopenharmony_ci    };
75e0dac50fSopenharmony_ci    virtual WMError UpdateWindowState(WindowState state) override
76e0dac50fSopenharmony_ci    {
77e0dac50fSopenharmony_ci        return WMError::WM_OK;
78e0dac50fSopenharmony_ci    };
79e0dac50fSopenharmony_ci    virtual WMError UpdateWindowDragInfo(const PointInfo& point, DragEvent event) override
80e0dac50fSopenharmony_ci    {
81e0dac50fSopenharmony_ci        return WMError::WM_OK;
82e0dac50fSopenharmony_ci    };
83e0dac50fSopenharmony_ci    virtual WMError UpdateDisplayId(DisplayId from, DisplayId to) override
84e0dac50fSopenharmony_ci    {
85e0dac50fSopenharmony_ci        return WMError::WM_OK;
86e0dac50fSopenharmony_ci    };
87e0dac50fSopenharmony_ci    virtual WMError UpdateOccupiedAreaChangeInfo(const sptr<OccupiedAreaChangeInfo>& info,
88e0dac50fSopenharmony_ci        const std::shared_ptr<RSTransaction>& rsTransaction = nullptr) override
89e0dac50fSopenharmony_ci    {
90e0dac50fSopenharmony_ci        return WMError::WM_OK;
91e0dac50fSopenharmony_ci    };
92e0dac50fSopenharmony_ci    virtual WMError UpdateOccupiedAreaAndRect(const sptr<OccupiedAreaChangeInfo>& info, const Rect& rect,
93e0dac50fSopenharmony_ci        const std::shared_ptr<RSTransaction>& rsTransaction = nullptr) override
94e0dac50fSopenharmony_ci    {
95e0dac50fSopenharmony_ci        return WMError::WM_OK;
96e0dac50fSopenharmony_ci    };
97e0dac50fSopenharmony_ci    virtual WMError UpdateActiveStatus(bool isActive) override
98e0dac50fSopenharmony_ci    {
99e0dac50fSopenharmony_ci        return WMError::WM_OK;
100e0dac50fSopenharmony_ci    };
101e0dac50fSopenharmony_ci    virtual sptr<WindowProperty> GetWindowProperty() override
102e0dac50fSopenharmony_ci    {
103e0dac50fSopenharmony_ci        return nullptr;
104e0dac50fSopenharmony_ci    };
105e0dac50fSopenharmony_ci    virtual WMError NotifyTouchOutside() override
106e0dac50fSopenharmony_ci    {
107e0dac50fSopenharmony_ci        return WMError::WM_OK;
108e0dac50fSopenharmony_ci    };
109e0dac50fSopenharmony_ci    virtual WMError NotifyScreenshot() override
110e0dac50fSopenharmony_ci    {
111e0dac50fSopenharmony_ci        return WMError::WM_OK;
112e0dac50fSopenharmony_ci    };
113e0dac50fSopenharmony_ci    virtual WMError DumpInfo(const std::vector<std::string>& params) override
114e0dac50fSopenharmony_ci    {
115e0dac50fSopenharmony_ci        return WMError::WM_OK;
116e0dac50fSopenharmony_ci    };
117e0dac50fSopenharmony_ci    virtual WMError NotifyDestroy(void) override
118e0dac50fSopenharmony_ci    {
119e0dac50fSopenharmony_ci        return WMError::WM_OK;
120e0dac50fSopenharmony_ci    };
121e0dac50fSopenharmony_ci    WMError NotifyForeground(void) override
122e0dac50fSopenharmony_ci    {
123e0dac50fSopenharmony_ci        return WMError::WM_OK;
124e0dac50fSopenharmony_ci    };
125e0dac50fSopenharmony_ci    WMError NotifyBackground(void) override
126e0dac50fSopenharmony_ci    {
127e0dac50fSopenharmony_ci        return WMError::WM_OK;
128e0dac50fSopenharmony_ci    };
129e0dac50fSopenharmony_ci    virtual WMError NotifyWindowClientPointUp(const std::shared_ptr<MMI::PointerEvent>& pointerEvent) override
130e0dac50fSopenharmony_ci    {
131e0dac50fSopenharmony_ci        return WMError::WM_OK;
132e0dac50fSopenharmony_ci    };
133e0dac50fSopenharmony_ci    WMError UpdateZoomTransform(const Transform& trans, bool isDisplayZoomOn) override
134e0dac50fSopenharmony_ci    {
135e0dac50fSopenharmony_ci        return WMError::WM_OK;
136e0dac50fSopenharmony_ci    };
137e0dac50fSopenharmony_ci    virtual WMError RestoreSplitWindowMode(uint32_t mode) override
138e0dac50fSopenharmony_ci    {
139e0dac50fSopenharmony_ci        return WMError::WM_OK;
140e0dac50fSopenharmony_ci    };
141e0dac50fSopenharmony_ci
142e0dac50fSopenharmony_ci    virtual sptr<IRemoteObject> AsObject() override
143e0dac50fSopenharmony_ci    {
144e0dac50fSopenharmony_ci        return nullptr;
145e0dac50fSopenharmony_ci    };
146e0dac50fSopenharmony_ci    void ConsumeKeyEvent(std::shared_ptr<MMI::KeyEvent> event) override {}
147e0dac50fSopenharmony_ci    void NotifyForegroundInteractiveStatus(bool interactive) override {}
148e0dac50fSopenharmony_ci};
149e0dac50fSopenharmony_ci
150e0dac50fSopenharmony_cisptr<WindowProperty> CreateWindowProperty(uint32_t windowId, const std::string& windowName)
151e0dac50fSopenharmony_ci{
152e0dac50fSopenharmony_ci    sptr<WindowProperty> property = new WindowProperty();
153e0dac50fSopenharmony_ci    property->SetWindowId(windowId);
154e0dac50fSopenharmony_ci    property->SetWindowName(windowName);
155e0dac50fSopenharmony_ci    return property;
156e0dac50fSopenharmony_ci}
157e0dac50fSopenharmony_ci
158e0dac50fSopenharmony_ciRSSurfaceNode::SharedPtr CreateRSSurfaceNode(std::string windowNode)
159e0dac50fSopenharmony_ci{
160e0dac50fSopenharmony_ci    struct RSSurfaceNodeConfig rsSurfaceNodeConfig;
161e0dac50fSopenharmony_ci    rsSurfaceNodeConfig.SurfaceNodeName = windowNode;
162e0dac50fSopenharmony_ci    auto surfaceNode = RSSurfaceNode::Create(rsSurfaceNodeConfig);
163e0dac50fSopenharmony_ci    return surfaceNode;
164e0dac50fSopenharmony_ci}
165e0dac50fSopenharmony_cinamespace {
166e0dac50fSopenharmony_ci/**
167e0dac50fSopenharmony_ci * @tc.name: NewWindowNode01
168e0dac50fSopenharmony_ci * @tc.desc: new window node with WindowProperty
169e0dac50fSopenharmony_ci * @tc.type: FUNC
170e0dac50fSopenharmony_ci */
171e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, NewWindowNode01, Function | SmallTest | Level3)
172e0dac50fSopenharmony_ci{
173e0dac50fSopenharmony_ci    std::string windowName = "WindowNode01";
174e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(1, windowName);
175e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
176e0dac50fSopenharmony_ci
177e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode2 = new WindowNode(property);
178e0dac50fSopenharmony_ci    windowNode2->SetWindowProperty(property);
179e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode2);
180e0dac50fSopenharmony_ci    ASSERT_EQ(windowName, windowNode2->GetWindowName());
181e0dac50fSopenharmony_ci}
182e0dac50fSopenharmony_ci/**
183e0dac50fSopenharmony_ci * @tc.name: NewWindowNode02
184e0dac50fSopenharmony_ci * @tc.desc: new window node with WindowProperty, RSSurfaceNode, IWindow
185e0dac50fSopenharmony_ci * @tc.type: FUNC
186e0dac50fSopenharmony_ci */
187e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, NewWindowNode02, Function | SmallTest | Level1)
188e0dac50fSopenharmony_ci{
189e0dac50fSopenharmony_ci    std::string windowName = "WindowNode02";
190e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(2, windowName);
191e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
192e0dac50fSopenharmony_ci
193e0dac50fSopenharmony_ci    auto surfaceNode = CreateRSSurfaceNode(windowName);
194e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, surfaceNode);
195e0dac50fSopenharmony_ci
196e0dac50fSopenharmony_ci    WindowListener* iWindow = new WindowListener();
197e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, iWindow);
198e0dac50fSopenharmony_ci
199e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property, iWindow, surfaceNode);
200e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
201e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
202e0dac50fSopenharmony_ci    ASSERT_EQ(windowName, windowNode->GetWindowName());
203e0dac50fSopenharmony_ci}
204e0dac50fSopenharmony_ci/**
205e0dac50fSopenharmony_ci * @tc.name: NewWindowNode03
206e0dac50fSopenharmony_ci * @tc.desc: new window node with WindowProperty, RSSurfaceNode, IWindow, pid , uid
207e0dac50fSopenharmony_ci * @tc.type: FUNC
208e0dac50fSopenharmony_ci */
209e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, NewWindowNode03, Function | SmallTest | Level1)
210e0dac50fSopenharmony_ci{
211e0dac50fSopenharmony_ci    std::string windowName = "WindowNode03";
212e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(3, windowName);
213e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
214e0dac50fSopenharmony_ci    auto surfaceNode = CreateRSSurfaceNode(windowName);
215e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, surfaceNode);
216e0dac50fSopenharmony_ci    sptr<WindowListener> iWindow = new Rosen::WindowListener();
217e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, iWindow);
218e0dac50fSopenharmony_ci
219e0dac50fSopenharmony_ci    int32_t pid = 1;
220e0dac50fSopenharmony_ci    int32_t uid = 2;
221e0dac50fSopenharmony_ci    WindowNode* windowNode = new WindowNode(property, iWindow, surfaceNode, pid, uid);
222e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
223e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
224e0dac50fSopenharmony_ci
225e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetInputEventCallingPid());
226e0dac50fSopenharmony_ci    ASSERT_EQ(2, windowNode->GetCallingPid());
227e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetCallingUid());
228e0dac50fSopenharmony_ci}
229e0dac50fSopenharmony_ci
230e0dac50fSopenharmony_ci/**
231e0dac50fSopenharmony_ci * @tc.name: SetDisplayId01
232e0dac50fSopenharmony_ci * @tc.desc: SetDisplayId & GetDisplayId
233e0dac50fSopenharmony_ci * @tc.type: FUNC
234e0dac50fSopenharmony_ci */
235e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetDisplayId01, Function | SmallTest | Level1)
236e0dac50fSopenharmony_ci{
237e0dac50fSopenharmony_ci    std::string windowName = "WindowNode04";
238e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(4, windowName);
239e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
240e0dac50fSopenharmony_ci
241e0dac50fSopenharmony_ci    WindowNode* windowNode = new WindowNode(property);
242e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
243e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
244e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetDisplayId());
245e0dac50fSopenharmony_ci
246e0dac50fSopenharmony_ci    windowNode->SetDisplayId(1);
247e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetDisplayId());
248e0dac50fSopenharmony_ci}
249e0dac50fSopenharmony_ci
250e0dac50fSopenharmony_ci/**
251e0dac50fSopenharmony_ci * @tc.name: SetEntireWindowTouchHotArea01
252e0dac50fSopenharmony_ci * @tc.desc: SetEntireWindowTouchHotArea & GetEntireWindowTouchHotArea
253e0dac50fSopenharmony_ci * @tc.type: FUNC
254e0dac50fSopenharmony_ci */
255e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetEntireWindowTouchHotArea01, Function | SmallTest | Level1)
256e0dac50fSopenharmony_ci{
257e0dac50fSopenharmony_ci    std::string windowName = "WindowNode05";
258e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(5, windowName);
259e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
260e0dac50fSopenharmony_ci
261e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
262e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
263e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
264e0dac50fSopenharmony_ci
265e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowTouchHotArea().posX_);
266e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowTouchHotArea().posY_);
267e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowTouchHotArea().width_);
268e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowTouchHotArea().height_);
269e0dac50fSopenharmony_ci
270e0dac50fSopenharmony_ci    Rect testValue = { 10, 10, 255, 255 };
271e0dac50fSopenharmony_ci    windowNode->SetEntireWindowTouchHotArea(testValue);
272e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.posX_, windowNode->GetEntireWindowTouchHotArea().posX_);
273e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.posY_, windowNode->GetEntireWindowTouchHotArea().posY_);
274e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.width_, windowNode->GetEntireWindowTouchHotArea().width_);
275e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.height_, windowNode->GetEntireWindowTouchHotArea().height_);
276e0dac50fSopenharmony_ci}
277e0dac50fSopenharmony_ci/**
278e0dac50fSopenharmony_ci * @tc.name: SetEntireWindowPointerHotArea01
279e0dac50fSopenharmony_ci * @tc.desc: SetEntireWindowPointerHotArea & GetEntireWindowPointerHotArea
280e0dac50fSopenharmony_ci * @tc.type: FUNC
281e0dac50fSopenharmony_ci */
282e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetEntireWindowPointerHotArea01, Function | SmallTest | Level1)
283e0dac50fSopenharmony_ci{
284e0dac50fSopenharmony_ci    std::string windowName = "WindowNode06";
285e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(6, windowName);
286e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
287e0dac50fSopenharmony_ci
288e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
289e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
290e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
291e0dac50fSopenharmony_ci
292e0dac50fSopenharmony_ci    Rect rect1 = {0, 0, 0, 0};
293e0dac50fSopenharmony_ci    windowNode->SetEntireWindowPointerHotArea(rect1);
294e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowPointerHotArea().posX_);
295e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowPointerHotArea().posY_);
296e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowPointerHotArea().width_);
297e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetEntireWindowPointerHotArea().height_);
298e0dac50fSopenharmony_ci
299e0dac50fSopenharmony_ci    Rect rect2 = {10, 10, 255, 255};
300e0dac50fSopenharmony_ci    windowNode->SetEntireWindowPointerHotArea(rect2);
301e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetEntireWindowPointerHotArea().posX_);
302e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetEntireWindowPointerHotArea().posY_);
303e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetEntireWindowPointerHotArea().width_);
304e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetEntireWindowPointerHotArea().height_);
305e0dac50fSopenharmony_ci}
306e0dac50fSopenharmony_ci/**
307e0dac50fSopenharmony_ci * @tc.name: SetWindowRect01
308e0dac50fSopenharmony_ci * @tc.desc: SetWindowRect & GetWindowRect
309e0dac50fSopenharmony_ci * @tc.type: FUNC
310e0dac50fSopenharmony_ci */
311e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowRect01, Function | SmallTest | Level1)
312e0dac50fSopenharmony_ci{
313e0dac50fSopenharmony_ci    std::string windowName = "WindowNode07";
314e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(7, windowName);
315e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
316e0dac50fSopenharmony_ci
317e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
318e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
319e0dac50fSopenharmony_ci
320e0dac50fSopenharmony_ci    Rect rect1 = {0, 0, 0, 0};
321e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
322e0dac50fSopenharmony_ci    windowNode->SetWindowRect(rect1);
323e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetWindowRect().posX_);
324e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetWindowRect().posY_);
325e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetWindowRect().width_);
326e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetWindowRect().height_);
327e0dac50fSopenharmony_ci
328e0dac50fSopenharmony_ci    Rect rect2 = {10, 10, 255, 255};
329e0dac50fSopenharmony_ci    windowNode->SetWindowRect(rect2);
330e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetWindowRect().posX_);
331e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetWindowRect().posY_);
332e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetWindowRect().width_);
333e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetWindowRect().height_);
334e0dac50fSopenharmony_ci}
335e0dac50fSopenharmony_ci/**
336e0dac50fSopenharmony_ci * @tc.name: SetDecoStatus01
337e0dac50fSopenharmony_ci * @tc.desc: SetDecoStatus & GetDecoStatus
338e0dac50fSopenharmony_ci * @tc.type: FUNC
339e0dac50fSopenharmony_ci */
340e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetDecoStatus01, Function | SmallTest | Level1)
341e0dac50fSopenharmony_ci{
342e0dac50fSopenharmony_ci    std::string windowName = "WindowNode08";
343e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(8, windowName);
344e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
345e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
346e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
347e0dac50fSopenharmony_ci
348e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
349e0dac50fSopenharmony_ci    windowNode->SetDecoStatus(true);
350e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->GetDecoStatus());
351e0dac50fSopenharmony_ci    windowNode->SetDecoStatus(false);
352e0dac50fSopenharmony_ci    ASSERT_EQ(false, windowNode->GetDecoStatus());
353e0dac50fSopenharmony_ci
354e0dac50fSopenharmony_ci    windowNode->SetDecorEnable(true);
355e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->GetWindowProperty()->GetDecorEnable());
356e0dac50fSopenharmony_ci    windowNode->SetDecorEnable(false);
357e0dac50fSopenharmony_ci    ASSERT_EQ(false, windowNode->GetWindowProperty()->GetDecorEnable());
358e0dac50fSopenharmony_ci}
359e0dac50fSopenharmony_ci/**
360e0dac50fSopenharmony_ci * @tc.name: SetRequestRect01
361e0dac50fSopenharmony_ci * @tc.desc: SetRequestRect & GetRequestRect
362e0dac50fSopenharmony_ci * @tc.type: FUNC
363e0dac50fSopenharmony_ci */
364e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetRequestRect01, Function | SmallTest | Level1)
365e0dac50fSopenharmony_ci{
366e0dac50fSopenharmony_ci    std::string windowName = "WindowNode09";
367e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(9, windowName);
368e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
369e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
370e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
371e0dac50fSopenharmony_ci
372e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
373e0dac50fSopenharmony_ci    Rect rect1 = { 0, 0, 0, 0 };
374e0dac50fSopenharmony_ci    windowNode->SetRequestRect(rect1);
375e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetRequestRect().posX_);
376e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetRequestRect().posY_);
377e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetRequestRect().width_);
378e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetRequestRect().height_);
379e0dac50fSopenharmony_ci
380e0dac50fSopenharmony_ci    Rect rect2 = { 10, 10, 255, 255 };
381e0dac50fSopenharmony_ci    windowNode->SetRequestRect(rect2);
382e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetRequestRect().posX_);
383e0dac50fSopenharmony_ci    ASSERT_EQ(10, windowNode->GetRequestRect().posY_);
384e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetRequestRect().width_);
385e0dac50fSopenharmony_ci    ASSERT_EQ(255, windowNode->GetRequestRect().height_);
386e0dac50fSopenharmony_ci}
387e0dac50fSopenharmony_ci/**
388e0dac50fSopenharmony_ci * @tc.name: SetWindowProperty01
389e0dac50fSopenharmony_ci * @tc.desc: SetWindowProperty & GetWindowProperty
390e0dac50fSopenharmony_ci * @tc.type: FUNC
391e0dac50fSopenharmony_ci */
392e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowProperty01, Function | SmallTest | Level1)
393e0dac50fSopenharmony_ci{
394e0dac50fSopenharmony_ci    std::string windowName = "WindowNode09";
395e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(9, windowName);
396e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
397e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
398e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
399e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
400e0dac50fSopenharmony_ci    ASSERT_EQ(property, windowNode->GetWindowProperty());
401e0dac50fSopenharmony_ci
402e0dac50fSopenharmony_ci    auto property2 = CreateWindowProperty(10, windowName);
403e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property2);
404e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property2);
405e0dac50fSopenharmony_ci    ASSERT_EQ(property2, windowNode->GetWindowProperty());
406e0dac50fSopenharmony_ci}
407e0dac50fSopenharmony_ci/**
408e0dac50fSopenharmony_ci * @tc.name: SetSystemBarProperty01
409e0dac50fSopenharmony_ci * @tc.desc: SetSystemBarProperty & GetSystemBarProperty
410e0dac50fSopenharmony_ci * @tc.type: FUNC
411e0dac50fSopenharmony_ci */
412e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetSystemBarProperty01, Function | SmallTest | Level1)
413e0dac50fSopenharmony_ci{
414e0dac50fSopenharmony_ci    std::string windowName = "WindowNode10";
415e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(10, windowName);
416e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
417e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
418e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
419e0dac50fSopenharmony_ci
420e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
421e0dac50fSopenharmony_ci    SystemBarProperty systemBarProperty1;
422e0dac50fSopenharmony_ci    SystemBarProperty systemBarProperty2;
423e0dac50fSopenharmony_ci    SystemBarProperty systemBarProperty3;
424e0dac50fSopenharmony_ci    windowNode->SetSystemBarProperty(WindowType::WINDOW_TYPE_STATUS_BAR, systemBarProperty1);
425e0dac50fSopenharmony_ci    windowNode->SetSystemBarProperty(WindowType::WINDOW_TYPE_NAVIGATION_BAR, systemBarProperty2);
426e0dac50fSopenharmony_ci    windowNode->SetSystemBarProperty(WindowType::WINDOW_TYPE_APP_MAIN_WINDOW, systemBarProperty3);
427e0dac50fSopenharmony_ci
428e0dac50fSopenharmony_ci    auto systemBarProperties = windowNode->GetSystemBarProperty();
429e0dac50fSopenharmony_ci    ASSERT_EQ(systemBarProperty1, systemBarProperties.find(WindowType::WINDOW_TYPE_STATUS_BAR)->second);
430e0dac50fSopenharmony_ci    ASSERT_EQ(systemBarProperty2, systemBarProperties.find(WindowType::WINDOW_TYPE_NAVIGATION_BAR)->second);
431e0dac50fSopenharmony_ci    ASSERT_EQ(systemBarProperties.end(), systemBarProperties.find(WindowType::WINDOW_TYPE_APP_MAIN_WINDOW));
432e0dac50fSopenharmony_ci}
433e0dac50fSopenharmony_ci/**
434e0dac50fSopenharmony_ci * @tc.name: SetWindowMode01
435e0dac50fSopenharmony_ci * @tc.desc: SetWindowMode & GetWindowMode
436e0dac50fSopenharmony_ci * @tc.type: FUNC
437e0dac50fSopenharmony_ci */
438e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowMode01, Function | SmallTest | Level1)
439e0dac50fSopenharmony_ci{
440e0dac50fSopenharmony_ci    std::string windowName = "WindowNode11";
441e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(11, windowName);
442e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
443e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
444e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
445e0dac50fSopenharmony_ci
446e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
447e0dac50fSopenharmony_ci    ASSERT_EQ(WindowMode::WINDOW_MODE_UNDEFINED, windowNode->GetWindowMode());
448e0dac50fSopenharmony_ci
449e0dac50fSopenharmony_ci    windowNode->SetWindowMode(WindowMode::WINDOW_MODE_FULLSCREEN);
450e0dac50fSopenharmony_ci    ASSERT_EQ(WindowMode::WINDOW_MODE_FULLSCREEN, windowNode->GetWindowMode());
451e0dac50fSopenharmony_ci}
452e0dac50fSopenharmony_ci/**
453e0dac50fSopenharmony_ci * @tc.name: SetBrightness01
454e0dac50fSopenharmony_ci * @tc.desc: SetBrightness & GetBrightness
455e0dac50fSopenharmony_ci * @tc.type: FUNC
456e0dac50fSopenharmony_ci */
457e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetBrightness01, Function | SmallTest | Level1)
458e0dac50fSopenharmony_ci{
459e0dac50fSopenharmony_ci    std::string windowName = "WindowNode12";
460e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(12, windowName);
461e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
462e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
463e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
464e0dac50fSopenharmony_ci
465e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
466e0dac50fSopenharmony_ci    ASSERT_EQ(UNDEFINED_BRIGHTNESS, windowNode->GetBrightness());
467e0dac50fSopenharmony_ci
468e0dac50fSopenharmony_ci    windowNode->SetBrightness(0.5f);
469e0dac50fSopenharmony_ci    ASSERT_EQ(0.5f, windowNode->GetBrightness());
470e0dac50fSopenharmony_ci    windowNode->SetBrightness(1.1f);
471e0dac50fSopenharmony_ci    ASSERT_EQ(1.1f, windowNode->GetBrightness());
472e0dac50fSopenharmony_ci}
473e0dac50fSopenharmony_ci/**
474e0dac50fSopenharmony_ci * @tc.name: SetTurnScreenOn01
475e0dac50fSopenharmony_ci * @tc.desc: SetTurnScreenOn & IsTurnScreenOn
476e0dac50fSopenharmony_ci * @tc.type: FUNC
477e0dac50fSopenharmony_ci */
478e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetTurnScreenOn01, Function | SmallTest | Level1)
479e0dac50fSopenharmony_ci{
480e0dac50fSopenharmony_ci    std::string windowName = "WindowNode13";
481e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(13, windowName);
482e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
483e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
484e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
485e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
486e0dac50fSopenharmony_ci    ASSERT_EQ(false, windowNode->IsTurnScreenOn());
487e0dac50fSopenharmony_ci    windowNode->SetTurnScreenOn(true);
488e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->IsTurnScreenOn());
489e0dac50fSopenharmony_ci}
490e0dac50fSopenharmony_ci/**
491e0dac50fSopenharmony_ci * @tc.name: SetKeepScreenOn01
492e0dac50fSopenharmony_ci * @tc.desc: SetKeepScreenOn & IsKeepScreenOn
493e0dac50fSopenharmony_ci * @tc.type: FUNC
494e0dac50fSopenharmony_ci */
495e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetKeepScreenOn01, Function | SmallTest | Level1)
496e0dac50fSopenharmony_ci{
497e0dac50fSopenharmony_ci    std::string windowName = "WindowNode14";
498e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(14, windowName);
499e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
500e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
501e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
502e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
503e0dac50fSopenharmony_ci    ASSERT_EQ(false, windowNode->IsKeepScreenOn());
504e0dac50fSopenharmony_ci    windowNode->SetKeepScreenOn(true);
505e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->IsKeepScreenOn());
506e0dac50fSopenharmony_ci}
507e0dac50fSopenharmony_ci/**
508e0dac50fSopenharmony_ci * @tc.name: SetCallingWindow01
509e0dac50fSopenharmony_ci * @tc.desc: SetCallingWindow & GetCallingWindow
510e0dac50fSopenharmony_ci * @tc.type: FUNC
511e0dac50fSopenharmony_ci */
512e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetCallingWindow01, Function | SmallTest | Level1)
513e0dac50fSopenharmony_ci{
514e0dac50fSopenharmony_ci    std::string windowName = "WindowNode15";
515e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(15, windowName);
516e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
517e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
518e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
519e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
520e0dac50fSopenharmony_ci    ASSERT_EQ(INVALID_WINDOW_ID, windowNode->GetCallingWindow());
521e0dac50fSopenharmony_ci    windowNode->SetCallingWindow(100);
522e0dac50fSopenharmony_ci    ASSERT_EQ(100, windowNode->GetCallingWindow());
523e0dac50fSopenharmony_ci}
524e0dac50fSopenharmony_ci/**
525e0dac50fSopenharmony_ci * @tc.name: SetCallingPid01
526e0dac50fSopenharmony_ci * @tc.desc: SetCallingPid & GetCallingPid, SetInputEventCallingPid & GetInputEventCallingPid
527e0dac50fSopenharmony_ci * @tc.type: FUNC
528e0dac50fSopenharmony_ci */
529e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetCallingPid01, Function | SmallTest | Level1)
530e0dac50fSopenharmony_ci{
531e0dac50fSopenharmony_ci    std::string windowName = "WindowNode16";
532e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(16, windowName);
533e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
534e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
535e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
536e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
537e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetCallingPid());
538e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetInputEventCallingPid());
539e0dac50fSopenharmony_ci
540e0dac50fSopenharmony_ci    windowNode->SetCallingPid(1);
541e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetCallingPid());
542e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetInputEventCallingPid());
543e0dac50fSopenharmony_ci
544e0dac50fSopenharmony_ci    windowNode->SetInputEventCallingPid(2);
545e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetCallingPid());
546e0dac50fSopenharmony_ci    ASSERT_EQ(2, windowNode->GetInputEventCallingPid());
547e0dac50fSopenharmony_ci}
548e0dac50fSopenharmony_ci/**
549e0dac50fSopenharmony_ci * @tc.name: SetCallingUid01
550e0dac50fSopenharmony_ci * @tc.desc: SetCallingUid & GetCallingUid
551e0dac50fSopenharmony_ci * @tc.type: FUNC
552e0dac50fSopenharmony_ci */
553e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetCallingUid01, Function | SmallTest | Level1)
554e0dac50fSopenharmony_ci{
555e0dac50fSopenharmony_ci    std::string windowName = "WindowNode17";
556e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(17, windowName);
557e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
558e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
559e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
560e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
561e0dac50fSopenharmony_ci
562e0dac50fSopenharmony_ci    ASSERT_EQ(0, windowNode->GetCallingUid());
563e0dac50fSopenharmony_ci
564e0dac50fSopenharmony_ci    windowNode->SetCallingUid(1);
565e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetCallingUid());
566e0dac50fSopenharmony_ci}
567e0dac50fSopenharmony_ci/**
568e0dac50fSopenharmony_ci * @tc.name: SetWindowSizeChangeReason01
569e0dac50fSopenharmony_ci * @tc.desc: SetWindowSizeChangeReason & GetWindowSizeChangeReason & ResetWindowSizeChangeReason
570e0dac50fSopenharmony_ci * @tc.type: FUNC
571e0dac50fSopenharmony_ci */
572e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowSizeChangeReason01, Function | SmallTest | Level1)
573e0dac50fSopenharmony_ci{
574e0dac50fSopenharmony_ci    std::string windowName = "WindowNode19";
575e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(19, windowName);
576e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
577e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
578e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
579e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
580e0dac50fSopenharmony_ci
581e0dac50fSopenharmony_ci    ASSERT_EQ(WindowSizeChangeReason::UNDEFINED, windowNode->GetWindowSizeChangeReason());
582e0dac50fSopenharmony_ci    windowNode->SetWindowSizeChangeReason(WindowSizeChangeReason::MAXIMIZE);
583e0dac50fSopenharmony_ci    ASSERT_EQ(WindowSizeChangeReason::MAXIMIZE, windowNode->GetWindowSizeChangeReason());
584e0dac50fSopenharmony_ci    windowNode->ResetWindowSizeChangeReason();
585e0dac50fSopenharmony_ci    ASSERT_EQ(WindowSizeChangeReason::UNDEFINED, windowNode->GetWindowSizeChangeReason());
586e0dac50fSopenharmony_ci}
587e0dac50fSopenharmony_ci/**
588e0dac50fSopenharmony_ci * @tc.name: SetRequestedOrientation01
589e0dac50fSopenharmony_ci * @tc.desc: SetRequestedOrientation & GetRequestedOrientation
590e0dac50fSopenharmony_ci * @tc.type: FUNC
591e0dac50fSopenharmony_ci */
592e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetRequestedOrientation01, Function | SmallTest | Level1)
593e0dac50fSopenharmony_ci{
594e0dac50fSopenharmony_ci    std::string windowName = "WindowNode20";
595e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(20, windowName);
596e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
597e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
598e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
599e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
600e0dac50fSopenharmony_ci    ASSERT_EQ(Orientation::UNSPECIFIED, windowNode->GetRequestedOrientation());
601e0dac50fSopenharmony_ci    windowNode->SetRequestedOrientation(Orientation::REVERSE_VERTICAL);
602e0dac50fSopenharmony_ci    ASSERT_EQ(Orientation::REVERSE_VERTICAL, windowNode->GetRequestedOrientation());
603e0dac50fSopenharmony_ci}
604e0dac50fSopenharmony_ci/**
605e0dac50fSopenharmony_ci * @tc.name: SetShowingDisplays01
606e0dac50fSopenharmony_ci * @tc.desc: SetShowingDisplays & GetShowingDisplays
607e0dac50fSopenharmony_ci * @tc.type: FUNC
608e0dac50fSopenharmony_ci */
609e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetShowingDisplays01, Function | SmallTest | Level1)
610e0dac50fSopenharmony_ci{
611e0dac50fSopenharmony_ci    std::string windowName = "WindowNode21";
612e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(21, windowName);
613e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
614e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
615e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
616e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
617e0dac50fSopenharmony_ci
618e0dac50fSopenharmony_ci    auto displays = windowNode->GetShowingDisplays();
619e0dac50fSopenharmony_ci    ASSERT_EQ(true, displays.empty());
620e0dac50fSopenharmony_ci
621e0dac50fSopenharmony_ci    std::vector<DisplayId> emptyDisplayIds;
622e0dac50fSopenharmony_ci    windowNode->SetShowingDisplays(emptyDisplayIds);
623e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->GetShowingDisplays().empty());
624e0dac50fSopenharmony_ci
625e0dac50fSopenharmony_ci    displays.push_back(static_cast<DisplayId>(0));
626e0dac50fSopenharmony_ci    windowNode->SetShowingDisplays(displays);
627e0dac50fSopenharmony_ci    ASSERT_EQ(1, windowNode->GetShowingDisplays().size());
628e0dac50fSopenharmony_ci}
629e0dac50fSopenharmony_ci/**
630e0dac50fSopenharmony_ci * @tc.name: SetModeSupportInfo01
631e0dac50fSopenharmony_ci * @tc.desc: SetModeSupportInfo & GetModeSupportInfo
632e0dac50fSopenharmony_ci * @tc.type: FUNC
633e0dac50fSopenharmony_ci */
634e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetModeSupportInfo01, Function | SmallTest | Level1)
635e0dac50fSopenharmony_ci{
636e0dac50fSopenharmony_ci    std::string windowName = "WindowNode22";
637e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(22, windowName);
638e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
639e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
640e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
641e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
642e0dac50fSopenharmony_ci    ASSERT_EQ(WindowModeSupport::WINDOW_MODE_SUPPORT_ALL, windowNode->GetModeSupportInfo());
643e0dac50fSopenharmony_ci    windowNode->SetModeSupportInfo(WindowModeSupport::WINDOW_MODE_SUPPORT_FULLSCREEN);
644e0dac50fSopenharmony_ci    ASSERT_EQ(WindowModeSupport::WINDOW_MODE_SUPPORT_FULLSCREEN, windowNode->GetModeSupportInfo());
645e0dac50fSopenharmony_ci}
646e0dac50fSopenharmony_ci/**
647e0dac50fSopenharmony_ci * @tc.name: SetDragType01
648e0dac50fSopenharmony_ci * @tc.desc: SetDragType & GetDragType
649e0dac50fSopenharmony_ci * @tc.type: FUNC
650e0dac50fSopenharmony_ci */
651e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetDragType01, Function | SmallTest | Level1)
652e0dac50fSopenharmony_ci{
653e0dac50fSopenharmony_ci    std::string windowName = "WindowNode23";
654e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(23, windowName);
655e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
656e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
657e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
658e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
659e0dac50fSopenharmony_ci    ASSERT_EQ(DragType::DRAG_UNDEFINED, windowNode->GetDragType());
660e0dac50fSopenharmony_ci    windowNode->SetDragType(DragType::DRAG_BOTTOM_OR_TOP);
661e0dac50fSopenharmony_ci    ASSERT_EQ(DragType::DRAG_BOTTOM_OR_TOP, windowNode->GetDragType());
662e0dac50fSopenharmony_ci}
663e0dac50fSopenharmony_ci/**
664e0dac50fSopenharmony_ci * @tc.name: SetOriginRect01
665e0dac50fSopenharmony_ci * @tc.desc: SetOriginRect & GetOriginRect
666e0dac50fSopenharmony_ci * @tc.type: FUNC
667e0dac50fSopenharmony_ci */
668e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetOriginRect01, Function | SmallTest | Level1)
669e0dac50fSopenharmony_ci{
670e0dac50fSopenharmony_ci    std::string windowName = "WindowNode24";
671e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(24, windowName);
672e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
673e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
674e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
675e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
676e0dac50fSopenharmony_ci    auto defaultRect = windowNode->GetOriginRect();
677e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultRect.posX_);
678e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultRect.posX_);
679e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultRect.width_);
680e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultRect.height_);
681e0dac50fSopenharmony_ci
682e0dac50fSopenharmony_ci    Rect testRect = { 10, 10, 150, 150 };
683e0dac50fSopenharmony_ci    windowNode->SetOriginRect(testRect);
684e0dac50fSopenharmony_ci    auto resultRect = windowNode->GetOriginRect();
685e0dac50fSopenharmony_ci    ASSERT_EQ(testRect, resultRect);
686e0dac50fSopenharmony_ci}
687e0dac50fSopenharmony_ci/**
688e0dac50fSopenharmony_ci * @tc.name: SetTouchHotAreas01
689e0dac50fSopenharmony_ci * @tc.desc: SetTouchHotAreas & GetTouchHotAreas
690e0dac50fSopenharmony_ci * @tc.type: FUNC
691e0dac50fSopenharmony_ci */
692e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetTouchHotAreas01, Function | SmallTest | Level1)
693e0dac50fSopenharmony_ci{
694e0dac50fSopenharmony_ci    std::string windowName = "WindowNode25";
695e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(25, windowName);
696e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
697e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
698e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
699e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
700e0dac50fSopenharmony_ci    std::vector<Rect> testRects;
701e0dac50fSopenharmony_ci    windowNode->GetTouchHotAreas(testRects);
702e0dac50fSopenharmony_ci    ASSERT_EQ(true, testRects.empty());
703e0dac50fSopenharmony_ci
704e0dac50fSopenharmony_ci    Rect rect1 = { 10, 10, 10, 10 };
705e0dac50fSopenharmony_ci    testRects.push_back(rect1);
706e0dac50fSopenharmony_ci    windowNode->SetTouchHotAreas(testRects);
707e0dac50fSopenharmony_ci
708e0dac50fSopenharmony_ci    std::vector<Rect> resultRect;
709e0dac50fSopenharmony_ci    windowNode->GetTouchHotAreas(resultRect);
710e0dac50fSopenharmony_ci    ASSERT_EQ(1, resultRect.size());
711e0dac50fSopenharmony_ci    ASSERT_EQ(rect1, resultRect[0]);
712e0dac50fSopenharmony_ci}
713e0dac50fSopenharmony_ci/**
714e0dac50fSopenharmony_ci * @tc.name: SetPointerHotAreas01
715e0dac50fSopenharmony_ci * @tc.desc: SetPointerHotAreas & GetPointerHotAreas
716e0dac50fSopenharmony_ci * @tc.type: FUNC
717e0dac50fSopenharmony_ci */
718e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetPointerHotAreas01, Function | SmallTest | Level1)
719e0dac50fSopenharmony_ci{
720e0dac50fSopenharmony_ci    std::string windowName = "WindowNode26";
721e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(26, windowName);
722e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
723e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
724e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
725e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
726e0dac50fSopenharmony_ci
727e0dac50fSopenharmony_ci    std::vector<Rect> testRects;
728e0dac50fSopenharmony_ci    windowNode->GetPointerHotAreas(testRects);
729e0dac50fSopenharmony_ci    ASSERT_EQ(true, testRects.empty());
730e0dac50fSopenharmony_ci
731e0dac50fSopenharmony_ci    Rect rect1 = { 10, 10, 10, 10 };
732e0dac50fSopenharmony_ci    testRects.push_back(rect1);
733e0dac50fSopenharmony_ci    windowNode->SetPointerHotAreas(testRects);
734e0dac50fSopenharmony_ci    std::vector<Rect> resultRect;
735e0dac50fSopenharmony_ci    windowNode->GetPointerHotAreas(resultRect);
736e0dac50fSopenharmony_ci    ASSERT_EQ(1, resultRect.size());
737e0dac50fSopenharmony_ci    ASSERT_EQ(rect1, resultRect[0]);
738e0dac50fSopenharmony_ci}
739e0dac50fSopenharmony_ci/**
740e0dac50fSopenharmony_ci * @tc.name: SetPointerHotAreas01
741e0dac50fSopenharmony_ci * @tc.desc: SetWindowSizeLimits & GetWindowSizeLimits
742e0dac50fSopenharmony_ci * @tc.type: FUNC
743e0dac50fSopenharmony_ci */
744e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowSizeLimits01, Function | SmallTest | Level1)
745e0dac50fSopenharmony_ci{
746e0dac50fSopenharmony_ci    std::string windowName = "WindowNode27";
747e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(27, windowName);
748e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
749e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
750e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
751e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
752e0dac50fSopenharmony_ci    auto defaultValue = windowNode->GetWindowSizeLimits();
753e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultValue.minWidth_);
754e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultValue.minHeight_);
755e0dac50fSopenharmony_ci    ASSERT_EQ(0.0f, defaultValue.minRatio_);
756e0dac50fSopenharmony_ci    ASSERT_EQ(UINT32_MAX, defaultValue.maxWidth_);
757e0dac50fSopenharmony_ci    ASSERT_EQ(UINT32_MAX, defaultValue.maxHeight_);
758e0dac50fSopenharmony_ci    ASSERT_EQ(FLT_MAX, defaultValue.maxRatio_);
759e0dac50fSopenharmony_ci
760e0dac50fSopenharmony_ci    WindowLimits testValue = { 200, 200, 50, 50, 2.0f, 2.0f };
761e0dac50fSopenharmony_ci    windowNode->SetWindowSizeLimits(testValue);
762e0dac50fSopenharmony_ci
763e0dac50fSopenharmony_ci    auto resultValue = windowNode->GetWindowSizeLimits();
764e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minWidth_, resultValue.minWidth_);
765e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minHeight_, resultValue.minHeight_);
766e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minRatio_, resultValue.minRatio_);
767e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxWidth_, resultValue.maxWidth_);
768e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxHeight_, resultValue.maxHeight_);
769e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxRatio_, resultValue.maxRatio_);
770e0dac50fSopenharmony_ci}
771e0dac50fSopenharmony_ci/**
772e0dac50fSopenharmony_ci * @tc.name: SetWindowUpdatedSizeLimits01
773e0dac50fSopenharmony_ci * @tc.desc: SetWindowUpdatedSizeLimits & GetWindowUpdatedSizeLimits
774e0dac50fSopenharmony_ci * @tc.type: FUNC
775e0dac50fSopenharmony_ci */
776e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetWindowUpdatedSizeLimits01, Function | SmallTest | Level1)
777e0dac50fSopenharmony_ci{
778e0dac50fSopenharmony_ci    std::string windowName = "WindowNode28";
779e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(28, windowName);
780e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
781e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
782e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
783e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
784e0dac50fSopenharmony_ci    auto defaultValue = windowNode->GetWindowUpdatedSizeLimits();
785e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultValue.minWidth_);
786e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultValue.minHeight_);
787e0dac50fSopenharmony_ci    ASSERT_EQ(0.0f, defaultValue.minRatio_);
788e0dac50fSopenharmony_ci    ASSERT_EQ(UINT32_MAX, defaultValue.maxWidth_);
789e0dac50fSopenharmony_ci    ASSERT_EQ(UINT32_MAX, defaultValue.maxHeight_);
790e0dac50fSopenharmony_ci    ASSERT_EQ(FLT_MAX, defaultValue.maxRatio_);
791e0dac50fSopenharmony_ci
792e0dac50fSopenharmony_ci    WindowLimits testValue = { 200, 200, 50, 50, 2.0f, 2.0f };
793e0dac50fSopenharmony_ci    windowNode->SetWindowUpdatedSizeLimits(testValue);
794e0dac50fSopenharmony_ci
795e0dac50fSopenharmony_ci    auto resultValue = windowNode->GetWindowUpdatedSizeLimits();
796e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minWidth_, resultValue.minWidth_);
797e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minHeight_, resultValue.minHeight_);
798e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.minRatio_, resultValue.minRatio_);
799e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxWidth_, resultValue.maxWidth_);
800e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxHeight_, resultValue.maxHeight_);
801e0dac50fSopenharmony_ci    ASSERT_EQ(testValue.maxRatio_, resultValue.maxRatio_);
802e0dac50fSopenharmony_ci}
803e0dac50fSopenharmony_ci/**
804e0dac50fSopenharmony_ci * @tc.name: SetSnapshot01
805e0dac50fSopenharmony_ci * @tc.desc: SetSnapshot & GetSnapshot
806e0dac50fSopenharmony_ci * @tc.type: FUNC
807e0dac50fSopenharmony_ci */
808e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetSnapshot01, Function | SmallTest | Level1)
809e0dac50fSopenharmony_ci{
810e0dac50fSopenharmony_ci    std::string windowName = "WindowNode29";
811e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(29, windowName);
812e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
813e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
814e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
815e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
816e0dac50fSopenharmony_ci
817e0dac50fSopenharmony_ci    auto defaultValue = windowNode->GetSnapshot();
818e0dac50fSopenharmony_ci    ASSERT_EQ(0, defaultValue.use_count());
819e0dac50fSopenharmony_ci
820e0dac50fSopenharmony_ci    Media::InitializationOptions opts;
821e0dac50fSopenharmony_ci    opts.size.width = 200;  // 200: test width
822e0dac50fSopenharmony_ci    opts.size.height = 300; // 300: test height
823e0dac50fSopenharmony_ci    opts.pixelFormat = Media::PixelFormat::ARGB_8888;
824e0dac50fSopenharmony_ci    opts.alphaType = Media::AlphaType::IMAGE_ALPHA_TYPE_OPAQUE;
825e0dac50fSopenharmony_ci    std::unique_ptr<Media::PixelMap> pixelMapPtr = Media::PixelMap::Create(opts);
826e0dac50fSopenharmony_ci    std::shared_ptr<Media::PixelMap> pixelMap(pixelMapPtr.release());
827e0dac50fSopenharmony_ci    windowNode->SetSnapshot(pixelMap);
828e0dac50fSopenharmony_ci
829e0dac50fSopenharmony_ci    auto resultValue = windowNode->GetSnapshot();
830e0dac50fSopenharmony_ci    ASSERT_EQ(3, resultValue.use_count());
831e0dac50fSopenharmony_ci}
832e0dac50fSopenharmony_ci/**
833e0dac50fSopenharmony_ci * @tc.name: UpdateZoomTransform01
834e0dac50fSopenharmony_ci * @tc.desc: UpdateZoomTransform & GetZoomTransform
835e0dac50fSopenharmony_ci * @tc.type: FUNC
836e0dac50fSopenharmony_ci */
837e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, UpdateZoomTransform01, Function | SmallTest | Level1)
838e0dac50fSopenharmony_ci{
839e0dac50fSopenharmony_ci    std::string windowName = "WindowNode30";
840e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(30, windowName);
841e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
842e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
843e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
844e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
845e0dac50fSopenharmony_ci    Transform transformData;
846e0dac50fSopenharmony_ci    auto defaultValue = windowNode->GetZoomTransform();
847e0dac50fSopenharmony_ci    ASSERT_EQ(transformData, defaultValue);
848e0dac50fSopenharmony_ci
849e0dac50fSopenharmony_ci    transformData.pivotX_ = 1.0f;
850e0dac50fSopenharmony_ci    transformData.pivotY_ = 1.0f;
851e0dac50fSopenharmony_ci    windowNode->UpdateZoomTransform(transformData, false);
852e0dac50fSopenharmony_ci
853e0dac50fSopenharmony_ci    auto resultValue = windowNode->GetZoomTransform();
854e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultValue.pivotX_);
855e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultValue.pivotY_);
856e0dac50fSopenharmony_ci}
857e0dac50fSopenharmony_ci/**
858e0dac50fSopenharmony_ci * @tc.name: SetTransform01
859e0dac50fSopenharmony_ci * @tc.desc: SetTransform & ComputeTransform
860e0dac50fSopenharmony_ci * @tc.type: FUNC
861e0dac50fSopenharmony_ci */
862e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, SetTransform01, Function | SmallTest | Level1)
863e0dac50fSopenharmony_ci{
864e0dac50fSopenharmony_ci    std::string windowName = "WindowNode31";
865e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(31, windowName);
866e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
867e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
868e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
869e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
870e0dac50fSopenharmony_ci    auto isSameValueMat4 = [](TransformHelper::Matrix4 expectVal, TransformHelper::Matrix4 checkValue) -> bool {
871e0dac50fSopenharmony_ci        uint32_t m = 0, n = 0;
872e0dac50fSopenharmony_ci        for (uint32_t i = 0; i < 16; i++) {
873e0dac50fSopenharmony_ci            m = i / 4;
874e0dac50fSopenharmony_ci            n = i % 4;
875e0dac50fSopenharmony_ci            if (m > 4 || n > 4 || (expectVal.mat_[m][n] != checkValue.mat_[m][n])) {
876e0dac50fSopenharmony_ci                return false;
877e0dac50fSopenharmony_ci            }
878e0dac50fSopenharmony_ci        }
879e0dac50fSopenharmony_ci        return true;
880e0dac50fSopenharmony_ci    };
881e0dac50fSopenharmony_ci
882e0dac50fSopenharmony_ci    Transform transformData;
883e0dac50fSopenharmony_ci    auto defaultTrans = windowNode->property_->trans_;
884e0dac50fSopenharmony_ci    auto defaultWorldTransformMat4 = windowNode->property_->worldTransformMat_;
885e0dac50fSopenharmony_ci    ASSERT_EQ(transformData, defaultTrans);
886e0dac50fSopenharmony_ci    ASSERT_EQ(true, isSameValueMat4(TransformHelper::Matrix4::Identity, defaultWorldTransformMat4));
887e0dac50fSopenharmony_ci
888e0dac50fSopenharmony_ci    transformData.pivotX_ = 1.0f;
889e0dac50fSopenharmony_ci    transformData.pivotY_ = 1.0f;
890e0dac50fSopenharmony_ci    transformData.translateX_ = 1.0f;
891e0dac50fSopenharmony_ci    transformData.translateY_ = 1.0f;
892e0dac50fSopenharmony_ci    windowNode->SetTransform(transformData);
893e0dac50fSopenharmony_ci    windowNode->ComputeTransform();
894e0dac50fSopenharmony_ci
895e0dac50fSopenharmony_ci    auto resultTrans = windowNode->property_->trans_;
896e0dac50fSopenharmony_ci    auto resultWorldTransformMat4 = windowNode->property_->worldTransformMat_;
897e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultTrans.pivotX_);
898e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultTrans.pivotY_);
899e0dac50fSopenharmony_ci
900e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultWorldTransformMat4.mat_[3][0]);
901e0dac50fSopenharmony_ci    ASSERT_EQ(1.0f, resultWorldTransformMat4.mat_[3][1]);
902e0dac50fSopenharmony_ci}
903e0dac50fSopenharmony_ci
904e0dac50fSopenharmony_ci/**
905e0dac50fSopenharmony_ci * @tc.name: GetVisibilityState001
906e0dac50fSopenharmony_ci * @tc.desc: SetVisibilityState & GetVisibilityState
907e0dac50fSopenharmony_ci * @tc.type: FUNC
908e0dac50fSopenharmony_ci */
909e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, GetVisibilityState001, Function | SmallTest | Level1)
910e0dac50fSopenharmony_ci{
911e0dac50fSopenharmony_ci    std::string windowName = "WindowNode32";
912e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(7, windowName);
913e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
914e0dac50fSopenharmony_ci
915e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
916e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
917e0dac50fSopenharmony_ci    windowNode->SetWindowProperty(property);
918e0dac50fSopenharmony_ci
919e0dac50fSopenharmony_ci    ASSERT_EQ(windowNode->GetVisibilityState(), WINDOW_VISIBILITY_STATE_NO_OCCLUSION);
920e0dac50fSopenharmony_ci    windowNode->SetVisibilityState(WINDOW_VISIBILITY_STATE_PARTICALLY_OCCLUSION);
921e0dac50fSopenharmony_ci    ASSERT_EQ(windowNode->GetVisibilityState(), WINDOW_VISIBILITY_STATE_PARTICALLY_OCCLUSION);
922e0dac50fSopenharmony_ci}
923e0dac50fSopenharmony_ci
924e0dac50fSopenharmony_ci/**
925e0dac50fSopenharmony_ci * @tc.name: GetTouchable01
926e0dac50fSopenharmony_ci * @tc.desc: SetTouchable & GetTouchable
927e0dac50fSopenharmony_ci * @tc.type: FUNC
928e0dac50fSopenharmony_ci */
929e0dac50fSopenharmony_ciHWTEST_F(WindowNodeTest, GetTouchable01, Function | SmallTest | Level1)
930e0dac50fSopenharmony_ci{
931e0dac50fSopenharmony_ci    std::string windowName = "WindowNode33";
932e0dac50fSopenharmony_ci    auto property = CreateWindowProperty(33, windowName);
933e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, property);
934e0dac50fSopenharmony_ci    sptr<WindowNode> windowNode = new WindowNode(property);
935e0dac50fSopenharmony_ci    ASSERT_NE(nullptr, windowNode);
936e0dac50fSopenharmony_ci
937e0dac50fSopenharmony_ci    windowNode->SetTouchable(false);
938e0dac50fSopenharmony_ci    ASSERT_EQ(false, windowNode->GetTouchable());
939e0dac50fSopenharmony_ci    windowNode->SetTouchable(true);
940e0dac50fSopenharmony_ci    ASSERT_EQ(true, windowNode->GetTouchable());
941e0dac50fSopenharmony_ci}
942e0dac50fSopenharmony_ci}
943e0dac50fSopenharmony_ci}
944e0dac50fSopenharmony_ci}