• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 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 <gtest/gtest.h>
17 
18 #define private public
19 #define protected public
20 #include "extension_base.h"
21 #undef private
22 #undef protected
23 
24 #include "ability_handler.h"
25 #include "ability_transaction_callback_info.h"
26 #include "configuration.h"
27 #include "hilog_wrapper.h"
28 #include "iremote_object.h"
29 #include "mock_ability_token.h"
30 #include "ohos_application.h"
31 #include "extension_context.h"
32 #include "want.h"
33 
34 using namespace testing::ext;
35 using OHOS::AppExecFwk::ElementName;
36 
37 namespace OHOS {
38 namespace AbilityRuntime {
39 class AbilityExtensionBaseTest : public testing::Test {
40 public:
41     static void SetUpTestCase();
42     static void TearDownTestCase();
43     void SetUp() override;
44     void TearDown() override;
45 };
46 
SetUpTestCase(void)47 void AbilityExtensionBaseTest::SetUpTestCase(void)
48 {}
49 
TearDownTestCase(void)50 void AbilityExtensionBaseTest::TearDownTestCase(void)
51 {}
52 
SetUp()53 void AbilityExtensionBaseTest::SetUp()
54 {}
55 
TearDown()56 void AbilityExtensionBaseTest::TearDown()
57 {}
58 
59 /**
60  * @tc.name: Init_0100
61  * @tc.desc: basic function test.
62  * @tc.type: FUNC
63  */
64 HWTEST_F(AbilityExtensionBaseTest, Init_0100, TestSize.Level1)
65 {
66     HILOG_INFO("Init start");
67 
68     std::shared_ptr<AppExecFwk::AbilityLocalRecord> record = nullptr;
69     std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
70     std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
71     sptr<IRemoteObject> token = nullptr;
72 
73     std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
74     std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
75         AbilityRuntime::ApplicationContext::GetInstance();
76     applicationContext->AttachContextImpl(contextImpl);
77     application->SetApplicationContext(applicationContext);
78 
79     ExtensionBase<ExtensionContext> extensionBase;
80     extensionBase.Init(record, application, handler, token);
81     EXPECT_TRUE(true);
82 
83     HILOG_INFO("Init end");
84 }
85 
86 /**
87  * @tc.name: CreateAndInitContext_0100
88  * @tc.desc: basic function test.
89  * @tc.type: FUNC
90  */
91 HWTEST_F(AbilityExtensionBaseTest, CreateAndInitContext_0100, TestSize.Level1)
92 {
93     HILOG_INFO("CreateAndInitContext start");
94 
95     std::shared_ptr<AppExecFwk::AbilityInfo> info = std::make_shared<AppExecFwk::AbilityInfo>();
96     info->name = "ExtensionBaseTest";
97     std::shared_ptr<AppExecFwk::AbilityLocalRecord> record =
98         std::make_shared<AppExecFwk::AbilityLocalRecord>(info, nullptr);
99     std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
100     std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
101     sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
102 
103     std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
104     std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
105         AbilityRuntime::ApplicationContext::GetInstance();
106     applicationContext->AttachContextImpl(contextImpl);
107     application->SetApplicationContext(applicationContext);
108 
109     ExtensionBase<ExtensionContext> extensionBase;
110     extensionBase.Init(record, application, handler, token);
111     std::shared_ptr<ExtensionContext> context = extensionBase.CreateAndInitContext(record, application, handler, token);
112     EXPECT_STREQ(context->GetAbilityInfo()->name.c_str(), "ExtensionBaseTest");
113     EXPECT_TRUE(true);
114 
115     HILOG_INFO("CreateAndInitContext end");
116 }
117 
118 /**
119  * @tc.name: GetContext_0100
120  * @tc.desc: basic function test.
121  * @tc.type: FUNC
122  */
123 HWTEST_F(AbilityExtensionBaseTest, GetContext_0100, TestSize.Level1)
124 {
125     HILOG_INFO("GetContext start");
126 
127     std::shared_ptr<AppExecFwk::AbilityInfo> info = std::make_shared<AppExecFwk::AbilityInfo>();
128     info->name = "ExtensionBaseTest";
129     std::shared_ptr<AppExecFwk::AbilityLocalRecord> record =
130         std::make_shared<AppExecFwk::AbilityLocalRecord>(info, nullptr);
131     std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
132     std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
133     sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
134 
135     std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
136     std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
137         AbilityRuntime::ApplicationContext::GetInstance();
138     applicationContext->AttachContextImpl(contextImpl);
139     application->SetApplicationContext(applicationContext);
140 
141     ExtensionBase<ExtensionContext> extensionBase;
142     extensionBase.Init(record, application, handler, token);
143     std::shared_ptr<ExtensionContext> context = extensionBase.GetContext();
144     EXPECT_STREQ(context->GetAbilityInfo()->name.c_str(), "ExtensionBaseTest");
145     EXPECT_TRUE(true);
146 
147     HILOG_INFO("GetContext end");
148 }
149 
150 /**
151  * @tc.name: OnConfigurationUpdated_0100
152  * @tc.desc: basic function test.
153  * @tc.type: FUNC
154  */
155 HWTEST_F(AbilityExtensionBaseTest, OnConfigurationUpdated_0100, TestSize.Level1)
156 {
157     HILOG_INFO("OnConfigurationUpdated start");
158 
159     std::shared_ptr<AppExecFwk::AbilityInfo> info = std::make_shared<AppExecFwk::AbilityInfo>();
160     std::shared_ptr<AppExecFwk::AbilityLocalRecord> record =
161         std::make_shared<AppExecFwk::AbilityLocalRecord>(info, nullptr);
162     std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
163     std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
164     sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
165 
166     std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
167     std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
168         AbilityRuntime::ApplicationContext::GetInstance();
169     applicationContext->AttachContextImpl(contextImpl);
170     application->SetApplicationContext(applicationContext);
171 
172     AppExecFwk::Configuration configuration;
173     application->SetConfiguration(configuration);
174 
175     ExtensionBase<ExtensionContext> extensionBase;
176     extensionBase.Init(record, application, handler, token);
177     extensionBase.OnConfigurationUpdated(configuration);
178     EXPECT_TRUE(true);
179 
180     HILOG_INFO("OnConfigurationUpdated end");
181 }
182 
183 /**
184  * @tc.name: OnMemoryLevel_0100
185  * @tc.desc: basic function test.
186  * @tc.type: FUNC
187  */
188 HWTEST_F(AbilityExtensionBaseTest, OnMemoryLevel_0100, TestSize.Level1)
189 {
190     HILOG_INFO("OnMemoryLevel start");
191 
192     std::shared_ptr<AppExecFwk::AbilityInfo> info = std::make_shared<AppExecFwk::AbilityInfo>();
193     std::shared_ptr<AppExecFwk::AbilityLocalRecord> record =
194         std::make_shared<AppExecFwk::AbilityLocalRecord>(info, nullptr);
195     std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
196     std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
197     sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
198 
199     std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
200     std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
201         AbilityRuntime::ApplicationContext::GetInstance();
202     applicationContext->AttachContextImpl(contextImpl);
203     application->SetApplicationContext(applicationContext);
204 
205     ExtensionBase<ExtensionContext> extensionBase;
206     extensionBase.Init(record, application, handler, token);
207 
208     int level = 0;
209     extensionBase.OnMemoryLevel(level);
210     EXPECT_TRUE(true);
211 
212     HILOG_INFO("OnMemoryLevel end");
213 }
214 
215 }  // namespace AbilityRuntime
216 }  // namespace OHOS
217