• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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