• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_manager_service.h"
20 #include "task_handler_wrap.h"
21 #undef private
22 
23 #include "ability_record.h"
24 #include "sa_mgr_client.h"
25 #include "string_wrapper.h"
26 #include "int_wrapper.h"
27 
28 using namespace testing::ext;
29 using namespace OHOS::AAFwk;
30 
31 namespace OHOS {
32 namespace AppExecFwk {
33 namespace {
34 const int BUNDLE_MGR_SERVICE_SYS_ABILITY_ID = 401;
35 }
36 class FreeInstallManagerSecondTest : public testing::Test {
37 public:
FreeInstallManagerSecondTest()38     FreeInstallManagerSecondTest()
39     {}
~FreeInstallManagerSecondTest()40     ~FreeInstallManagerSecondTest()
41     {}
42     static void SetUpTestCase(void);
43     static void TearDownTestCase(void);
44     void SetUp();
45     void TearDown();
46     sptr<Token> MockToken();
47     std::shared_ptr<FreeInstallManager> freeInstallManager_ = nullptr;
48 };
49 
SetUpTestCase(void)50 void FreeInstallManagerSecondTest::SetUpTestCase(void) {}
51 
TearDownTestCase(void)52 void FreeInstallManagerSecondTest::TearDownTestCase(void) {}
53 
SetUp(void)54 void FreeInstallManagerSecondTest::SetUp(void) {}
55 
TearDown(void)56 void FreeInstallManagerSecondTest::TearDown(void) {}
57 
MockToken()58 sptr<Token> FreeInstallManagerSecondTest::MockToken()
59 {
60     sptr<Token> token = nullptr;
61     AbilityRequest abilityRequest;
62     abilityRequest.appInfo.bundleName = "com.test.demo";
63     abilityRequest.abilityInfo.name = "MainAbility";
64     abilityRequest.abilityInfo.type = AbilityType::PAGE;
65     std::shared_ptr<AbilityRecord> abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest);
66     if (!abilityRecord) {
67         return nullptr;
68     }
69     return abilityRecord->GetToken();
70 }
71 
72 /**
73  * @tc.number: GetFreeInstallTaskInfo_001
74  * @tc.name: GetFreeInstallTaskInfo
75  * @tc.desc: Test GetFreeInstallTaskInfo.
76  */
77 HWTEST_F(FreeInstallManagerSecondTest, GetFreeInstallTaskInfo_001, TestSize.Level1)
78 {
79     auto abilityMs_ = std::make_shared<AbilityManagerService>();
80     freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
81     const std::string bundleName("com.test.demo");
82     std::string abilityName("MainAbility");
83     const std::string startTime = "startTime";
84     FreeInstallInfo taskInfo;
85     FreeInstallInfo info;
86     ElementName element("", "com.test.demo", "MainAbility");
87     info.want.SetElement(element);
88     sptr<OHOS::AAFwk::IInterface> iInterface = String::Box("startTime");
89     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
90     freeInstallManager_->freeInstallList_.push_back(info);
91     bool ret = freeInstallManager_->GetFreeInstallTaskInfo(bundleName, abilityName, startTime, taskInfo);
92     EXPECT_TRUE(ret);
93 
94     ret = freeInstallManager_->GetFreeInstallTaskInfo("", abilityName, startTime, taskInfo);
95     EXPECT_FALSE(ret);
96 
97     ret = freeInstallManager_->GetFreeInstallTaskInfo(bundleName, "", startTime, taskInfo);
98     EXPECT_FALSE(ret);
99 
100     ret = freeInstallManager_->GetFreeInstallTaskInfo(bundleName, abilityName, "", taskInfo);
101     EXPECT_FALSE(ret);
102 }
103 
104 /**
105  * @tc.number: SetSCBCallStatus_001
106  * @tc.name: SetSCBCallStatus
107  * @tc.desc: Test GetFreeInstallTaskInfo.
108  */
109 HWTEST_F(FreeInstallManagerSecondTest, SetSCBCallStatus_001, TestSize.Level1)
110 {
111     auto abilityMs_ = std::make_shared<AbilityManagerService>();
112     freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
113     const std::string bundleName("com.test.demo");
114     std::string abilityName("MainAbility");
115     const std::string startTime = "startTime";
116     bool scbCallStatus = true;
117 
118     FreeInstallInfo info;
119     ElementName element("", "com.test.demo", "MainAbility");
120     info.want.SetElement(element);
121     sptr<OHOS::AAFwk::IInterface> iInterface = String::Box("startTime");
122     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
123     freeInstallManager_->freeInstallList_.push_back(info);
124 
125     freeInstallManager_->SetSCBCallStatus("", abilityName, startTime, scbCallStatus);
126     EXPECT_FALSE(info.isStartUIAbilityBySCBCalled);
127 
128     freeInstallManager_->SetSCBCallStatus(bundleName, "", startTime, scbCallStatus);
129     EXPECT_FALSE(info.isStartUIAbilityBySCBCalled);
130 
131     freeInstallManager_->SetSCBCallStatus(bundleName, abilityName, "", scbCallStatus);
132     EXPECT_FALSE(info.isStartUIAbilityBySCBCalled);
133 
134     freeInstallManager_->SetSCBCallStatus(bundleName, abilityName, startTime, scbCallStatus);
135     FreeInstallInfo infoRet;
136     EXPECT_TRUE(freeInstallManager_->GetFreeInstallTaskInfo(bundleName, abilityName, startTime, infoRet));
137     EXPECT_TRUE(infoRet.isStartUIAbilityBySCBCalled);
138 }
139 
140 /**
141  * @tc.number: NotifyInsightIntentFreeInstallResult_001
142  * @tc.name: NotifyInsightIntentFreeInstallResult
143  * @tc.desc: Test NotifyInsightIntentFreeInstallResult.
144  */
145 HWTEST_F(FreeInstallManagerSecondTest, NotifyInsightIntentFreeInstallResult_001, TestSize.Level1)
146 {
147     auto abilityMs_ = std::make_shared<AbilityManagerService>();
148     freeInstallManager_ = std::make_shared<FreeInstallManager>(abilityMs_);
149     Want want;
150     int32_t resultCode = ERR_OK + 1;
151     //resultCode != ERR_OK and freeInstallList_ is NULL
152     want.SetParam("ohos.insightIntent.executeParam.id", std::string("0"));
153     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
154     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 0);
155 
156     resultCode = ERR_OK;
157     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
158     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 0);
159 
160     ElementName element("", "com.test.demo", "MainAbility");
161     want.SetElement(element);
162     sptr<OHOS::AAFwk::IInterface> iInterface = String::Box("startTime");
163     want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
164     want.parameters_.SetParam(AppExecFwk::INSIGHT_INTENT_EXECUTE_PARAM_NAME, iInterface);
165     want.parameters_.SetParam(AppExecFwk::INSIGHT_INTENT_EXECUTE_PARAM_MODE, iInterface);
166     FreeInstallInfo info;
167     ElementName element2("", "com.test.demo2", "MainAbility2");
168     info.want.SetElement(element2);
169     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
170     freeInstallManager_->freeInstallList_.push_back(info);
171     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
172     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 1);
173 
174     ElementName element3("", "com.test.demo", "MainAbility2");
175     info.want.SetElement(element3);
176     iInterface = String::Box("startTime2");
177     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
178     freeInstallManager_->freeInstallList_.clear();
179     freeInstallManager_->freeInstallList_.push_back(info);
180     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
181     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 1);
182 
183     ElementName element4("", "com.test.demo", "MainAbility");
184     info.want.SetElement(element4);
185     iInterface = String::Box("startTime");
186     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
187     freeInstallManager_->freeInstallList_.clear();
188     freeInstallManager_->freeInstallList_.push_back(info);
189     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
190     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 0);
191 
192     ElementName element5("", "com.test.demo", "MainAbility", "modename");
193     info.want.SetElement(element5);
194     iInterface = String::Box("startTime");
195     info.want.parameters_.SetParam(Want::PARAM_RESV_START_TIME, iInterface);
196     info.want.parameters_.SetParam(AppExecFwk::INSIGHT_INTENT_EXECUTE_PARAM_NAME, iInterface);
197     iInterface = Integer::Box(1);
198     info.want.parameters_.SetParam(AppExecFwk::INSIGHT_INTENT_EXECUTE_PARAM_MODE, iInterface);
199     freeInstallManager_->freeInstallList_.clear();
200     freeInstallManager_->freeInstallList_.push_back(info);
201     freeInstallManager_->NotifyInsightIntentFreeInstallResult(want, resultCode);
202     EXPECT_EQ(freeInstallManager_->freeInstallList_.size(), 0);
203 }
204 }  // namespace AppExecFwk
205 }  // namespace OHOS