• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-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 // gtest
17 #include <gtest/gtest.h>
18 #include "display_manager_proxy.h"
19 #include "window_test_utils.h"
20 #include "wm_common.h"
21 using namespace testing;
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace Rosen {
26 using Utils = WindowTestUtils;
27 class WindowEffectTest : public testing::Test {
28 public:
29     static void SetUpTestCase();
30     static void TearDownTestCase();
31     virtual void SetUp() override;
32     virtual void TearDown() override;
33     Utils::TestWindowInfo windowInfo_;
34 };
35 
SetUpTestCase()36 void WindowEffectTest::SetUpTestCase()
37 {
38 }
39 
TearDownTestCase()40 void WindowEffectTest::TearDownTestCase()
41 {
42 }
43 
SetUp()44 void WindowEffectTest::SetUp()
45 {
46     windowInfo_ = {
47             .name = "TestWindow",
48             .rect = {0, 0, 100, 200},
49             .type = WindowType::WINDOW_TYPE_FLOAT,
50             .mode = WindowMode::WINDOW_MODE_FLOATING,
51             .needAvoid = false,
52             .parentLimit = false,
53             .parentId = INVALID_WINDOW_ID,
54     };
55 }
56 
TearDown()57 void WindowEffectTest::TearDown()
58 {
59 }
60 
61 namespace {
62 /**
63  * @tc.name: WindowEffect01
64  * @tc.desc: Set window corner radius
65  * @tc.type: FUNC
66  */
67 HWTEST_F(WindowEffectTest, WindowEffect01, Function | MediumTest | Level3)
68 {
69     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
70     ASSERT_NE(nullptr, window);
71 
72     ASSERT_EQ(WMError::WM_OK, window->SetCornerRadius(0.0));
73     ASSERT_EQ(WMError::WM_OK, window->SetCornerRadius(16.0));
74     ASSERT_EQ(WMError::WM_OK, window->SetCornerRadius(1000.0));
75     ASSERT_EQ(WMError::WM_OK, window->SetCornerRadius(-1.0));
76 
77     ASSERT_EQ(WMError::WM_OK, window->Destroy());
78 }
79 
80 /**
81  * @tc.name: WindowEffect02
82  * @tc.desc: Set window shadow radius
83  * @tc.type: FUNC
84  */
85 HWTEST_F(WindowEffectTest, WindowEffect02, Function | MediumTest | Level3)
86 {
87     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
88     ASSERT_NE(nullptr, window);
89 
90     ASSERT_EQ(WMError::WM_OK, window->SetShadowRadius(0.0));
91     ASSERT_EQ(WMError::WM_OK, window->SetShadowRadius(16.0));
92     ASSERT_EQ(WMError::WM_OK, window->SetShadowRadius(1000.0));
93     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowRadius(-1.0));
94 
95     ASSERT_EQ(WMError::WM_OK, window->Destroy());
96 }
97 
98 /**
99  * @tc.name: WindowEffect03
100  * @tc.desc: Set window shadow color
101  * @tc.type: FUNC
102  */
103 HWTEST_F(WindowEffectTest, WindowEffect03, Function | MediumTest | Level3)
104 {
105     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
106     ASSERT_NE(nullptr, window);
107 
108     ASSERT_EQ(WMError::WM_OK, window->SetShadowColor("#FF22EE44"));
109     ASSERT_EQ(WMError::WM_OK, window->SetShadowColor("#22EE44"));
110     ASSERT_EQ(WMError::WM_OK, window->SetShadowColor("#ff22ee44"));
111 
112     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("ff22ee44"));
113     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("22ee44"));
114     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("#ppEE44"));
115     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("#eepp44"));
116     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("#ffeePP44"));
117     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("#ff22ee4422"));
118     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetShadowColor("#ff"));
119 
120     ASSERT_EQ(WMError::WM_OK, window->Destroy());
121 }
122 
123 /**
124  * @tc.name: WindowEffect04
125  * @tc.desc: Set window shadow offset
126  * @tc.type: FUNC
127  */
128 HWTEST_F(WindowEffectTest, WindowEffect04, Function | MediumTest | Level3)
129 {
130     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
131     ASSERT_NE(nullptr, window);
132 
133     window->SetShadowOffsetX(0.0);
134     window->SetShadowOffsetX(16.0);
135     window->SetShadowOffsetX(1000.0);
136     window->SetShadowOffsetX(-1.0);
137 
138     window->SetShadowOffsetY(0.0);
139     window->SetShadowOffsetY(16.0);
140     window->SetShadowOffsetY(1000.0);
141     window->SetShadowOffsetY(-1.0);
142 
143     ASSERT_EQ(WMError::WM_OK, window->Destroy());
144 }
145 
146 /**
147  * @tc.name: WindowEffect05
148  * @tc.desc: Set window blur radius
149  * @tc.type: FUNC
150  */
151 HWTEST_F(WindowEffectTest, WindowEffect05, Function | MediumTest | Level3)
152 {
153     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
154     ASSERT_NE(nullptr, window);
155 
156     ASSERT_EQ(WMError::WM_OK, window->SetBlur(0.0));
157     ASSERT_EQ(WMError::WM_OK, window->SetBlur(16.0));
158     ASSERT_EQ(WMError::WM_OK, window->SetBlur(1000.0));
159     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetBlur(-1.0));
160 
161     ASSERT_EQ(WMError::WM_OK, window->Destroy());
162 }
163 
164 /**
165  * @tc.name: WindowEffect06
166  * @tc.desc: Set window backdrop blur radius
167  * @tc.type: FUNC
168  */
169 HWTEST_F(WindowEffectTest, WindowEffect06, Function | MediumTest | Level3)
170 {
171     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
172     ASSERT_NE(nullptr, window);
173 
174     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlur(0.0));
175     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlur(16.0));
176     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlur(1000.0));
177     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetBackdropBlur(-1.0));
178 
179     ASSERT_EQ(WMError::WM_OK, window->Destroy());
180 }
181 
182 /**
183  * @tc.name: WindowEffect07
184  * @tc.desc: Set window backdrop blur style
185  * @tc.type: FUNC
186  */
187 HWTEST_F(WindowEffectTest, WindowEffect07, Function | MediumTest | Level3)
188 {
189     const sptr<Window>& window = Utils::CreateTestWindow(windowInfo_);
190     ASSERT_NE(nullptr, window);
191 
192     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlurStyle(WindowBlurStyle::WINDOW_BLUR_OFF));
193     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlurStyle(WindowBlurStyle::WINDOW_BLUR_THIN));
194     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlurStyle(WindowBlurStyle::WINDOW_BLUR_REGULAR));
195     ASSERT_EQ(WMError::WM_OK, window->SetBackdropBlurStyle(WindowBlurStyle::WINDOW_BLUR_THICK));
196 
197     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetBackdropBlurStyle(static_cast<WindowBlurStyle>(-1)));
198     ASSERT_EQ(WMError::WM_ERROR_INVALID_PARAM, window->SetBackdropBlurStyle(static_cast<WindowBlurStyle>(5)));
199 
200     ASSERT_EQ(WMError::WM_OK, window->Destroy());
201 }
202 } // namespace
203 } // namespace Rosen
204 } // namespace OHOS
205