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 "mock_application.h"
17 #include "ability.h"
18 #include "app_loader.h"
19
20 const int INMOCKAPPLICATION_ONE = 9996;
21 const int INMOCKAPPLICATION_TWO = 9997;
22 const int INMOCKAPPLICATION_THREE = 9998;
23 #define NUMBER (10)
24
25 namespace OHOS {
26 namespace AppExecFwk {
27
28 REGISTER_APPLICATION("MockTestApplication", MockApplication)
29
MockApplication()30 MockApplication::MockApplication()
31 {
32 elementCallBack_ = std::make_shared<MockModuleElementsCallback>();
33 lifecycleCallBack_ = std::make_shared<MockModuleLifecycleCallbacks>();
34 }
35
OnConfigurationUpdated(const Configuration & config)36 void MockApplication::OnConfigurationUpdated(const Configuration &config)
37 {
38 GTEST_LOG_(INFO) << "MockApplication::OnConfigurationUpdated called";
39 bool iscalled = true;
40 EXPECT_TRUE(iscalled);
41 if (INMOCKAPPLICATION_TWO == GetProcessInfo()->GetPid()) {
42 RegisterElementsCallbacks(elementCallBack_);
43 OHOSApplication::OnConfigurationUpdated(config);
44 UnregisterElementsCallbacks(elementCallBack_);
45 OHOSApplication::OnConfigurationUpdated(config);
46 }
47 }
48
OnMemoryLevel(int level)49 void MockApplication::OnMemoryLevel(int level)
50 {
51 GTEST_LOG_(INFO) << "MockApplication::OnMemoryLevel called";
52 bool iscalled = true;
53 EXPECT_TRUE(iscalled);
54 level_ = level;
55 EXPECT_EQ(level, level_);
56 if (INMOCKAPPLICATION_TWO == GetProcessInfo()->GetPid()) {
57 RegisterElementsCallbacks(elementCallBack_);
58 OHOSApplication::OnMemoryLevel(level);
59 UnregisterElementsCallbacks(elementCallBack_);
60 OHOSApplication::OnMemoryLevel(level);
61 }
62 }
63
OnForeground()64 void MockApplication::OnForeground()
65 {
66 GTEST_LOG_(INFO) << "MockApplication::OnForeground called";
67 bool iscalled = true;
68 EXPECT_TRUE(iscalled);
69 }
70
OnBackground()71 void MockApplication::OnBackground()
72 {
73 GTEST_LOG_(INFO) << "MockApplication::OnBackground called";
74 bool iscalled = true;
75 EXPECT_TRUE(iscalled);
76 }
77
OnStart()78 void MockApplication::OnStart()
79 {
80 GTEST_LOG_(INFO) << "MockApplication::OnStart called";
81 bool iscalled = true;
82 EXPECT_TRUE(iscalled);
83 int a = 1;
84 EXPECT_EQ(1, a);
85
86 if (INMOCKAPPLICATION_THREE == GetProcessInfo()->GetPid()) {
87 EXPECT_STREQ("TestProcess", GetProcessInfo()->GetProcessName().c_str());
88 EXPECT_STREQ("/hos/lib/cacheDir", GetCacheDir().c_str());
89 EXPECT_STREQ("/hos/lib/cacheDir", GetCodeCacheDir().c_str());
90 EXPECT_STREQ("/hos/lib/dataBaseDir", GetDatabaseDir().c_str());
91 EXPECT_STREQ("/hos/lib/dataDir", GetDataDir().c_str());
92 EXPECT_STREQ("/hos/lib/dataDir", GetDir("test", 1).c_str());
93 EXPECT_STREQ("MockBundleName", GetBundleName().c_str());
94 EXPECT_STREQ("MockTestApplication", GetApplicationInfo()->name.c_str());
95
96 EXPECT_STREQ("", GetBundleCodePath().c_str());
97 EXPECT_STREQ("", GetBundleResourcePath().c_str());
98 EXPECT_EQ(nullptr, GetContext());
99 EXPECT_EQ(nullptr, GetAbilityInfo());
100 EXPECT_STREQ("/hos/lib/dataDir", GetApplicationContext()->GetDir("test", 1).c_str());
101 std::vector<std::string> state;
102 EXPECT_NE(nullptr, GetAbilityManager());
103 if (nullptr != GetAbilityManager()) {
104 GetAbilityManager()->DumpState("test", state);
105 }
106
107 EXPECT_NE(nullptr, GetBundleManager());
108 if (nullptr != GetBundleManager()) {
109 EXPECT_STREQ("ModuleTestType", GetBundleManager()->GetAppType("test").c_str());
110 }
111 } else if (INMOCKAPPLICATION_ONE == GetProcessInfo()->GetPid()) {
112 RegisterAbilityLifecycleCallbacks(lifecycleCallBack_);
113
114 std::shared_ptr<Ability> ability = std::make_shared<Ability>();
115 PacMap pacmap;
116
117 OHOSApplication::OnAbilityStart(ability);
118 OHOSApplication::OnAbilityInactive(ability);
119 OHOSApplication::OnAbilityBackground(ability);
120 OHOSApplication::OnAbilityForeground(ability);
121 OHOSApplication::OnAbilityActive(ability);
122 OHOSApplication::OnAbilityStop(ability);
123 OHOSApplication::OnAbilitySaveState(pacmap);
124
125 UnregisterAbilityLifecycleCallbacks(lifecycleCallBack_);
126
127 OHOSApplication::OnAbilityStart(ability);
128 OHOSApplication::OnAbilityInactive(ability);
129 OHOSApplication::OnAbilityBackground(ability);
130 OHOSApplication::OnAbilityForeground(ability);
131 OHOSApplication::OnAbilityActive(ability);
132 OHOSApplication::OnAbilityStop(ability);
133 OHOSApplication::OnAbilitySaveState(pacmap);
134 }
135 }
136
OnTerminate()137 void MockApplication::OnTerminate()
138 {
139 GTEST_LOG_(INFO) << "MockApplication::OnTerminate called";
140 bool iscalled = true;
141 EXPECT_TRUE(iscalled);
142 }
143
OnConfigurationUpdated(const std::shared_ptr<Ability> & ability,const Configuration & config)144 void MockModuleElementsCallback::OnConfigurationUpdated(
145 const std::shared_ptr<Ability> &ability, const Configuration &config)
146 {
147 GTEST_LOG_(INFO) << "MockModuleElementsCallback::OnConfigurationUpdated called";
148 EXPECT_STREQ(config.GetName().c_str(), "testConfig");
149 }
150
OnMemoryLevel(int level)151 void MockModuleElementsCallback::OnMemoryLevel(int level)
152 {
153 GTEST_LOG_(INFO) << "MockModuleElementsCallback::OnMemoryLevel called";
154 EXPECT_EQ(level, NUMBER);
155 }
156
OnAbilityStart(const std::shared_ptr<Ability> & ability)157 void MockModuleLifecycleCallbacks::OnAbilityStart(const std::shared_ptr<Ability> &ability)
158 {
159 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityStart called";
160 }
161
OnAbilityInactive(const std::shared_ptr<Ability> & ability)162 void MockModuleLifecycleCallbacks::OnAbilityInactive(const std::shared_ptr<Ability> &ability)
163 {
164 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityInactive called";
165 }
166
OnAbilityBackground(const std::shared_ptr<Ability> & ability)167 void MockModuleLifecycleCallbacks::OnAbilityBackground(const std::shared_ptr<Ability> &ability)
168 {
169 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityBackground called";
170 }
171
OnAbilityForeground(const std::shared_ptr<Ability> & ability)172 void MockModuleLifecycleCallbacks::OnAbilityForeground(const std::shared_ptr<Ability> &ability)
173 {
174 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityForeground called";
175 }
176
OnAbilityActive(const std::shared_ptr<Ability> & ability)177 void MockModuleLifecycleCallbacks::OnAbilityActive(const std::shared_ptr<Ability> &ability)
178 {
179 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityActive called";
180 }
181
OnAbilityStop(const std::shared_ptr<Ability> & ability)182 void MockModuleLifecycleCallbacks::OnAbilityStop(const std::shared_ptr<Ability> &ability)
183 {
184 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilityStop called";
185 }
186
OnAbilitySaveState(const PacMap & outState)187 void MockModuleLifecycleCallbacks::OnAbilitySaveState(const PacMap &outState)
188 {
189 GTEST_LOG_(INFO) << "MockModuleLifecycleCallbacks::OnAbilitySaveState called";
190 }
191
192 } // namespace AppExecFwk
193 } // namespace OHOS