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 #include "ui_extension_context.h"
22 #undef private
23 #undef protected
24
25 #include "hilog_tag_wrapper.h"
26 #include "want.h"
27 #include "mock_window.h"
28
29 using namespace testing::ext;
30 using namespace OHOS::Rosen;
31
32 namespace OHOS {
33 namespace AbilityRuntime {
34 class UIExtensionContextTest : public testing::Test {
35 public:
36 static void SetUpTestCase();
37 static void TearDownTestCase();
38 void SetUp() override;
39 void TearDown() override;
40 };
41
SetUpTestCase(void)42 void UIExtensionContextTest::SetUpTestCase(void)
43 {}
44
TearDownTestCase(void)45 void UIExtensionContextTest::TearDownTestCase(void)
46 {}
47
SetUp()48 void UIExtensionContextTest::SetUp()
49 {}
50
TearDown()51 void UIExtensionContextTest::TearDown()
52 {}
53
54 /**
55 * @tc.number: StartAbility_0100
56 * @tc.name: StartAbility
57 * @tc.desc: Start a new ability.
58 */
59 HWTEST_F(UIExtensionContextTest, StartAbility_0100, TestSize.Level1)
60 {
61 TAG_LOGI(AAFwkTag::TEST, "StartAbility_0100 start");
62
63 auto context = std::make_shared<UIExtensionContext>();
64 AAFwk::Want want;
65 ElementName element("device", "ohos.samples", "form_extension_context_test");
66 want.SetElement(element);
67 EXPECT_TRUE(context->StartAbility(want) != ERR_OK);
68
69 TAG_LOGI(AAFwkTag::TEST, "StartAbility_0100 end");
70 }
71
72 /**
73 * @tc.number: StartAbility_0200
74 * @tc.name: StartAbility
75 * @tc.desc: Start a new ability.
76 */
77 HWTEST_F(UIExtensionContextTest, StartAbility_0200, TestSize.Level1)
78 {
79 TAG_LOGI(AAFwkTag::TEST, "StartAbility_0200 start");
80
81 auto context = std::make_shared<UIExtensionContext>();
82 AAFwk::Want want;
83 AAFwk::StartOptions startOptions;
84 ElementName element("device", "ohos.samples", "form_extension_context_test");
85 want.SetElement(element);
86 EXPECT_TRUE(context->StartAbility(want, startOptions) != ERR_OK);
87
88 TAG_LOGI(AAFwkTag::TEST, "StartAbility_0200 end");
89 }
90
91 /**
92 * @tc.number: TerminateSelf_0100
93 * @tc.name: TerminateSelf
94 * @tc.desc: Terminate a ability.
95 */
96 HWTEST_F(UIExtensionContextTest, TerminateSelf_0100, TestSize.Level1)
97 {
98 TAG_LOGI(AAFwkTag::TEST, "TerminateSelf_0100 start");
99
100 auto context = std::make_shared<UIExtensionContext>();
101 auto ret = context->TerminateSelf();
102 EXPECT_EQ(ret, ERR_INVALID_VALUE);
103
104 TAG_LOGI(AAFwkTag::TEST, "TerminateSelf_0100 end");
105 }
106
107 /**
108 * @tc.number: ConnectAbility_0100
109 * @tc.name: ConnectAbility
110 * @tc.desc: Connect a ability.
111 */
112 HWTEST_F(UIExtensionContextTest, ConnectAbility_0100, TestSize.Level1)
113 {
114 TAG_LOGI(AAFwkTag::TEST, "ConnectAbility_0100 start");
115
116 auto context = std::make_shared<UIExtensionContext>();
117 AAFwk::Want want;
118 sptr<AbilityConnectCallback> connectCallback;
119 auto ret = context->ConnectAbility(want, connectCallback);
120 EXPECT_NE(ret, 0);
121
122 TAG_LOGI(AAFwkTag::TEST, "ConnectAbility_0100 end");
123 }
124
125 /**
126 * @tc.number: DisconnectAbility_0100
127 * @tc.name: DisconnectAbility
128 * @tc.desc: Disconnect a ability.
129 */
130 HWTEST_F(UIExtensionContextTest, DisconnectAbility_0100, TestSize.Level1)
131 {
132 TAG_LOGI(AAFwkTag::TEST, "DisconnectAbility_0100 start");
133
134 auto context = std::make_shared<UIExtensionContext>();
135 AAFwk::Want want;
136 sptr<AbilityConnectCallback> connectCallback;
137 auto ret = context->DisconnectAbility(want, connectCallback);
138 EXPECT_NE(ret, 0);
139
140 TAG_LOGI(AAFwkTag::TEST, "DisconnectAbility_0100 end");
141 }
142
143 /**
144 * @tc.number: StartAbilityForResult_0100
145 * @tc.name: StartAbilityForResult
146 * @tc.desc: Start a ability for result.
147 */
148 HWTEST_F(UIExtensionContextTest, StartAbilityForResult_0100, TestSize.Level1)
149 {
150 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResult_0100 start");
151
152 auto context = std::make_shared<UIExtensionContext>();
153 AAFwk::Want want;
154 AAFwk::StartOptions startOptions;
155 int32_t requestCode = 1;
156 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0102(const int32_t count, const Want& want, bool isInner) 157 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
158 auto ret = context->StartAbilityForResult(want, startOptions, requestCode, std::move(task));
159 EXPECT_NE(ret, ERR_OK);
160
161 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResult_0100 end");
162 }
163
164 /**
165 * @tc.number: StartAbilityForResult_0200
166 * @tc.name: StartAbilityForResult
167 * @tc.desc: Start a ability for result.
168 */
169 HWTEST_F(UIExtensionContextTest, StartAbilityForResult_0200, TestSize.Level1)
170 {
171 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResult_0200 start");
172
173 auto context = std::make_shared<UIExtensionContext>();
174 AAFwk::Want want;
175 int32_t requestCode = 1;
176 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0202(const int32_t count, const Want& want, bool isInner) 177 { GTEST_LOG_(INFO) << "StartAbilityForResult_0200 task called"; };
178 auto ret = context->StartAbilityForResult(want, requestCode, std::move(task));
179 EXPECT_NE(ret, ERR_OK);
180
181 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResult_0200 end");
182 }
183
184 /**
185 * @tc.number: OnAbilityResult_0100
186 * @tc.name: OnAbilityResult
187 * @tc.desc: On Ability Result.
188 */
189 HWTEST_F(UIExtensionContextTest, OnAbilityResult_0100, TestSize.Level1)
190 {
191 TAG_LOGI(AAFwkTag::TEST, "OnAbilityResult_0100 start");
192
193 auto context = std::make_shared<UIExtensionContext>();
194 int32_t code = 2;
195 int32_t resultCode = 2;
196 AAFwk::Want resultData;
197 context->OnAbilityResult(code, resultCode, resultData);
198 auto count = context->resultCallbacks_.size();
199 EXPECT_EQ(count, 0);
200
201 TAG_LOGI(AAFwkTag::TEST, "OnAbilityResult_0100 end");
202 }
203
204 /**
205 * @tc.number: GenerateCurRequestCode_0100
206 * @tc.name: GenerateCurRequestCode
207 * @tc.desc: GenerateCurRequestCode.
208 */
209 HWTEST_F(UIExtensionContextTest, GenerateCurRequestCode_0100, TestSize.Level1)
210 {
211 TAG_LOGI(AAFwkTag::TEST, "GenerateCurRequestCode_0100 start");
212
213 auto context = std::make_shared<UIExtensionContext>();
214 auto result = context->GenerateCurRequestCode();
215 EXPECT_FALSE(result = 0);
216
217 TAG_LOGI(AAFwkTag::TEST, "GenerateCurRequestCode_0100 end");
218 }
219
220
221 /**
222 * @tc.number: GetWidow_0100
223 * @tc.name: GetWidow
224 * @tc.desc: GetWidow.
225 */
226 HWTEST_F(UIExtensionContextTest, GetWidow_0100, TestSize.Level1)
227 {
228 TAG_LOGI(AAFwkTag::TEST, "GetWidow_0100 start");
229
230 auto context = std::make_shared<UIExtensionContext>();
231 sptr<MockWindow> window(new (std::nothrow) MockWindow());
232 context->SetWindow(window);
233 EXPECT_TRUE(context->GetWindow() != nullptr);
234
235 TAG_LOGI(AAFwkTag::TEST, "GetWidow_0100 end");
236 }
237
238 /**
239 * @tc.number: GetUIContent_0100
240 * @tc.name: GetUIContent
241 * @tc.desc: GetUIContent.
242 */
243 HWTEST_F(UIExtensionContextTest, GetUIContent_0100, TestSize.Level1)
244 {
245 TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 start");
246
247 auto context = std::make_shared<UIExtensionContext>();
248 sptr<MockWindow> window(new (std::nothrow) MockWindow());
249 context->SetWindow(window);
250 Ace::UIContent* content = context->GetUIContent();
251 EXPECT_TRUE(content == nullptr);
252
253 TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 end");
254 }
255
256 /**
257 * @tc.number: StartAbilityForResultAsCaller_0100
258 * @tc.name: StartAbilityForResultAsCaller
259 * @tc.desc: StartAbilityForResultAsCaller.
260 */
261 HWTEST_F(UIExtensionContextTest, StartAbilityForResultAsCaller_0100, TestSize.Level1)
262 {
263 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResultAsCaller_0100 start");
264
265 auto context = std::make_shared<UIExtensionContext>();
266 sptr<MockWindow> window(new (std::nothrow) MockWindow());
267 context->SetWindow(window);
268 AAFwk::Want want;
269 int requestCode = 0;
270 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0302(const int32_t count, const Want& want, bool isInner) 271 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
272 context->StartAbilityForResultAsCaller(want, requestCode, std::move(task));
273 EXPECT_TRUE(context != nullptr);
274
275 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResultAsCaller_0100 end");
276 }
277
278 /**
279 * @tc.number: StartAbilityForResultAsCaller_0200
280 * @tc.name: StartAbilityForResultAsCaller
281 * @tc.desc: StartAbilityForResultAsCaller.
282 */
283 HWTEST_F(UIExtensionContextTest, StartAbilityForResultAsCaller_0200, TestSize.Level1)
284 {
285 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResultAsCaller_0200 start");
286
287 auto context = std::make_shared<UIExtensionContext>();
288 sptr<MockWindow> window(new (std::nothrow) MockWindow());
289 context->SetWindow(window);
290 AAFwk::Want want;
291 AAFwk::StartOptions startOptions;
292 int requestCode = 0;
293 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0402(const int32_t count, const Want& want, bool isInner) 294 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
295 context->StartAbilityForResultAsCaller(want, startOptions, requestCode, std::move(task));
296 EXPECT_TRUE(context != nullptr);
297
298 TAG_LOGI(AAFwkTag::TEST, "StartAbilityForResultAsCaller_0200 end");
299 }
300
301 /**
302 * @tc.number: ReportDrawnCompleted_0100
303 * @tc.name: ReportDrawnCompleted
304 * @tc.desc: ReportDrawnCompleted.
305 */
306 HWTEST_F(UIExtensionContextTest, ReportDrawnCompleted_0100, TestSize.Level1)
307 {
308 TAG_LOGI(AAFwkTag::TEST, "ReportDrawnCompleted_0100 start");
309
310 auto context = std::make_shared<UIExtensionContext>();
311 sptr<MockWindow> window(new (std::nothrow) MockWindow());
312 context->SetWindow(window);
313 context->ReportDrawnCompleted();
314 EXPECT_TRUE(context != nullptr);
315
316 TAG_LOGI(AAFwkTag::TEST, "ReportDrawnCompleted_0100 end");
317 }
318
319 /**
320 * @tc.number: InsertResultCallbackTask_0100
321 * @tc.name: InsertResultCallbackTask
322 * @tc.desc: InsertResultCallbackTask.
323 */
324 HWTEST_F(UIExtensionContextTest, InsertResultCallbackTask_0100, TestSize.Level1)
325 {
326 TAG_LOGI(AAFwkTag::TEST, "InsertResultCallbackTask_0100 start");
327
328 auto context = std::make_shared<UIExtensionContext>();
329 sptr<MockWindow> window(new (std::nothrow) MockWindow());
330 context->SetWindow(window);
331 int requestCode = 0;
332 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0502(const int32_t count, const Want& want, bool isInner) 333 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
334 context->InsertResultCallbackTask(requestCode, std::move(task));
335 EXPECT_TRUE(context != nullptr);
336
337 TAG_LOGI(AAFwkTag::TEST, "InsertResultCallbackTask_0100 end");
338 }
339
340 /**
341 * @tc.number: OpenAtomicService_0100
342 * @tc.name: OpenAtomicService
343 * @tc.desc: OpenAtomicService.
344 */
345 HWTEST_F(UIExtensionContextTest, OpenAtomicService_0100, TestSize.Level1)
346 {
347 TAG_LOGI(AAFwkTag::TEST, "OpenAtomicService_0100 start");
348
349 auto context = std::make_shared<UIExtensionContext>();
350 sptr<MockWindow> window(new (std::nothrow) MockWindow());
351 context->SetWindow(window);
352 AAFwk::Want want;
353 AAFwk::StartOptions startOptions;
354 int requestCode = 0;
355 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anon4d874f5c0602(const int32_t count, const Want& want, bool isInner) 356 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
357 context->OpenAtomicService(want, startOptions, requestCode, std::move(task));
358 EXPECT_TRUE(context != nullptr);
359
360 TAG_LOGI(AAFwkTag::TEST, "OpenAtomicService_0100 end");
361 }
362 } // namespace AbilityRuntime
363 } // namespace OHOS
364