• 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 "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