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 "install_plugin_test.h"
17
18 #include "parameters.h"
19
20 #include "uninstall_plugin.h"
21 #include "utils.h"
22
23 using namespace testing::ext;
24
25 namespace OHOS {
26 namespace EDM {
27 namespace TEST {
28 const std::string HAP_FILE_PATH = "/data/test/resource/enterprise_device_management/hap/right.hap";
29 const std::string INVALID_HAP_FILE_PATH = "/data/test/resource/enterprise_device_management/hap/../right.hap";
30 const std::string BOOT_OEM_MODE = "const.boot.oemmode";
31 const std::string DEVELOP_PARAM = "rd";
32 const std::string USER_MODE = "user";
SetUpTestSuite(void)33 void InstallPluginTest::SetUpTestSuite(void)
34 {
35 Utils::SetEdmInitialEnv();
36 }
37
TearDownTestSuite(void)38 void InstallPluginTest::TearDownTestSuite(void)
39 {
40 Utils::ResetTokenTypeAndUid();
41 ASSERT_TRUE(Utils::IsOriginalUTEnv());
42 std::cout << "now ut process is orignal ut env : " << Utils::IsOriginalUTEnv() << std::endl;
43 }
44
45 /**
46 * @tc.name: TestOnSetPolicySuc
47 * @tc.desc: Test InstallPlugin::OnSetPolicy when data is empty.
48 * @tc.type: FUNC
49 */
50 HWTEST_F(InstallPluginTest, TestOnSetPolicySuc, TestSize.Level1)
51 {
52 std::string developDeviceParam = system::GetParameter(BOOT_OEM_MODE, USER_MODE);
53 if (developDeviceParam == DEVELOP_PARAM) {
54 InstallPlugin plugin;
55 InstallParam param = {{HAP_FILE_PATH}, DEFAULT_USER_ID, 0};
56 MessageParcel reply;
57 ErrCode ret = plugin.OnSetPolicy(param, reply);
58 ASSERT_TRUE(ret == ERR_OK);
59 UninstallPlugin uninstallPlugin;
60 UninstallParam uninstallParam = {"com.example.l3jsdemo", DEFAULT_USER_ID, false};
61 MessageParcel uninstallReply;
62 ret = uninstallPlugin.OnSetPolicy(uninstallParam, uninstallReply);
63 ASSERT_TRUE(ret == ERR_OK);
64 }
65 }
66
67 /**
68 * @tc.name: TestOnSetPolicyFailWithInvalidFilePath
69 * @tc.desc: Test InstallPlugin::OnSetPolicy when data is empty.
70 * @tc.type: FUNC
71 */
72 HWTEST_F(InstallPluginTest, TestOnSetPolicyFailWithInvalidFilePath, TestSize.Level1)
73 {
74 InstallPlugin plugin;
75 InstallParam param = {{INVALID_HAP_FILE_PATH}, DEFAULT_USER_ID, 0};
76 MessageParcel reply;
77 ErrCode ret = plugin.OnSetPolicy(param, reply);
78 ASSERT_TRUE(ret == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
79 }
80
81 /**
82 * @tc.name: TestOnGetPolicyFailWithLongName
83 * @tc.desc: Test InstallPlugin::OnGetPolicy when data is long.
84 * @tc.type: FUNC
85 */
86 HWTEST_F(InstallPluginTest, TestOnGetPolicyFailWithLongName, TestSize.Level1)
87 {
88 InstallPlugin plugin;
89 std::string policyData;
90 MessageParcel reply;
91 MessageParcel data;
92 int32_t userId = DEFAULT_USER_ID;
93 std::string strFileName(5000, 'a');
94 data.WriteString(strFileName);
95 ErrCode ret = plugin.OnGetPolicy(policyData, data, reply, userId);
96 ASSERT_TRUE(ret == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
97 ASSERT_TRUE(reply.ReadInt32() == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
98 ASSERT_TRUE(reply.ReadString() == "invalid hapFilePath");
99 }
100
101 /**
102 * @tc.name: TestOnGetPolicyFailWithInvalidFile01
103 * @tc.desc: Test InstallPlugin::OnGetPolicy when data is invalid.
104 * @tc.type: FUNC
105 */
106 HWTEST_F(InstallPluginTest, TestOnGetPolicyFailWithInvalidFile01, TestSize.Level1)
107 {
108 InstallPlugin plugin;
109 std::string policyData;
110 MessageParcel reply;
111 MessageParcel data;
112 int32_t userId = DEFAULT_USER_ID;
113 std::string strFileName = "../aaa.hap";
114 data.WriteString(strFileName);
115 ErrCode ret = plugin.OnGetPolicy(policyData, data, reply, userId);
116 ASSERT_TRUE(ret == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
117 }
118
119 /**
120 * @tc.name: TestOnGetPolicyFailWithInvalidFile02
121 * @tc.desc: Test InstallPlugin::OnGetPolicy when data is invalid.
122 * @tc.type: FUNC
123 */
124 HWTEST_F(InstallPluginTest, TestOnGetPolicyFailWithInvalidFile02, TestSize.Level1)
125 {
126 InstallPlugin plugin;
127 std::string policyData;
128 MessageParcel reply;
129 MessageParcel data;
130 int32_t userId = DEFAULT_USER_ID;
131 std::string strFileName = "./aaa.hap";
132 data.WriteString(strFileName);
133 ErrCode ret = plugin.OnGetPolicy(policyData, data, reply, userId);
134 ASSERT_TRUE(ret == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
135 }
136
137 /**
138 * @tc.name: TestOnGetPolicyFailWithInvalidFile03
139 * @tc.desc: Test InstallPlugin::OnGetPolicy when data is invalid.
140 * @tc.type: FUNC
141 */
142 HWTEST_F(InstallPluginTest, TestOnGetPolicyFailWithInvalidFile03, TestSize.Level1)
143 {
144 InstallPlugin plugin;
145 std::string policyData;
146 MessageParcel reply;
147 MessageParcel data;
148 int32_t userId = DEFAULT_USER_ID;
149 std::string strFileName = "/aaa.hap";
150 data.WriteString(strFileName);
151 ErrCode ret = plugin.OnGetPolicy(policyData, data, reply, userId);
152 ASSERT_TRUE(ret == EdmReturnErrCode::APPLICATION_INSTALL_FAILED);
153 }
154
155 /**
156 * @tc.name: TestOnGetPolicyFailWithInvalidFile04
157 * @tc.desc: Test InstallPlugin::OnGetPolicy when data is invalid.
158 * @tc.type: FUNC
159 */
160 HWTEST_F(InstallPluginTest, TestOnGetPolicyFailWithInvalidFile04, TestSize.Level1)
161 {
162 InstallPlugin plugin;
163 std::string policyData;
164 MessageParcel reply;
165 MessageParcel data;
166 int32_t userId = DEFAULT_USER_ID;
167 std::string strFileName = "aaa.hap";
168 data.WriteString(strFileName);
169 ErrCode ret = plugin.OnGetPolicy(policyData, data, reply, userId);
170 ASSERT_TRUE(ret == ERR_OK);
171 }
172 } // namespace TEST
173 } // namespace EDM
174 } // namespace OHOS
175