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 #include "ui_service_host_stub.h"
19 #include "ui_service_host_proxy.h"
20 #include "hilog_tag_wrapper.h"
21
22 using namespace testing::ext;
23 using namespace OHOS::AAFwk;
24
25 namespace OHOS {
26 namespace AbilityRuntime {
27 class MockUIServiceHostStubTest : public UIServiceHostStub {
28 public:
29 MockUIServiceHostStubTest() = default;
30 ~MockUIServiceHostStubTest() override = default;
SendData(OHOS::AAFwk::WantParams & data)31 int32_t SendData(OHOS::AAFwk::WantParams &data) override
32 {
33 return 0;
34 }
35 };
36 class UIServiceHostStubTest : public testing::Test {
37 public:
38 static void SetUpTestCase();
39 static void TearDownTestCase();
40 void SetUp() override;
41 void TearDown() override;
42 void WriteInterfaceToken(MessageParcel &data);
43 };
44
SetUpTestCase(void)45 void UIServiceHostStubTest::SetUpTestCase(void)
46 {}
47
TearDownTestCase(void)48 void UIServiceHostStubTest::TearDownTestCase(void)
49 {}
50
SetUp()51 void UIServiceHostStubTest::SetUp()
52 {}
53
TearDown()54 void UIServiceHostStubTest::TearDown()
55 {}
56
WriteInterfaceToken(MessageParcel & data)57 void UIServiceHostStubTest::WriteInterfaceToken(MessageParcel& data)
58 {
59 data.WriteInterfaceToken(UIServiceHostStub::GetDescriptor());
60 }
61
62 /**
63 * @tc.number: OnRemoteRequest_0100
64 * @tc.name: OnRemoteRequest
65 * @tc.desc: UIServiceHostStub OnRemoteRequest
66 */
67 HWTEST_F(UIServiceHostStubTest, OnRemoteRequest_0100, TestSize.Level1)
68 {
69 TAG_LOGI(AAFwkTag::TEST, "OnRemoteRequest_0100 start");
70 std::shared_ptr<UIServiceHostStub> stub = std::make_shared<MockUIServiceHostStubTest>();
71 MessageParcel data;
72 MessageParcel reply;
73 MessageOption option;
74
75 auto result = stub->OnRemoteRequest(IUIServiceHost::SEND_DATA, data, reply, option);
76 EXPECT_EQ(result, ERR_INVALID_STATE);
77 TAG_LOGI(AAFwkTag::TEST, "OnRemoteRequest_0100 end");
78 }
79
80 /**
81 * @tc.number: OnRemoteRequest_0200
82 * @tc.name: OnRemoteRequest
83 * @tc.desc: UIServiceHostStub OnRemoteRequest
84 */
85 HWTEST_F(UIServiceHostStubTest, OnRemoteRequest_0200, TestSize.Level1)
86 {
87 TAG_LOGI(AAFwkTag::TEST, "OnRemoteRequest_0200 start");
88 std::shared_ptr<UIServiceHostStub> stub = std::make_shared<MockUIServiceHostStubTest>();
89 MessageParcel data;
90 MessageParcel reply;
91 MessageOption option;
92
93 AAFwk::Want want;
94 const std::string name = "name";
95 const std::string jsonPath = "jsonPath";
96 const std::string dataStr = "data";
97 const std::string extraData = "extraData";
98 data.WriteInterfaceToken(UIServiceHostProxy::GetDescriptor());
99 data.WriteParcelable(&want);
100
101 if (!data.WriteString(name)) {
102 return;
103 }
104
105 if (!data.WriteString(jsonPath)) {
106 return;
107 }
108 if (!data.WriteString(dataStr)) {
109 return;
110 }
111 if (!data.WriteString(extraData)) {
112 return;
113 }
114
115 auto result = stub->OnRemoteRequest(IUIServiceHost::SEND_DATA, data, reply, option);
116 EXPECT_EQ(result, NO_ERROR);
117 TAG_LOGI(AAFwkTag::TEST, "OnRemoteRequest_0200 end");
118 }
119
120 /**
121 * @tc.number: OnSendData_0100
122 * @tc.name: OnSendData
123 * @tc.desc: UIServiceHostStub OnSendData
124 */
125 HWTEST_F(UIServiceHostStubTest, OnSendData_0100, TestSize.Level1)
126 {
127 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0100 start");
128 std::shared_ptr<UIServiceHostStub> stub = std::make_shared<MockUIServiceHostStubTest>();
129
130 MessageParcel data;
131 MessageParcel reply;
132
133 WriteInterfaceToken(data);
134
135 auto result = stub->OnSendData(data, reply);
136 EXPECT_EQ(result, NO_ERROR);
137 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0100 end");
138 }
139
140 /**
141 * @tc.number: OnSendData_0200
142 * @tc.name: OnSendData
143 * @tc.desc: UIServiceHostStub OnSendData
144 */
145 HWTEST_F(UIServiceHostStubTest, OnSendData_0200, TestSize.Level1)
146 {
147 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0200 start");
148 std::shared_ptr<UIServiceHostStub> stub = std::make_shared<MockUIServiceHostStubTest>();
149
150 MessageParcel data;
151 MessageParcel reply;
152
153 auto result = stub->OnSendData(data, reply);
154 EXPECT_EQ(result, ERR_INVALID_VALUE);
155 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0200 end");
156 }
157 } // namespace AbilityRuntime
158 } // namespace OHOS
159