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 }