1 /*
2 * Copyright (c) 2023 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 "dlp_permission_async_stub_test.h"
17 #include "dlp_permission_callback.h"
18 #include "dlp_permission_kit.h"
19 #include <cerrno>
20 #include <gtest/gtest.h>
21 #include <securec.h>
22 #include "dlp_permission.h"
23 #include "dlp_permission_log.h"
24
25 using namespace testing::ext;
26 using namespace OHOS;
27 using namespace OHOS::Security::DlpPermission;
28 using namespace std;
29
30 namespace {
31 static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {
32 LOG_CORE, SECURITY_DOMAIN_DLP_PERMISSION, "DlpPermissionAsyncStubTest"};
33 }
34
SetUpTestCase()35 void DlpPermissionAsyncStubTest::SetUpTestCase() {}
36
TearDownTestCase()37 void DlpPermissionAsyncStubTest::TearDownTestCase() {}
38
SetUp()39 void DlpPermissionAsyncStubTest::SetUp() {}
40
TearDown()41 void DlpPermissionAsyncStubTest::TearDown() {}
42
43 /**
44 * @tc.name: OnGenerateDlpCertificate001
45 * @tc.desc: OnGenerateDlpCertificate test
46 * @tc.type: FUNC
47 * @tc.require:
48 */
49 HWTEST_F(DlpPermissionAsyncStubTest, OnGenerateDlpCertificate001, TestSize.Level1)
50 {
51 DLP_LOG_INFO(LABEL, "OnGenerateDlpCertificate001");
52
53 std::shared_ptr<GenerateDlpCertificateCallback> callback1 = nullptr;
54 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
55
56 int32_t result = 0;
57 std::vector<uint8_t> cert;
58
59 callback->OnGenerateDlpCertificate(result, cert);
60 ASSERT_EQ(nullptr, callback->generateDlpCertificateCallback_);
61 }
62
63 /**
64 * @tc.name: OnGenerateDlpCertificate002
65 * @tc.desc: OnGenerateDlpCertificate test
66 * @tc.type: FUNC
67 * @tc.require:
68 */
69 HWTEST_F(DlpPermissionAsyncStubTest, OnGenerateDlpCertificate002, TestSize.Level1)
70 {
71 DLP_LOG_INFO(LABEL, "OnGenerateDlpCertificate002");
72
73 std::shared_ptr<GenerateDlpCertificateCallback> callback1 =
74 std::make_shared<ClientGenerateDlpCertificateCallback>();
75 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
76
77 int32_t result = 0;
78 std::vector<uint8_t> cert;
79
80 callback->OnGenerateDlpCertificate(result, cert);
81 ASSERT_NE(nullptr, callback->generateDlpCertificateCallback_);
82 }
83
84 /**
85 * @tc.name: OnParseDlpCertificate001
86 * @tc.desc: OnParseDlpCertificate test
87 * @tc.type: FUNC
88 * @tc.require:
89 */
90 HWTEST_F(DlpPermissionAsyncStubTest, OnParseDlpCertificate001, TestSize.Level1)
91 {
92 DLP_LOG_INFO(LABEL, "OnParseDlpCertificate001");
93
94 std::shared_ptr<ParseDlpCertificateCallback> callback1 = nullptr;
95 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
96
97 int32_t result = 0;
98 PermissionPolicy policy;
99 std::vector<uint8_t> cert;
100
101 callback->OnParseDlpCertificate(result, policy, cert);
102 ASSERT_EQ(nullptr, callback->parseDlpCertificateCallback_);
103 }
104
105 /**
106 * @tc.name: OnParseDlpCertificate002
107 * @tc.desc: OnParseDlpCertificate test
108 * @tc.type: FUNC
109 * @tc.require:
110 */
111 HWTEST_F(DlpPermissionAsyncStubTest, OnParseDlpCertificate002, TestSize.Level1)
112 {
113 DLP_LOG_INFO(LABEL, "OnParseDlpCertificate002");
114
115 std::shared_ptr<ParseDlpCertificateCallback> callback1 =
116 std::make_shared<ClientParseDlpCertificateCallback>();
117 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
118
119 int32_t result = 0;
120 PermissionPolicy policy;
121 std::vector<uint8_t> cert;
122
123 callback->OnParseDlpCertificate(result, policy, cert);
124 ASSERT_NE(nullptr, callback->parseDlpCertificateCallback_);
125 }
126
127 /**
128 * @tc.name: OnParseDlpCertificateStub001
129 * @tc.desc: OnParseDlpCertificateStub test
130 * @tc.type: FUNC
131 * @tc.require:
132 */
133 HWTEST_F(DlpPermissionAsyncStubTest, OnParseDlpCertificateStub001, TestSize.Level1)
134 {
135 DLP_LOG_INFO(LABEL, "OnParseDlpCertificateStub001");
136
137 std::shared_ptr<ParseDlpCertificateCallback> callback1 = nullptr;
138 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
139
140 MessageParcel data;
141 MessageParcel reply;
142
143 int32_t ret = callback->OnParseDlpCertificateStub(data, reply);
144 ASSERT_EQ(DLP_SERVICE_ERROR_PARCEL_OPERATE_FAIL, ret);
145 }
146
147 /**
148 * @tc.name: OnRemoteRequest001
149 * @tc.desc: OnRemoteRequest test
150 * @tc.type: FUNC
151 * @tc.require:
152 */
153 HWTEST_F(DlpPermissionAsyncStubTest, OnRemoteRequest001, TestSize.Level1)
154 {
155 DLP_LOG_INFO(LABEL, "OnRemoteRequest001");
156
157 std::shared_ptr<ParseDlpCertificateCallback> callback1 = nullptr;
158 sptr<DlpPermissionAsyncStub> callback = new (std::nothrow) DlpPermissionAsyncStub(callback1);
159
160 uint32_t code = 0;
161 MessageParcel data;
162 MessageParcel reply;
163 MessageOption option;
164
165 int32_t ret = callback->OnRemoteRequest(code, data, reply, option);
166 ASSERT_EQ(DLP_SERVICE_ERROR_IPC_REQUEST_FAIL, ret);
167 }