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 #define private public
19 #define protected public
20 #include "ability_info.h"
21 #include "ability_record.h"
22 #include "implicit_start_processor.h"
23 #include "system_dialog_scheduler.h"
24 #undef private
25 #undef protected
26 #include "ability_manager_errors.h"
27 #include "hilog_tag_wrapper.h"
28 #include "scene_board_judgement.h"
29
30 using namespace testing;
31 using namespace testing::ext;
32 const int32_t DEFAULT_USERID = 100;
33
34 namespace OHOS {
35 namespace AAFwk {
36 class AbilityMgrServiceDialogTest : public testing::Test {
37 public:
38 static void SetUpTestCase();
39 static void TearDownTestCase();
40 void SetUp() override;
41 void TearDown() override;
42 std::shared_ptr<ImplicitStartProcessor> implicitStartProcessor_;
43 std::shared_ptr<SystemDialogScheduler> systemDialogScheduler_;
44 AbilityRequest abilityRequest_;
45 };
46
SetUpTestCase(void)47 void AbilityMgrServiceDialogTest::SetUpTestCase(void) {}
48
TearDownTestCase(void)49 void AbilityMgrServiceDialogTest::TearDownTestCase(void) {}
50
SetUp()51 void AbilityMgrServiceDialogTest::SetUp()
52 {
53 int testCode = 123;
54 abilityRequest_.requestCode = testCode;
55
56 abilityRequest_.abilityInfo.package = "test";
57 abilityRequest_.abilityInfo.name = "test";
58 abilityRequest_.abilityInfo.label = "test";
59 abilityRequest_.abilityInfo.description = "test";
60 abilityRequest_.abilityInfo.iconPath = "/test";
61 abilityRequest_.abilityInfo.visible = false;
62 abilityRequest_.abilityInfo.kind = "page";
63 abilityRequest_.abilityInfo.permissions = {};
64 abilityRequest_.abilityInfo.bundleName = "test";
65 abilityRequest_.abilityInfo.applicationName = "test";
66 abilityRequest_.abilityInfo.deviceId = "test";
67 abilityRequest_.abilityInfo.codePath = "/test";
68 abilityRequest_.abilityInfo.resourcePath = "/test";
69 abilityRequest_.abilityInfo.libPath = "/test";
70
71 abilityRequest_.appInfo.name = "test";
72 abilityRequest_.appInfo.bundleName = "test";
73 abilityRequest_.appInfo.deviceId = "test";
74 abilityRequest_.appInfo.signatureKey = "test";
75
76 implicitStartProcessor_ = std::make_shared<ImplicitStartProcessor>();
77 systemDialogScheduler_ = std::make_shared<SystemDialogScheduler>();
78 }
79
TearDown()80 void AbilityMgrServiceDialogTest::TearDown() {}
81
82 /*
83 * @tc.number : AbilityMgrServiceDialog_0100
84 * @tc.name : AbilityMgrServiceDialog
85 * @tc.desc : 1.Test TipsDialog
86 */
87 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0100, TestSize.Level1)
88 {
89 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0100 start");
90 auto ret = implicitStartProcessor_->ImplicitStartAbility(abilityRequest_, DEFAULT_USERID);
91 EXPECT_EQ(ret, ERR_IMPLICIT_START_ABILITY_FAIL);
92 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0100 end");
93 }
94
95 /*
96 * @tc.number : AbilityMgrServiceDialog_0200
97 * @tc.name : AbilityMgrServiceDialog
98 * @tc.desc : 1.Test GetTipsDialogWant
99 */
100 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0200, TestSize.Level1)
101 {
102 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0200 start");
103 auto want = systemDialogScheduler_->GetTipsDialogWant(nullptr);
104 EXPECT_EQ(want.GetElement().GetBundleName(), "com.ohos.amsdialog");
105 EXPECT_EQ(want.GetElement().GetAbilityName(), "TipsDialog");
106 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0200 end");
107 }
108
109 /*
110 * @tc.number : AbilityMgrServiceDialog_0300
111 * @tc.name : AbilityMgrServiceDialog
112 * @tc.desc : 1.Test GetSelectorDialogWant
113 */
114 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0300, TestSize.Level1)
115 {
116 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0300 start");
117 std::vector<DialogAppInfo> dialogAppInfos;
118 Want requestWant;
119 Want targetWant;
120 auto ret = systemDialogScheduler_->GetSelectorDialogWant(dialogAppInfos, requestWant, targetWant, nullptr);
121 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
122 EXPECT_EQ(requestWant.GetElement().GetBundleName(), "com.ohos.amsdialog");
123 EXPECT_EQ(requestWant.GetElement().GetAbilityName(), "SelectorDialog");
124 }
125 EXPECT_NE(systemDialogScheduler_, nullptr);
126 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0300 end");
127 }
128
129 /*
130 * @tc.number : AbilityMgrServiceDialog_0400
131 * @tc.name : AbilityMgrServiceDialog
132 * @tc.desc : 1.Test GetSelectorParams
133 */
134 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0400, TestSize.Level1)
135 {
136 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0400 start");
137 std::vector<DialogAppInfo> dialogAppInfos;
138 auto params = systemDialogScheduler_->GetSelectorParams(dialogAppInfos);
139 EXPECT_EQ(params.size(), 0);
140 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0400 end");
141 }
142
143 /*
144 * @tc.number : AbilityMgrServiceDialog_0500
145 * @tc.name : AbilityMgrServiceDialog
146 * @tc.desc : 1.Test GetSelectorParams
147 */
148 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0500, TestSize.Level1)
149 {
150 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0500 start");
151 DialogAppInfo dialogAppInfo = {
152 0, 0, 0, 0, "com.example.test", "MainAbility", "entry"
153 };
154 std::vector<DialogAppInfo> dialogAppInfos = { dialogAppInfo };
155 auto params = systemDialogScheduler_->GetSelectorParams(dialogAppInfos);
156 nlohmann::json jsonObj = nlohmann::json::parse(params);
157 EXPECT_EQ(jsonObj["hapList"].size(), 1);
158 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0500 end");
159 }
160
161 /*
162 * @tc.number : AbilityMgrServiceDialog_0600
163 * @tc.name : AbilityMgrServiceDialog
164 * @tc.desc : 1.Test IsImplicitStartAction
165 */
166 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0600, TestSize.Level1)
167 {
168 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0600 start");
169 Want want;
170 want.SetElementName("com.example.test", "");
171 auto ret = implicitStartProcessor_->IsImplicitStartAction(want);
172 EXPECT_EQ(ret, true);
173 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0600 end");
174 }
175
176 /*
177 * @tc.number : AbilityMgrServiceDialog_0700
178 * @tc.name : AbilityMgrServiceDialog
179 * @tc.desc : 1.Test IsImplicitStartAction
180 */
181 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0700, TestSize.Level1)
182 {
183 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0700 start");
184 Want want;
185 want.SetElementName("com.example.test", "MainAbility");
186 auto ret = implicitStartProcessor_->IsImplicitStartAction(want);
187 EXPECT_EQ(ret, false);
188 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0700 end");
189 }
190
191 /*
192 * @tc.number : AbilityMgrServiceDialog_0800
193 * @tc.name : AbilityMgrServiceDialog
194 * @tc.desc : 1.Test IsImplicitStartAction
195 */
196 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0800, TestSize.Level1)
197 {
198 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0800 start");
199 Want want;
200 want.SetElementName("com.example.test", "");
201 want.SetAction("ohos.want.action.select");
202 auto ret = implicitStartProcessor_->IsImplicitStartAction(want);
203 EXPECT_EQ(ret, false);
204 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0800 end");
205 }
206
207 /*
208 * @tc.number : AbilityMgrServiceDialog_0900
209 * @tc.name : AbilityMgrServiceDialog
210 * @tc.desc : 1.Test IsImplicitStartAction
211 */
212 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialog_0900, TestSize.Level1)
213 {
214 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0900 start");
215 Want want;
216 want.SetElementName("com.example.test", "");
217 want.SetAction("ohos.want.action.viewData");
218 auto ret = implicitStartProcessor_->IsImplicitStartAction(want);
219 EXPECT_EQ(ret, true);
220 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialog_0900 end");
221 }
222
223 /*
224 * @tc.number : AbilityMgrServiceDialogTest_1000
225 * @tc.name : AbilityMgrServiceDialogTest
226 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
227 */
228 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1000, TestSize.Level1)
229 {
230 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1000 start");
231 DialogPosition position;
232 position.height = 0;
233 const float densityPixels = 1.50;
234 const int lineNums = 9;
235 systemDialogScheduler_->DialogPortraitPositionAdaptive(position, densityPixels, lineNums);
236 EXPECT_NE(position.height, 0);
237 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1000 end");
238 }
239
240 /*
241 * @tc.number : AbilityMgrServiceDialogTest_1100
242 * @tc.name : AbilityMgrServiceDialogTest
243 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
244 */
245 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1100, TestSize.Level1)
246 {
247 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1100 start");
248 DialogPosition position;
249 position.height = 0;
250 const float densityPixels = 1.50;
251 const int lineNums = 5;
252 systemDialogScheduler_->DialogPortraitPositionAdaptive(position, densityPixels, lineNums);
253 EXPECT_NE(position.height, 0);
254 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1100 end");
255 }
256
257 /*
258 * @tc.number : AbilityMgrServiceDialogTest_1200
259 * @tc.name : AbilityMgrServiceDialogTest
260 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
261 */
262 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1200, TestSize.Level1)
263 {
264 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1200 start");
265 DialogPosition position;
266 position.height = 0;
267 const float densityPixels = 1.50;
268 const int lineNums = 1;
269 systemDialogScheduler_->DialogPortraitPositionAdaptive(position, densityPixels, lineNums);
270 EXPECT_NE(position.height, 0);
271 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1200 end");
272 }
273
274 /*
275 * @tc.number : AbilityMgrServiceDialogTest_1300
276 * @tc.name : AbilityMgrServiceDialogTest
277 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
278 */
279 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1300, TestSize.Level1)
280 {
281 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1300 start");
282 DialogPosition position;
283 position.height = 0;
284 const float densityPixels = 1.50;
285 const int lineNums = 9;
286 systemDialogScheduler_->DialogLandscapePositionAdaptive(position, densityPixels, lineNums);
287 EXPECT_NE(position.height, 0);
288 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1300 end");
289 }
290
291 /*
292 * @tc.number : AbilityMgrServiceDialogTest_1400
293 * @tc.name : AbilityMgrServiceDialogTest
294 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
295 */
296 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1400, TestSize.Level1)
297 {
298 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1400 start");
299 DialogPosition position;
300 position.height = 0;
301 const float densityPixels = 1.50;
302 const int lineNums = 5;
303 systemDialogScheduler_->DialogLandscapePositionAdaptive(position, densityPixels, lineNums);
304 EXPECT_NE(position.height, 0);
305 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1400 end");
306 }
307
308 /*
309 * @tc.number : AbilityMgrServiceDialogTest_1500
310 * @tc.name : AbilityMgrServiceDialogTest
311 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
312 */
313 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1500, TestSize.Level1)
314 {
315 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1500 start");
316 DialogPosition position;
317 position.height = 0;
318 const float densityPixels = 1.50;
319 const int lineNums = 1;
320 systemDialogScheduler_->DialogLandscapePositionAdaptive(position, densityPixels, lineNums);
321 EXPECT_NE(position.height, 0);
322 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1500 end");
323 }
324
325 /*
326 * @tc.number : AbilityMgrServiceDialogTest_1600
327 * @tc.name : AbilityMgrServiceDialogTest
328 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
329 */
330 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1600, TestSize.Level1)
331 {
332 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1600 start");
333 DialogPosition position;
334 position.height = 0;
335 position.offsetX = 0;
336 const int32_t height = 500;
337 const int32_t width = 320;
338 const int lineNums = 1;
339 const float densityPixels = 1.50;
340 systemDialogScheduler_->GetSelectorDialogPortraitPosition(position, height, width, lineNums, densityPixels);
341 EXPECT_NE(position.height, 0);
342 EXPECT_NE(position.offsetX, 0);
343 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1600 end");
344 }
345
346 /*
347 * @tc.number : AbilityMgrServiceDialogTest_1700
348 * @tc.name : AbilityMgrServiceDialogTest
349 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
350 */
351 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1700, TestSize.Level1)
352 {
353 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1700 start");
354 DialogPosition position;
355 position.height = 0;
356 position.offsetX = 0;
357 const int32_t height = 100;
358 const int32_t width = 100;
359 const int lineNums = 1;
360 const float densityPixels = 1.50;
361 systemDialogScheduler_->GetSelectorDialogPortraitPosition(position, height, width, lineNums, densityPixels);
362 EXPECT_EQ(position.oversizeHeight, true);
363 EXPECT_NE(position.offsetX, 0);
364 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1700 end");
365 }
366
367 /*
368 * @tc.number : AbilityMgrServiceDialogTest_1700
369 * @tc.name : AbilityMgrServiceDialogTest
370 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
371 */
372 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1800, TestSize.Level1)
373 {
374 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1800 start");
375 DialogPosition position;
376 position.height = 0;
377 position.offsetX = 0;
378 const int32_t height = 500;
379 const int32_t width = 320;
380 const int lineNums = 1;
381 const float densityPixels = 1.50;
382 systemDialogScheduler_->GetSelectorDialogLandscapePosition(position, height, width, lineNums, densityPixels);
383 EXPECT_NE(position.height, 0);
384 EXPECT_NE(position.offsetX, 0);
385 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1800 end");
386 }
387
388 /*
389 * @tc.number : AbilityMgrServiceDialogTest_1900
390 * @tc.name : AbilityMgrServiceDialogTest
391 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
392 */
393 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_1900, TestSize.Level1)
394 {
395 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1900 start");
396 DialogPosition position;
397 position.height = 1000;
398 position.offsetX = 0;
399 const int32_t height = 500;
400 const int32_t width = 700;
401 const int lineNums = 1;
402 const float densityPixels = 1.50;
403 systemDialogScheduler_->GetSelectorDialogLandscapePosition(position, height, width, lineNums, densityPixels);
404 EXPECT_TRUE(position.oversizeHeight);
405 EXPECT_NE(position.offsetX, 0);
406 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_1900 end");
407 }
408
409 /*
410 * @tc.number : AbilityMgrServiceDialogTest_2000
411 * @tc.name : AbilityMgrServiceDialogTest
412 * @tc.desc : 1.Test DialogPortraitPositionAdaptive
413 */
414 HWTEST_F(AbilityMgrServiceDialogTest, AbilityMgrServiceDialogTest_2000, TestSize.Level1)
415 {
416 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_2000 start");
417 DialogPosition position;
418 position.height = 1000;
419 position.offsetX = 0;
420 const int32_t height = 500;
421 const int32_t width = 700;
422 const int lineNums = 1;
423 const float densityPixels = 1.50;
424 systemDialogScheduler_->GetSelectorDialogLandscapePosition(position, height, width, lineNums, densityPixels);
425 EXPECT_TRUE(position.oversizeHeight);
426 EXPECT_NE(position.offsetX, 0);
427 TAG_LOGI(AAFwkTag::TEST, "AbilityMgrServiceDialogTest_2000 end");
428 }
429 } // namespace AAFwk
430 } // namespace OHOS