• 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 #define private public
17 #include "interfaces/inner_api/form_render/include/form_renderer_delegate_impl.h"
18 #undef private
19 #include "interfaces/inner_api/form_render/include/form_renderer_delegate_stub.h"
20 #include "test/mock/interfaces/mock_form_render_delegate_stub.h"
21 #include "test/mock/interfaces/mock_i_remote_object_form.h"
22 
23 using namespace testing;
24 using namespace testing::ext;
25 
26 namespace OHOS::Ace {
27 namespace {
28 
29 } // namespace
30 class FormRenderDelegateStubTest : public testing::Test {
31 public:
SetUpTestCase()32     static void SetUpTestCase() {};
33 
TearDownTestCase()34     static void TearDownTestCase() {};
35 };
36 
37 /*
38  * @tc.name: FormRenderDelegateStubTest_001
39  * @tc.desc: Test OnRemoteRequest() function.
40  * @tc.type: FUNC
41  */
42 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_001, TestSize.Level1)
43 {
44     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_001 start";
45     MockFormRenderDelegateStub renderDelegate;
46     uint32_t code = 11;
47     MessageParcel data;
48     MessageParcel reply;
49     MessageOption option;
50 
51     std::u16string name = u"form_render_delegate_stub";
52     data.WriteInterfaceToken(name);
53     EXPECT_EQ(renderDelegate.OnRemoteRequest(code, data, reply, option), ERR_INVALID_VALUE);
54 
55     code = 3;
56     std::u16string descriptor = FormRendererDelegateStub::GetDescriptor();
57     data.WriteInterfaceToken(descriptor);
58     EXPECT_EQ(renderDelegate.OnRemoteRequest(code, data, reply, option), ERR_OK);
59     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_001 end";
60 }
61 
62 /*
63  * @tc.name: FormRenderDelegateStubTest_002
64  * @tc.desc: Test HandleOnSurfaceCreate(), HandleOnSurfaceReuse() function formJsInfo is nullptr.
65  * @tc.type: FUNC
66  */
67 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_002, TestSize.Level1)
68 {
69     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_002 start";
70     MockFormRenderDelegateStub renderDelegate;
71     MessageParcel data;
72     MessageParcel reply;
73     EXPECT_EQ(renderDelegate.HandleOnSurfaceCreate(data, reply), ERR_INVALID_VALUE);
74     EXPECT_EQ(renderDelegate.HandleOnSurfaceReuse(data, reply), ERR_INVALID_VALUE);
75 
76     std::string surfaceNodeName = "ArkTSCardNode";
77     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
78     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
79     ASSERT_NE(rsNode, nullptr);
80     rsNode->Marshalling(data);
81     EXPECT_EQ(renderDelegate.HandleOnSurfaceCreate(data, reply), ERR_INVALID_VALUE);
82     data.WriteUint64(rsNode->GetId());
83     EXPECT_EQ(renderDelegate.HandleOnSurfaceReuse(data, reply), ERR_INVALID_VALUE);
84     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_002 end";
85 }
86 
87 /*
88  * @tc.name: FormRenderDelegateStubTest_003
89  * @tc.desc: Test HandleOnSurfaceCreate(), HandleOnSurfaceReuse() function wan is nullptr.
90  * @tc.type: FUNC
91  */
92 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_003, TestSize.Level1)
93 {
94     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_003 start";
95     MockFormRenderDelegateStub renderDelegate;
96     MessageParcel data;
97     MessageParcel reply;
98 
99     std::string surfaceNodeName = "ArkTSCardNode";
100     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
101     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
102     ASSERT_NE(rsNode, nullptr);
103     rsNode->Marshalling(data);
104 
105     OHOS::AppExecFwk::FormJsInfo formJsInfo = {};
106     formJsInfo.bundleName = "bundleName";
107     formJsInfo.moduleName = "moduleName";
108     data.WriteParcelable(&formJsInfo);
109     EXPECT_EQ(renderDelegate.HandleOnSurfaceCreate(data, reply), ERR_INVALID_VALUE);
110     data.WriteUint64(rsNode->GetId());
111     formJsInfo.bundleName = "bundleName";
112     formJsInfo.moduleName = "moduleName";
113     data.WriteParcelable(&formJsInfo);
114     EXPECT_EQ(renderDelegate.HandleOnSurfaceReuse(data, reply), ERR_INVALID_VALUE);
115     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_003 end";
116 }
117 
118 /*
119  * @tc.name: FormRenderDelegateStubTest_004
120  * @tc.desc: Test HandleOnSurfaceCreate(), HandleOnSurfaceReuse() function.
121  * @tc.type: FUNC
122  */
123 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_004, TestSize.Level1)
124 {
125     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_004 start";
126     MockFormRenderDelegateStub renderDelegate;
127     MessageParcel data;
128     MessageParcel reply;
129 
130     std::string surfaceNodeName = "ArkTSCardNode";
131     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
132     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
133     ASSERT_NE(rsNode, nullptr);
134     rsNode->Marshalling(data);
135 
136     OHOS::AppExecFwk::FormJsInfo formJsInfo = {};
137     formJsInfo.bundleName = "bundleName";
138     formJsInfo.moduleName = "moduleName";
139     data.WriteParcelable(&formJsInfo);
140 
141     OHOS::AAFwk::Want want = {};
142     data.WriteParcelable(&want);
143     EXPECT_EQ(renderDelegate.HandleOnSurfaceCreate(data, reply), ERR_OK);
144     data.WriteUint64(rsNode->GetId());
145     formJsInfo.bundleName = "bundleName";
146     formJsInfo.moduleName = "moduleName";
147     data.WriteParcelable(&formJsInfo);
148     data.WriteParcelable(&formJsInfo);
149     EXPECT_EQ(renderDelegate.HandleOnSurfaceReuse(data, reply), ERR_OK);
150     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_004 end";
151 }
152 
153 /*
154  * @tc.name: FormRenderDelegateStubTest_005
155  * @tc.desc: Test HandleOnSurfaceRelease() function.
156  * @tc.type: FUNC
157  */
158 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_005, TestSize.Level1)
159 {
160     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_005 start";
161     MockFormRenderDelegateStub renderDelegate;
162     MessageParcel data;
163     MessageParcel reply;
164     EXPECT_EQ(renderDelegate.HandleOnSurfaceRelease(data, reply), ERR_OK);
165 
166     std::string surfaceNodeName = "ArkTSCardNode";
167     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
168     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
169     ASSERT_NE(rsNode, nullptr);
170     rsNode->Marshalling(data);
171     renderDelegate.HandleOnSurfaceCreate(data, reply);
172     data.WriteUint64(rsNode->GetId());
173     EXPECT_EQ(renderDelegate.HandleOnSurfaceRelease(data, reply), ERR_OK);
174     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_005 end";
175 }
176 
177 /*
178  * @tc.name: FormRenderDelegateStubTest_006
179  * @tc.desc: Test HandleOnSurfaceDetach(), HandleOnActionEvent(), HandleOnError, HandleOnSurfaceChange(),
180  *           HandleOnFormLinkInfoUpdate(), HandleOnGetRectRelativeToWindow() function.
181  * @tc.type: FUNC
182  */
183 HWTEST_F(FormRenderDelegateStubTest, FormRenderDelegateStubTest_006, TestSize.Level1)
184 {
185     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_006 start";
186     MockFormRenderDelegateStub renderDelegate;
187     MessageParcel data;
188     MessageParcel reply;
189 
190     EXPECT_EQ(renderDelegate.HandleOnSurfaceDetach(data, reply), ERR_OK);
191     EXPECT_EQ(renderDelegate.HandleOnActionEvent(data, reply), ERR_OK);
192     EXPECT_EQ(renderDelegate.HandleOnError(data, reply), ERR_OK);
193     EXPECT_EQ(renderDelegate.HandleOnSurfaceChange(data, reply), ERR_OK);
194     EXPECT_EQ(renderDelegate.HandleOnFormLinkInfoUpdate(data, reply), ERR_OK);
195     EXPECT_EQ(renderDelegate.HandleOnGetRectRelativeToWindow(data, reply), ERR_OK);
196     GTEST_LOG_(INFO) << "FormRenderDelegateStubTest_006 end";
197 }
198 }
199