1 /*
2 * Copyright (c) 2021-2023 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 "abs_shared_result_set.h"
17 #include "data_ability_predicates.h"
18 #include "values_bucket.h"
19 #include "demo_ability_test.h"
20 #include <future>
21 #include <gtest/gtest.h>
22 #include <iostream>
23 #include "mock_lifecycle_observer.h"
24 #include "scene_board_judgement.h"
25
26 using namespace std;
27 const int openfileValue = 123;
28 const int deleteValue = 234;
29 const int insertValue = 345;
30 const int updateValue = 456;
31 const int openRawFileValue = 567;
32 const int batchInsertValue = 789;
33 const int resultCodeCompare = 1992;
34
35 namespace OHOS {
36 namespace AppExecFwk {
OnStart(const Want & want,sptr<AAFwk::SessionInfo> sessionInfo)37 void DemoAbility::OnStart(const Want& want, sptr<AAFwk::SessionInfo> sessionInfo)
38 {
39 GTEST_LOG_(INFO) << "DemoAbility::OnStart called";
40 std::shared_ptr<MockLifecycleObserver> observer = std::make_shared<MockLifecycleObserver>();
41 Ability::GetLifecycle()->AddObserver(observer);
42 Ability::OnStart(want);
43 EXPECT_STREQ(std::string("abilityName").c_str(), want.GetElement().GetAbilityName().c_str());
44 }
OnStop()45 void DemoAbility::OnStop()
46 {
47 GTEST_LOG_(INFO) << "DemoAbility::OnStop called";
48 Ability::OnStop();
49 }
OnActive()50 void DemoAbility::OnActive()
51 {
52 GTEST_LOG_(INFO) << "DemoAbility::OnActive called";
53 Ability::OnActive();
54 std::shared_ptr<AbilityInfo> abilityInfo = GetAbilityInfo();
55 EXPECT_TRUE(abilityInfo != nullptr);
56 if (AppExecFwk::AbilityType::PAGE == abilityInfo->type) {
57 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
58 EXPECT_NE(nullptr, Ability::GetWindow());
59 }
60 }
61 }
OnInactive()62 void DemoAbility::OnInactive()
63 {
64 GTEST_LOG_(INFO) << "DemoAbility::OnInactive called";
65 Ability::OnInactive();
66 }
OnBackground()67 void DemoAbility::OnBackground()
68 {
69 GTEST_LOG_(INFO) << "DemoAbility::OnBackground called";
70 Ability::OnBackground();
71 }
72
OnForeground(const Want & want)73 void DemoAbility::OnForeground(const Want& want)
74 {
75 GTEST_LOG_(INFO) << "DemoAbility::OnForeground called";
76 Ability::OnForeground(want);
77 }
78
OnNewWant(const Want & want)79 void DemoAbility::OnNewWant(const Want& want)
80 {
81 GTEST_LOG_(INFO) << "DemoAbility::OnNewWant called";
82 }
83
OnRestoreAbilityState(const PacMap & inState)84 void DemoAbility::OnRestoreAbilityState(const PacMap& inState)
85 {
86 GTEST_LOG_(INFO) << "DemoAbility::OnRestoreAbilityState called";
87 }
88
OnSaveAbilityState(PacMap & outState)89 void DemoAbility::OnSaveAbilityState(PacMap& outState)
90 {
91 std::shared_ptr<ApplicationInfo> appInfo = GetApplicationInfo();
92 std::shared_ptr<AbilityInfo> abilityInfo = GetAbilityInfo();
93
94 EXPECT_STREQ(abilityInfo->resourcePath.c_str(), std::string("resourcePath").c_str());
95 EXPECT_STREQ(appInfo->dataDir.c_str(), std::string("dataDir").c_str());
96 EXPECT_STREQ(GetDatabaseDir().c_str(), std::string("dataBaseDir").c_str());
97 EXPECT_STREQ(GetDataDir().c_str(), std::string("dataDir").c_str());
98 EXPECT_STREQ(GetBundleCodePath().c_str(), std::string("codePath").c_str());
99 EXPECT_STREQ(GetBundleName().c_str(), std::string("bundleName").c_str());
100 EXPECT_STREQ(GetBundleResourcePath().c_str(), std::string("resourcePath").c_str());
101 EXPECT_STREQ(GetAppType().c_str(), std::string("system").c_str());
102
103 EXPECT_NE(GetBundleManager(), nullptr);
104 EXPECT_NE(GetApplicationContext(), nullptr);
105 EXPECT_NE(GetContext(), nullptr);
106 EXPECT_NE(GetAbilityManager(), nullptr);
107 EXPECT_NE(GetProcessInfo(), nullptr);
108
109 GTEST_LOG_(INFO) << "DemoAbility::OnSaveAbilityState called";
110 }
111
OnAbilityResult(int requestCode,int resultCode,const Want & resultData)112 void DemoAbility::OnAbilityResult(int requestCode, int resultCode, const Want& resultData)
113 {
114 GTEST_LOG_(INFO) << "DemoAbility::OnAbilityResult called";
115 EXPECT_EQ(resultCodeCompare, resultCode);
116 }
117
OnConnect(const Want & want)118 sptr<IRemoteObject> DemoAbility::OnConnect(const Want& want)
119 {
120 GTEST_LOG_(INFO) << "DemoAbility::OnConnect called";
121 Ability::OnConnect(want);
122 EXPECT_STREQ(std::string("abilityName").c_str(), want.GetElement().GetAbilityName().c_str());
123 return nullptr;
124 }
125
OnDisconnect(const Want & want)126 void DemoAbility::OnDisconnect(const Want& want)
127 {
128 GTEST_LOG_(INFO) << "DemoAbility::OnDisconnect called";
129 Ability::OnDisconnect(want);
130 EXPECT_STREQ(std::string("abilityName").c_str(), want.GetElement().GetAbilityName().c_str());
131 }
132
OnCommand(const AAFwk::Want & want,bool restart,int startId)133 void DemoAbility::OnCommand(const AAFwk::Want& want, bool restart, int startId)
134 {
135 GTEST_LOG_(INFO) << "DemoAbility::OnCommand called";
136 EXPECT_STREQ(std::string("abilityName").c_str(), want.GetElement().GetAbilityName().c_str());
137 Ability::OnCommand(want, restart, startId);
138 }
139
GetFileTypes(const Uri & uri,const std::string & mimeTypeFilter)140 std::vector<std::string> DemoAbility::GetFileTypes(const Uri& uri, const std::string& mimeTypeFilter)
141 {
142 GTEST_LOG_(INFO) << "DemoAbility::GetFileTypes called";
143 std::vector<std::string> types;
144 types.push_back("Type1");
145 types.push_back("Type2");
146 types.push_back("Type3");
147 return types;
148 }
149
OpenFile(const Uri & uri,const std::string & mode)150 int DemoAbility::OpenFile(const Uri& uri, const std::string& mode)
151 {
152 GTEST_LOG_(INFO) << "DemoAbility::OpenFile called";
153 return openfileValue;
154 }
155
Delete(const Uri & uri,const NativeRdb::DataAbilityPredicates & predicates)156 int DemoAbility::Delete(const Uri& uri, const NativeRdb::DataAbilityPredicates& predicates)
157 {
158 GTEST_LOG_(INFO) << "DemoAbility::Delete called";
159 return deleteValue;
160 }
161
Insert(const Uri & uri,const NativeRdb::ValuesBucket & value)162 int DemoAbility::Insert(const Uri& uri, const NativeRdb::ValuesBucket& value)
163 {
164 GTEST_LOG_(INFO) << "DemoAbility::Insert called";
165 return insertValue;
166 }
167
Update(const Uri & uri,const NativeRdb::ValuesBucket & value,const NativeRdb::DataAbilityPredicates & predicates)168 int DemoAbility::Update(
169 const Uri& uri, const NativeRdb::ValuesBucket& value, const NativeRdb::DataAbilityPredicates& predicates)
170 {
171 GTEST_LOG_(INFO) << "DemoAbility::Update called";
172 return updateValue;
173 }
174
OpenRawFile(const Uri & uri,const std::string & mode)175 int DemoAbility::OpenRawFile(const Uri& uri, const std::string& mode)
176 {
177 GTEST_LOG_(INFO) << "DemoAbility::OpenRawFile called";
178 return openRawFileValue;
179 }
180
Reload(const Uri & uri,const PacMap & extras)181 bool DemoAbility::Reload(const Uri& uri, const PacMap& extras)
182 {
183 GTEST_LOG_(INFO) << "DemoAbility::Reload called";
184 return true;
185 }
186
BatchInsert(const Uri & uri,const std::vector<NativeRdb::ValuesBucket> & values)187 int DemoAbility::BatchInsert(const Uri& uri, const std::vector<NativeRdb::ValuesBucket>& values)
188 {
189 GTEST_LOG_(INFO) << "DemoAbility::BatchInsert called";
190 return batchInsertValue;
191 }
192
GetType(const Uri & uri)193 std::string DemoAbility::GetType(const Uri& uri)
194 {
195 GTEST_LOG_(INFO) << "DemoAbility::GetType called";
196 std::string type("Type1");
197 return type;
198 }
199
Query(const Uri & uri,const std::vector<std::string> & columns,const NativeRdb::DataAbilityPredicates & predicates)200 std::shared_ptr<NativeRdb::AbsSharedResultSet> DemoAbility::Query(
201 const Uri& uri, const std::vector<std::string>& columns, const NativeRdb::DataAbilityPredicates& predicates)
202 {
203 GTEST_LOG_(INFO) << "DemoAbility::Query called";
204 std::shared_ptr<NativeRdb::AbsSharedResultSet> resultset = std::make_shared<NativeRdb::AbsSharedResultSet>(
205 "resultset");
206 return resultset;
207 }
208
209 REGISTER_AA(DemoAbility)
210 } // namespace AppExecFwk
211 } // namespace OHOS
212