• 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 #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