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