1 /*
2 * Copyright (c) 2024 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 #include "ability_record.h"
20 #include "app_utils.h"
21 #undef private
22 #include "hilog_tag_wrapper.h"
23 #include "multi_instance_utils.h"
24 #include "parameters.h"
25
26 using namespace testing;
27 using namespace testing::ext;
28
29 namespace OHOS {
30 namespace AAFwk {
31 class MultiInstanceUtilsTest : public testing::Test {
32 public:
33 static void SetUpTestCase();
34 static void TearDownTestCase();
35 void SetUp() override;
36 void TearDown() override;
37 };
38
SetUpTestCase(void)39 void MultiInstanceUtilsTest::SetUpTestCase(void) {}
TearDownTestCase(void)40 void MultiInstanceUtilsTest::TearDownTestCase(void) {}
SetUp()41 void MultiInstanceUtilsTest::SetUp() {}
TearDown()42 void MultiInstanceUtilsTest::TearDown() {}
43
44 /**
45 * @tc.name: MultiInstanceUtils_GetInstanceKey_0100
46 * @tc.desc: GetInstanceKey
47 * @tc.type: FUNC
48 * @tc.require: NA
49 */
50 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_GetInstanceKey_0100, TestSize.Level1)
51 {
52 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetInstanceKey_0100 start");
53 Want want;
54 want.SetParam(Want::APP_INSTANCE_KEY, std::string("app_instance_0"));
55 auto key = MultiInstanceUtils::GetInstanceKey(want);
56 EXPECT_EQ(key, "app_instance_0");
57
58 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetInstanceKey_0100 end");
59 }
60
61 /**
62 * @tc.name: MultiInstanceUtils_GetValidExtensionInstanceKey_0100
63 * @tc.desc: GetValidExtensionInstanceKey
64 * @tc.type: FUNC
65 * @tc.require: NA
66 */
67 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_GetValidExtensionInstanceKey_0100, TestSize.Level1)
68 {
69 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetValidExtensionInstanceKey_0100 start");
70 AbilityRequest abilityRequest;
71 auto key = MultiInstanceUtils::GetValidExtensionInstanceKey(abilityRequest);
72 EXPECT_EQ(key, "app_instance_0");
73
74 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetValidExtensionInstanceKey_0100 end");
75 }
76
77 /**
78 * @tc.name: MultiInstanceUtils_GetValidExtensionInstanceKey_0200
79 * @tc.desc: GetValidExtensionInstanceKey
80 * @tc.type: FUNC
81 * @tc.require: NA
82 */
83 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_GetValidExtensionInstanceKey_0200, TestSize.Level1)
84 {
85 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetValidExtensionInstanceKey_0100 start");
86 AbilityRequest abilityRequest;
87 abilityRequest.abilityInfo.extensionAbilityType = AppExecFwk::ExtensionAbilityType::WORK_SCHEDULER;
88 abilityRequest.want.SetParam(Want::APP_INSTANCE_KEY, std::string("app_instance_1"));
89 auto key = MultiInstanceUtils::GetValidExtensionInstanceKey(abilityRequest);
90 EXPECT_EQ(key, "app_instance_1");
91
92 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetValidExtensionInstanceKey_0200 end");
93 }
94
95 /**
96 * @tc.name: MultiInstanceUtils_GetSelfCallerInstanceKey_0100
97 * @tc.desc: GetSelfCallerInstanceKey
98 * @tc.type: FUNC
99 * @tc.require: NA
100 */
101 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_GetSelfCallerInstanceKey_0100, TestSize.Level1)
102 {
103 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetSelfCallerInstanceKey_0100 start");
104 AbilityRequest abilityRequest;
105 auto key = MultiInstanceUtils::GetSelfCallerInstanceKey(abilityRequest);
106 EXPECT_EQ(key, "");
107
108 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_GetSelfCallerInstanceKey_0100 end");
109 }
110
111 /**
112 * @tc.name: MultiInstanceUtils_IsDefaultInstanceKey_0100
113 * @tc.desc: IsDefaultInstanceKey
114 * @tc.type: FUNC
115 * @tc.require: NA
116 */
117 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_IsDefaultInstanceKey_0100, TestSize.Level1)
118 {
119 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsDefaultInstanceKey_0100 start");
120 auto ret = MultiInstanceUtils::IsDefaultInstanceKey("app_instance_0");
121 EXPECT_EQ(ret, true);
122
123 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsDefaultInstanceKey_0100 end");
124 }
125
126 /**
127 * @tc.name: MultiInstanceUtils_IsMultiInstanceApp_0100
128 * @tc.desc: IsMultiInstanceApp
129 * @tc.type: FUNC
130 * @tc.require: NA
131 */
132 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_IsMultiInstanceApp_0100, TestSize.Level1)
133 {
134 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsMultiInstanceApp_0100 start");
135 AbilityRequest abilityRequest;
136 auto ret = MultiInstanceUtils::IsMultiInstanceApp(abilityRequest.appInfo);
137 EXPECT_EQ(ret, false);
138
139 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsMultiInstanceApp_0100 end");
140 }
141
142 /**
143 * @tc.name: MultiInstanceUtils_IsSupportedExtensionType_0100
144 * @tc.desc: IsSupportedExtensionType
145 * @tc.type: FUNC
146 * @tc.require: NA
147 */
148 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_IsSupportedExtensionType_0100, TestSize.Level1)
149 {
150 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsSupportedExtensionType_0100 start");
151 AbilityRequest abilityRequest;
152 auto ret = MultiInstanceUtils::IsSupportedExtensionType(AppExecFwk::ExtensionAbilityType::WORK_SCHEDULER);
153 EXPECT_EQ(ret, true);
154 ret = MultiInstanceUtils::IsSupportedExtensionType(AppExecFwk::ExtensionAbilityType::BACKUP);
155 EXPECT_EQ(ret, true);
156 ret = MultiInstanceUtils::IsSupportedExtensionType(AppExecFwk::ExtensionAbilityType::SHARE);
157 EXPECT_EQ(ret, true);
158 ret = MultiInstanceUtils::IsSupportedExtensionType(AppExecFwk::ExtensionAbilityType::WINDOW);
159 EXPECT_EQ(ret, false);
160
161 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsSupportedExtensionType_0100 end");
162 }
163
164 /**
165 * @tc.name: MultiInstanceUtils_IsInstanceKeyExist_0100
166 * @tc.desc: IsInstanceKeyExist
167 * @tc.type: FUNC
168 * @tc.require: NA
169 */
170 HWTEST_F(MultiInstanceUtilsTest, MultiInstanceUtils_IsInstanceKeyExist_0100, TestSize.Level1)
171 {
172 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsInstanceKeyExist_0100 start");
173 auto ret = MultiInstanceUtils::IsInstanceKeyExist("", "");
174 EXPECT_EQ(ret, false);
175
176 TAG_LOGI(AAFwkTag::TEST, "MultiInstanceUtils_IsInstanceKeyExist_0100 end");
177 }
178 } // namespace AAFwk
179 } // namespace OHOS
180