• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 "ability_manager_errors.h"
21 #include "auto_fill_extension_context.h"
22 #undef private
23 #undef protected
24 #include "hilog_tag_wrapper.h"
25 #include "js_auto_fill_extension_util.h"
26 #include "mock_window.h"
27 
28 using namespace testing::ext;
29 using namespace OHOS::Rosen;
30 
31 namespace OHOS {
32 namespace AbilityRuntime {
33 class AutoFillExtensionContextTest : public testing::Test {
34 public:
35     static void SetUpTestCase();
36     static void TearDownTestCase();
37     void SetUp() override;
38     void TearDown() override;
39 };
40 
41 class MockIAutoFillExtensionCallback : public IAutoFillExtensionCallback {
42 public:
MockIAutoFillExtensionCallback()43     MockIAutoFillExtensionCallback() {}
~MockIAutoFillExtensionCallback()44     virtual ~MockIAutoFillExtensionCallback() {}
OnReloadInModal(const sptr<AAFwk::SessionInfo> & sessionInfo,const CustomData & customData)45     int32_t OnReloadInModal(const sptr<AAFwk::SessionInfo> &sessionInfo, const CustomData &customData) override
46     {
47         return 0;
48     }
49 };
50 
SetUpTestCase(void)51 void AutoFillExtensionContextTest::SetUpTestCase(void)
52 {}
53 
TearDownTestCase(void)54 void AutoFillExtensionContextTest::TearDownTestCase(void)
55 {}
56 
SetUp()57 void AutoFillExtensionContextTest::SetUp()
58 {}
59 
TearDown()60 void AutoFillExtensionContextTest::TearDown()
61 {}
62 
63 class AutoFillMockWindow : public MockWindow {
64 public:
65     AutoFillMockWindow() = default;
66     ~AutoFillMockWindow() = default;
67 
GetUIContent() const68     virtual Ace::UIContent* GetUIContent() const override
69     {
70         return (Ace::UIContent*)0x12345678;
71     }
72 };
73 
74 /**
75  * @tc.number: GetWidow_0100
76  * @tc.name: GetWidow
77  * @tc.desc: GetWidow.
78  */
79 HWTEST_F(AutoFillExtensionContextTest, GetWidow_0100, TestSize.Level1)
80 {
81     TAG_LOGI(AAFwkTag::TEST, "GetWidow_0100 start");
82 
83     auto context = std::make_shared<AutoFillExtensionContext>();
84     sptr<AutoFillMockWindow> window(new (std::nothrow) AutoFillMockWindow());
85     context->SetWindow(window);
86     EXPECT_TRUE(context->GetWindow() != nullptr);
87     TAG_LOGI(AAFwkTag::TEST, "GetWidow_0100 end");
88 }
89 
90 /**
91  * @tc.number: GetUIContent_0100
92  * @tc.name: GetUIContent
93  * @tc.desc: GetUIContent.
94  */
95 HWTEST_F(AutoFillExtensionContextTest, GetUIContent_0100, TestSize.Level1)
96 {
97     TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 start");
98 
99     auto context = std::make_shared<AutoFillExtensionContext>();
100     sptr<AutoFillMockWindow> window(new (std::nothrow) AutoFillMockWindow());
101     context->SetWindow(window);
102     Ace::UIContent* content = context->GetUIContent();
103     EXPECT_TRUE(content == (Ace::UIContent*)0x12345678);
104     TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 end");
105 }
106 
107 /**
108  * @tc.number: IsContext_0100
109  * @tc.name: IsContext
110  * @tc.desc: IsContext.
111  */
112 HWTEST_F(AutoFillExtensionContextTest, IsContext_0100, TestSize.Level1)
113 {
114     TAG_LOGI(AAFwkTag::TEST, "IsContext_0100 start");
115     auto context = std::make_shared<AutoFillExtensionContext>();
116     auto ret = context->IsContext(AutoFillExtensionContext::CONTEXT_TYPE_ID);
117     EXPECT_TRUE(ret);
118     ret = context->IsContext(UIExtensionContext::CONTEXT_TYPE_ID);
119     EXPECT_TRUE(ret);
120     TAG_LOGI(AAFwkTag::TEST, "IsContext_0100 end");
121 }
122 
123 /**
124  * @tc.number: ConvertTo_0100
125  * @tc.name: ConvertTo
126  * @tc.desc: ConvertTo.
127  */
128 HWTEST_F(AutoFillExtensionContextTest, ConvertTo_0100, TestSize.Level1)
129 {
130     TAG_LOGI(AAFwkTag::TEST, "ConvertTo_0100 start");
131     std::shared_ptr<Context> context = std::make_shared<AutoFillExtensionContext>();
132     auto uiHolderExtensionContext = Context::ConvertTo<UIHolderExtensionContext>(context);
133     EXPECT_NE(uiHolderExtensionContext, nullptr);
134     auto uiExtensionContext = Context::ConvertTo<UIExtensionContext>(context);
135     EXPECT_NE(uiExtensionContext, nullptr);
136     auto autoFillExtensionContext = Context::ConvertTo<AutoFillExtensionContext>(context);
137     EXPECT_NE(autoFillExtensionContext, nullptr);
138     TAG_LOGI(AAFwkTag::TEST, "ConvertTo_0100 end");
139 }
140 
141 /**
142  * @tc.number: ConvertTo_0200
143  * @tc.name: ConvertTo
144  * @tc.desc: ConvertTo.
145  */
146 HWTEST_F(AutoFillExtensionContextTest, ConvertTo_0200, TestSize.Level1)
147 {
148     TAG_LOGI(AAFwkTag::TEST, "ConvertTo_0200 start");
149     std::shared_ptr<Context> context = std::make_shared<UIExtensionContext>();
150     auto autoFillExtensionContext = Context::ConvertTo<AutoFillExtensionContext>(context);
151     EXPECT_EQ(autoFillExtensionContext, nullptr);
152     TAG_LOGI(AAFwkTag::TEST, "ConvertTo_0200 end");
153 }
154 
155 /**
156  * @tc.number: SetAutoFillExtensionCallback_0100
157  * @tc.name: SetAutoFillExtensionCallback
158  * @tc.desc: SetAutoFillExtensionCallback.
159  */
160 HWTEST_F(AutoFillExtensionContextTest, SetAutoFillExtensionCallback_0100, TestSize.Level1)
161 {
162     TAG_LOGI(AAFwkTag::TEST, "SetAutoFillExtensionCallback_0100 start");
163     std::shared_ptr<AutoFillExtensionContext> context = std::make_shared<AutoFillExtensionContext>();
164     ASSERT_NE(context, nullptr);
165     auto autoFillExtension = std::make_shared<MockIAutoFillExtensionCallback>();
166     context->SetAutoFillExtensionCallback(autoFillExtension);
167     ASSERT_NE(context->autoFillExtensionCallback_.lock(), nullptr);
168     TAG_LOGI(AAFwkTag::TEST, "SetAutoFillExtensionCallback_0100 end");
169 }
170 
171 /**
172  * @tc.number: SetSessionInfo_0100
173  * @tc.name: SetSessionInfo
174  * @tc.desc: SetSessionInfo.
175  */
176 HWTEST_F(AutoFillExtensionContextTest, SetSessionInfo_0100, TestSize.Level1)
177 {
178     TAG_LOGI(AAFwkTag::TEST, "SetSessionInfo_0100 start");
179     sptr<AAFwk::SessionInfo> sessionInfo = new (std::nothrow) AAFwk::SessionInfo();
180     ASSERT_NE(sessionInfo, nullptr);
181     std::shared_ptr<AutoFillExtensionContext> context = std::make_shared<AutoFillExtensionContext>();
182     ASSERT_NE(context, nullptr);
183     context->SetSessionInfo(sessionInfo);
184     ASSERT_NE(context->sessionInfo_, nullptr);
185     TAG_LOGI(AAFwkTag::TEST, "SetSessionInfo_0100 end");
186 }
187 
188 /**
189  * @tc.number: ReloadInModal_0100
190  * @tc.name: ReloadInModal
191  * @tc.desc: ReloadInModal.
192  */
193 HWTEST_F(AutoFillExtensionContextTest, ReloadInModal_0100, TestSize.Level1)
194 {
195     TAG_LOGI(AAFwkTag::TEST, "ReloadInModal_0100 start");
196     sptr<AAFwk::SessionInfo> sessionInfo = new (std::nothrow) AAFwk::SessionInfo();
197     ASSERT_NE(sessionInfo, nullptr);
198     std::shared_ptr<AutoFillExtensionContext> context = std::make_shared<AutoFillExtensionContext>();
199     ASSERT_NE(context, nullptr);
200     context->SetSessionInfo(sessionInfo);
201     ASSERT_NE(context->sessionInfo_, nullptr);
202 
203     auto autoFillExtension = std::make_shared<MockIAutoFillExtensionCallback>();
204     context->SetAutoFillExtensionCallback(autoFillExtension);
205     ASSERT_NE(context->autoFillExtensionCallback_.lock(), nullptr);
206 
207     struct OHOS::AbilityRuntime::CustomData data;
208     auto ret = context->ReloadInModal(data);
209     EXPECT_EQ(ret, 0);
210     TAG_LOGI(AAFwkTag::TEST, "ReloadInModal_0100 end");
211 }
212 
213 /**
214  * @tc.number: ConnectUIServiceExtensionAbility_0100
215  * @tc.name: ConnectUIServiceExtensionAbility
216  * @tc.desc: ConnectUIServiceExtensionAbility.
217  */
218 HWTEST_F(AutoFillExtensionContextTest, ConnectUIServiceExtensionAbility_0100, TestSize.Level1)
219 {
220     TAG_LOGI(AAFwkTag::TEST, "ConnectUIServiceExtensionAbility_0100 start");
221 
222     std::shared_ptr<AutoFillExtensionContext> context = std::make_shared<AutoFillExtensionContext>();
223     ASSERT_NE(context, nullptr);
224     AAFwk::Want want;
225     sptr<AbilityConnectCallback> connectCallback = nullptr;
226     EXPECT_EQ(context->ConnectUIServiceExtensionAbility(want, connectCallback), AAFwk::ERR_INVALID_CALLER);
227 
228     TAG_LOGI(AAFwkTag::TEST, "ConnectUIServiceExtensionAbility_0100 end");
229 }
230 } // namespace AbilityRuntime
231 } // namespace OHOS
232