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_wrapper.h"
26 #include "want.h"
27
28 using namespace testing::ext;
29
30 namespace OHOS {
31 namespace AbilityRuntime {
32 class UIExtensionContextTest : public testing::Test {
33 public:
34 static void SetUpTestCase();
35 static void TearDownTestCase();
36 void SetUp() override;
37 void TearDown() override;
38 };
39
SetUpTestCase(void)40 void UIExtensionContextTest::SetUpTestCase(void)
41 {}
42
TearDownTestCase(void)43 void UIExtensionContextTest::TearDownTestCase(void)
44 {}
45
SetUp()46 void UIExtensionContextTest::SetUp()
47 {}
48
TearDown()49 void UIExtensionContextTest::TearDown()
50 {}
51
52 /**
53 * @tc.number: StartAbility_0100
54 * @tc.name: StartAbility
55 * @tc.desc: Start a new ability.
56 */
57 HWTEST_F(UIExtensionContextTest, StartAbility_0100, TestSize.Level1)
58 {
59 HILOG_INFO("StartAbility_0100 start");
60
61 auto context = std::make_shared<UIExtensionContext>();
62 AAFwk::Want want;
63 ElementName element("device", "ohos.samples", "form_extension_context_test");
64 want.SetElement(element);
65 EXPECT_TRUE(context->StartAbility(want) != ERR_OK);
66
67 HILOG_INFO("StartAbility_0100 end");
68 }
69
70 /**
71 * @tc.number: StartAbility_0200
72 * @tc.name: StartAbility
73 * @tc.desc: Start a new ability.
74 */
75 HWTEST_F(UIExtensionContextTest, StartAbility_0200, TestSize.Level1)
76 {
77 HILOG_INFO("StartAbility_0200 start");
78
79 auto context = std::make_shared<UIExtensionContext>();
80 AAFwk::Want want;
81 AAFwk::StartOptions startOptions;
82 ElementName element("device", "ohos.samples", "form_extension_context_test");
83 want.SetElement(element);
84 EXPECT_TRUE(context->StartAbility(want, startOptions) != ERR_OK);
85
86 HILOG_INFO("StartAbility_0200 end");
87 }
88
89 /**
90 * @tc.number: TerminateSelf_0100
91 * @tc.name: TerminateSelf
92 * @tc.desc: Terminate a ability.
93 */
94 HWTEST_F(UIExtensionContextTest, TerminateSelf_0100, TestSize.Level1)
95 {
96 HILOG_INFO("TerminateSelf_0100 start");
97
98 auto context = std::make_shared<UIExtensionContext>();
99 auto ret = context->TerminateSelf();
100 EXPECT_EQ(ret, ERR_INVALID_VALUE);
101
102 HILOG_INFO("TerminateSelf_0100 end");
103 }
104
105 /**
106 * @tc.number: ConnectAbility_0100
107 * @tc.name: ConnectAbility
108 * @tc.desc: Connect a ability.
109 */
110 HWTEST_F(UIExtensionContextTest, ConnectAbility_0100, TestSize.Level1)
111 {
112 HILOG_INFO("ConnectAbility_0100 start");
113
114 auto context = std::make_shared<UIExtensionContext>();
115 AAFwk::Want want;
116 sptr<AbilityConnectCallback> connectCallback;
117 auto ret = context->ConnectAbility(want, connectCallback);
118 EXPECT_NE(ret, 0);
119
120 HILOG_INFO("ConnectAbility_0100 end");
121 }
122
123 /**
124 * @tc.number: DisconnectAbility_0100
125 * @tc.name: DisconnectAbility
126 * @tc.desc: Disconnect a ability.
127 */
128 HWTEST_F(UIExtensionContextTest, DisconnectAbility_0100, TestSize.Level1)
129 {
130 HILOG_INFO("DisconnectAbility_0100 start");
131
132 auto context = std::make_shared<UIExtensionContext>();
133 AAFwk::Want want;
134 sptr<AbilityConnectCallback> connectCallback;
135 auto ret = context->DisconnectAbility(want, connectCallback);
136 EXPECT_NE(ret, 0);
137
138 HILOG_INFO("DisconnectAbility_0100 end");
139 }
140
141 /**
142 * @tc.number: StartAbilityForResult_0100
143 * @tc.name: StartAbilityForResult
144 * @tc.desc: Start a ability for result.
145 */
146 HWTEST_F(UIExtensionContextTest, StartAbilityForResult_0100, TestSize.Level1)
147 {
148 HILOG_INFO("StartAbilityForResult_0100 start");
149
150 auto context = std::make_shared<UIExtensionContext>();
151 AAFwk::Want want;
152 AAFwk::StartOptions startOptions;
153 int32_t requestCode = 1;
154 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anonc23960830102(const int32_t count, const Want& want, bool isInner) 155 { GTEST_LOG_(INFO) << "StartAbilityForResult_0100 task called"; };
156 auto ret = context->StartAbilityForResult(want, startOptions, requestCode, std::move(task));
157 EXPECT_NE(ret, ERR_OK);
158
159 HILOG_INFO("StartAbilityForResult_0100 end");
160 }
161
162 /**
163 * @tc.number: StartAbilityForResult_0200
164 * @tc.name: StartAbilityForResult
165 * @tc.desc: Start a ability for result.
166 */
167 HWTEST_F(UIExtensionContextTest, StartAbilityForResult_0200, TestSize.Level1)
168 {
169 HILOG_INFO("StartAbilityForResult_0200 start");
170
171 auto context = std::make_shared<UIExtensionContext>();
172 AAFwk::Want want;
173 int32_t requestCode = 1;
174 RuntimeTask task = [](const int32_t count, const Want& want, bool isInner)
__anonc23960830202(const int32_t count, const Want& want, bool isInner) 175 { GTEST_LOG_(INFO) << "StartAbilityForResult_0200 task called"; };
176 auto ret = context->StartAbilityForResult(want, requestCode, std::move(task));
177 EXPECT_NE(ret, ERR_OK);
178
179 HILOG_INFO("StartAbilityForResult_0200 end");
180 }
181
182 /**
183 * @tc.number: OnAbilityResult_0100
184 * @tc.name: OnAbilityResult
185 * @tc.desc: On Ability Result.
186 */
187 HWTEST_F(UIExtensionContextTest, OnAbilityResult_0100, TestSize.Level1)
188 {
189 HILOG_INFO("OnAbilityResult_0100 start");
190
191 auto context = std::make_shared<UIExtensionContext>();
192 int32_t code = 2;
193 int32_t resultCode = 2;
194 AAFwk::Want resultData;
195 context->OnAbilityResult(code, resultCode, resultData);
196 auto count = context->resultCallbacks_.size();
197 EXPECT_EQ(count, 0);
198
199 HILOG_INFO("OnAbilityResult_0100 end");
200 }
201 } // namespace AbilityRuntime
202 } // namespace OHOS
203