1 /*
2 * Copyright (c) 2021 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 #include <gtest/gtest.h>
16 #include "print_extension_callback_stub.h"
17 #include "print_manager_client.h"
18 #include "iremote_broker.h"
19 #include "print_constant.h"
20 #include "print_log.h"
21 #include "print_resolution.h"
22
23 using namespace testing::ext;
24
25 namespace OHOS {
26 namespace Print {
27 class PrintExtensionCallbackStubTest : public testing::Test {
28 public:
29 static void SetUpTestCase(void);
30 static void TearDownTestCase(void);
31 void SetUp();
32 void TearDown();
33 };
34
SetUpTestCase(void)35 void PrintExtensionCallbackStubTest::SetUpTestCase(void) {}
36
TearDownTestCase(void)37 void PrintExtensionCallbackStubTest::TearDownTestCase(void) {}
38
SetUp(void)39 void PrintExtensionCallbackStubTest::SetUp(void) {}
40
TearDown(void)41 void PrintExtensionCallbackStubTest::TearDown(void) {}
42
43 /**
44 * @tc.name: PrintExtensionCallbackStubTest_0001
45 * @tc.desc: Verify the capability function.
46 * @tc.type: FUNC
47 * @tc.require:
48 */
49 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0001, TestSize.Level1)
50 {
51 MessageParcel data;
52 MessageParcel reply;
53 MessageOption option(MessageOption::TF_SYNC);
54 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB);
55
56 PrintExtensionCallbackStub callback;
57 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_RPC_FAILURE);
58 }
59
60 /**
61 * @tc.name: PrintServiceProxyTest_0002
62 * @tc.desc: Verify the capability function.
63 * @tc.type: FUNC
64 * @tc.require:
65 */
66 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0002, TestSize.Level1)
67 {
68 MessageParcel data;
69 MessageParcel reply;
70 MessageOption option(MessageOption::TF_SYNC);
71 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB + 100);
72
73 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
74 PrintExtensionCallbackStub callback;
75 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), OHOS::IPC_STUB_UNKNOW_TRANS_ERR);
76 }
77
78 /**
79 * @tc.name: PrintServiceProxyTest_0003
80 * @tc.desc: Verify the capability function.
81 * @tc.type: FUNC
82 * @tc.require:
83 */
84 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0003, TestSize.Level1)
85 {
86 MessageParcel data;
87 MessageParcel reply;
88 MessageOption option(MessageOption::TF_SYNC);
89 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB);
90
91 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
92 PrintExtensionCallbackStub callback;
93 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_SERVER_FAILURE);
94 }
95
96 /**
97 * @tc.name: PrintServiceProxyTest_0004
98 * @tc.desc: Verify the capability function.
99 * @tc.type: FUNC
100 * @tc.require:
101 */
102 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0004, TestSize.Level1)
103 {
104 MessageParcel data;
105 MessageParcel reply;
106 MessageOption option(MessageOption::TF_SYNC);
107 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB);
108
109 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
110 PrintExtensionCallbackStub callback;
__anonaee1148c0102() 111 PrintExtCallback extCb = []() -> bool {
112 return true;
113 };
114 callback.SetExtCallback(extCb);
115 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_NONE);
116 }
117
118 /**
119 * @tc.name: PrintExtensionCallbackStubTest_0005
120 * @tc.desc: Verify the capability function.
121 * @tc.type: FUNC
122 * @tc.require:
123 */
124 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0005, TestSize.Level1)
125 {
126 MessageParcel data;
127 MessageParcel reply;
128 MessageOption option(MessageOption::TF_SYNC);
129 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTJOB);
130
131 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
132 PrintExtensionCallbackStub callback;
133 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_SERVER_FAILURE);
134 }
135
136 /**
137 * @tc.name: PrintExtensionCallbackStubTest_0006
138 * @tc.desc: Verify the capability function.
139 * @tc.type: FUNC
140 * @tc.require:
141 */
142 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0006, TestSize.Level1)
143 {
144 MessageParcel data;
145 MessageParcel reply;
146 MessageOption option(MessageOption::TF_SYNC);
147 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTJOB);
148
149 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
150 PrintExtensionCallbackStub callback;
__anonaee1148c0202(const PrintJob&) 151 PrintJobCallback printJobCb = [](const PrintJob&) -> bool {
152 return true;
153 };
154 callback.SetPrintJobCallback(printJobCb);
155 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_NONE);
156 }
157
158 /**
159 * @tc.name: PrintExtensionCallbackStubTest_0007
160 * @tc.desc: Verify the capability function.
161 * @tc.type: FUNC
162 * @tc.require:
163 */
164 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0007, TestSize.Level1)
165 {
166 MessageParcel data;
167 MessageParcel reply;
168 MessageOption option(MessageOption::TF_SYNC);
169 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTER);
170
171 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
172 PrintExtensionCallbackStub callback;
173 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_SERVER_FAILURE);
174 }
175
176 /**
177 * @tc.name: PrintExtensionCallbackStubTest_0008
178 * @tc.desc: Verify the capability function.
179 * @tc.type: FUNC
180 * @tc.require:
181 */
182 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0008, TestSize.Level1)
183 {
184 MessageParcel data;
185 MessageParcel reply;
186 MessageOption option(MessageOption::TF_SYNC);
187 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTER);
188
189 std::string testPrinterId = "printerId:1234";
190
191 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
192 EXPECT_TRUE(data.WriteString(testPrinterId));
193 PrintExtensionCallbackStub callback;
__anonaee1148c0302(const std::string&) 194 PrinterCallback printerCb = [](const std::string&) -> bool {
195 return true;
196 };
197 callback.SetPrinterCallback(printerCb);
198 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_NONE);
199 }
200
201 /**
202 * @tc.name: PrintExtensionCallbackStubTest_0009
203 * @tc.desc: Verify the capability function.
204 * @tc.type: FUNC
205 * @tc.require:
206 */
207 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0009, TestSize.Level1)
208 {
209 MessageParcel data;
210 MessageParcel reply;
211 MessageOption option(MessageOption::TF_SYNC);
212 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTCAPABILITY);
213
214 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
215 PrintExtensionCallbackStub callback;
216 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_SERVER_FAILURE);
217 }
218
219 /**
220 * @tc.name: PrintExtensionCallbackStubTest_0010
221 * @tc.desc: Verify the capability function.
222 * @tc.type: FUNC
223 * @tc.require:
224 */
225 HWTEST_F(PrintExtensionCallbackStubTest, PrintExtensionCallbackStubTest_0010, TestSize.Level1)
226 {
227 MessageParcel data;
228 MessageParcel reply;
229 MessageOption option(MessageOption::TF_SYNC);
230 uint32_t code = static_cast<uint32_t>(PRINT_EXTCB_PRINTCAPABILITY);
231 std::string testPrinterId = "printerId:1234";
232 PrinterCapability testCap;
233 testCap.SetColorMode(10);
234
235 EXPECT_TRUE(data.WriteInterfaceToken(IPrintExtensionCallback::GetDescriptor()));
236 EXPECT_TRUE(data.WriteString(testPrinterId));
237 EXPECT_TRUE(testCap.Marshalling(data));
238
239 PrintExtensionCallbackStub callback;
__anonaee1148c0402(const std::string &, PrinterCapability &) 240 PrinterCapabilityCallback testCb = [](const std::string &, PrinterCapability &) -> bool {
241 return true;
242 };
243 callback.SetCapabilityCallback(testCb);
244 EXPECT_EQ(callback.OnRemoteRequest(code, data, reply, option), E_PRINT_NONE);
245 auto result = PrinterCapability::Unmarshalling(reply);
246 EXPECT_NE(result, nullptr);
247 }
248 } // namespace Print
249 } // namespace OHOS
250