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 <gtest/gtest.h> 17 18 #include "edm_utils.h" 19 #include "bundle_constants.h" 20 #include "message_parcel_utils.h" 21 #ifdef WIFI_EDM_ENABLE 22 #include "wifi_msg.h" 23 #endif 24 using namespace testing::ext; 25 using namespace OHOS::EDM; 26 27 namespace OHOS { 28 namespace EDM { 29 namespace TEST { 30 31 class MessageParcelUtilsTest : public testing::Test {}; 32 #ifdef WIFI_EDM_ENABLE 33 /** 34 * @tc.name: TestReadWifiDeviceConfig 35 * @tc.desc: Test MessageParcelUtils::ReadWifiDeviceConfig 36 * @tc.type: FUNC 37 */ 38 HWTEST_F(MessageParcelUtilsTest, TestReadWifiDeviceConfig, TestSize.Level1) 39 { 40 MessageParcel data; 41 Wifi::WifiDeviceConfig config; 42 WifiPassword pwd; 43 config.networkId = -1; 44 config.bssid = ""; 45 config.ssid = ""; 46 config.band = 0; 47 config.channel = 0; 48 config.frequency = 0; 49 config.level = 0; 50 config.isPasspoint = true; 51 config.isEphemeral = true; 52 config.keyMgmt = ""; 53 config.wepTxKeyIndex = 0; 54 config.priority = 0; 55 config.hiddenSSID = true; 56 config.wifiIpConfig.assignMethod = Wifi::AssignIpMethod::DHCP; 57 config.wifiIpConfig.staticIpAddress.ipAddress.address.family = -1; 58 config.wifiIpConfig.staticIpAddress.ipAddress.address.addressIpv4 = 0; 59 config.wifiIpConfig.staticIpAddress.ipAddress.prefixLength = 0; 60 config.wifiIpConfig.staticIpAddress.ipAddress.flags = 0; 61 config.wifiIpConfig.staticIpAddress.ipAddress.scope = 0; 62 config.wifiIpConfig.staticIpAddress.gateway.family = -1; 63 config.wifiIpConfig.staticIpAddress.gateway.addressIpv4 = 0; 64 config.wifiIpConfig.staticIpAddress.dnsServer1.family = -1; 65 config.wifiIpConfig.staticIpAddress.dnsServer1.addressIpv4 = 0; 66 config.wifiIpConfig.staticIpAddress.dnsServer2.family = -1; 67 config.wifiIpConfig.staticIpAddress.dnsServer2.addressIpv4 = 0; 68 config.wifiIpConfig.staticIpAddress.domains = ""; 69 config.wifiEapConfig.eap = ""; 70 config.wifiEapConfig.identity = ""; 71 config.wifiEapConfig.clientCert = ""; 72 config.wifiEapConfig.privateKey = ""; 73 std::vector<uint8_t> lists{1, 3, 56}; 74 config.wifiEapConfig.certEntry = lists; 75 config.wifiEapConfig.phase2Method = Wifi::Phase2Method::NONE; 76 config.wifiProxyconfig.configureMethod = Wifi::ConfigureProxyMethod::CLOSED; 77 config.wifiProxyconfig.autoProxyConfig.pacWebAddress = ""; 78 config.wifiProxyconfig.manualProxyConfig.serverPort = 1; 79 config.wifiProxyconfig.manualProxyConfig.exclusionObjectList = ""; 80 config.wifiPrivacySetting = Wifi::WifiPrivacyConfig::RANDOMMAC; 81 MessageParcelUtils::WriteWifiDeviceConfig(config, data, pwd); 82 83 Wifi::WifiDeviceConfig config2; 84 MessageParcelUtils::ReadWifiDeviceConfig(data, config2); 85 ASSERT_TRUE(config2.networkId == -1); 86 ASSERT_TRUE(config2.bssid == ""); 87 ASSERT_TRUE(config2.ssid == ""); 88 ASSERT_TRUE(config2.band == 0); 89 ASSERT_TRUE(config2.channel == 0); 90 ASSERT_TRUE(config2.frequency == 0); 91 ASSERT_TRUE(config2.level == 0); 92 ASSERT_TRUE(config2.isPasspoint == true); 93 ASSERT_TRUE(config2.isEphemeral == true); 94 ASSERT_TRUE(config2.keyMgmt == ""); 95 ASSERT_TRUE(config2.wepTxKeyIndex == 0); 96 ASSERT_TRUE(config2.priority == 0); 97 ASSERT_TRUE(config2.hiddenSSID == true); 98 ASSERT_TRUE(config2.wifiIpConfig.assignMethod == Wifi::AssignIpMethod::DHCP); 99 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.address.family == -1); 100 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.address.addressIpv4 == 0); 101 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.prefixLength == 0); 102 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.flags == 0); 103 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.ipAddress.scope == 0); 104 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.gateway.family == -1); 105 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.gateway.addressIpv4 == 0); 106 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer1.family == -1); 107 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer1.addressIpv4 == 0); 108 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer2.family == -1); 109 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.dnsServer2.addressIpv4 == 0); 110 ASSERT_TRUE(config2.wifiIpConfig.staticIpAddress.domains == ""); 111 ASSERT_TRUE(config2.wifiEapConfig.eap == ""); 112 ASSERT_TRUE(config2.wifiEapConfig.identity == ""); 113 ASSERT_TRUE(config2.wifiEapConfig.clientCert == ""); 114 ASSERT_TRUE(config2.wifiEapConfig.privateKey == ""); 115 ASSERT_TRUE(config2.wifiEapConfig.certEntry == lists); 116 ASSERT_TRUE(config2.wifiEapConfig.phase2Method == Wifi::Phase2Method::NONE); 117 ASSERT_TRUE(config2.wifiProxyconfig.configureMethod == Wifi::ConfigureProxyMethod::CLOSED); 118 ASSERT_TRUE(config2.wifiProxyconfig.autoProxyConfig.pacWebAddress == ""); 119 ASSERT_TRUE(config2.wifiProxyconfig.manualProxyConfig.serverPort == 1); 120 ASSERT_TRUE(config2.wifiProxyconfig.manualProxyConfig.exclusionObjectList == ""); 121 ASSERT_TRUE(config2.wifiPrivacySetting == Wifi::WifiPrivacyConfig::RANDOMMAC); 122 } 123 124 /** 125 * @tc.name: TestProcessAssignIpMethod 126 * @tc.desc: Test MessageParcelUtils::ProcessAssignIpMethod 127 * @tc.type: FUNC 128 */ 129 HWTEST_F(MessageParcelUtilsTest, TestProcessAssignIpMethod, TestSize.Level1) 130 { 131 Wifi::WifiIpConfig ipConfig; 132 MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::DHCP), ipConfig); 133 ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::DHCP); 134 MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::STATIC), ipConfig); 135 ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::STATIC); 136 MessageParcelUtils::ProcessAssignIpMethod(static_cast<int32_t>(Wifi::AssignIpMethod::UNASSIGNED), ipConfig); 137 ASSERT_TRUE(ipConfig.assignMethod == Wifi::AssignIpMethod::UNASSIGNED); 138 } 139 140 /** 141 * @tc.name: TestProcessPhase2Method 142 * @tc.desc: Test MessageParcelUtils::ProcessPhase2Method 143 * @tc.type: FUNC 144 */ 145 HWTEST_F(MessageParcelUtilsTest, TestProcessPhase2Method, TestSize.Level1) 146 { 147 Wifi::WifiEapConfig eapConfig; 148 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::PAP), eapConfig); 149 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::PAP); 150 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::MSCHAP), eapConfig); 151 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::MSCHAP); 152 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::MSCHAPV2), eapConfig); 153 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::MSCHAPV2); 154 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::GTC), eapConfig); 155 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::GTC); 156 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::SIM), eapConfig); 157 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::SIM); 158 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::AKA), eapConfig); 159 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::AKA); 160 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::AKA_PRIME), eapConfig); 161 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::AKA_PRIME); 162 MessageParcelUtils::ProcessPhase2Method(static_cast<int32_t>(Wifi::Phase2Method::NONE), eapConfig); 163 ASSERT_TRUE(eapConfig.phase2Method == Wifi::Phase2Method::NONE); 164 } 165 166 /** 167 * @tc.name: TestProcessConfigureProxyMethod 168 * @tc.desc: Test MessageParcelUtils::ProcessConfigureProxyMethod 169 * @tc.type: FUNC 170 */ 171 HWTEST_F(MessageParcelUtilsTest, TestProcessConfigureProxyMethod, TestSize.Level1) 172 { 173 Wifi::WifiProxyConfig proxyConfig; 174 MessageParcelUtils::ProcessConfigureProxyMethod( 175 static_cast<int32_t>(Wifi::ConfigureProxyMethod::AUTOCONFIGUE), proxyConfig); 176 ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::AUTOCONFIGUE); 177 MessageParcelUtils::ProcessConfigureProxyMethod( 178 static_cast<int32_t>(Wifi::ConfigureProxyMethod::MANUALCONFIGUE), proxyConfig); 179 ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::MANUALCONFIGUE); 180 MessageParcelUtils::ProcessConfigureProxyMethod(static_cast<int32_t>(Wifi::ConfigureProxyMethod::CLOSED), 181 proxyConfig); 182 ASSERT_TRUE(proxyConfig.configureMethod == Wifi::ConfigureProxyMethod::CLOSED); 183 } 184 185 /** 186 * @tc.name: TestProcessPrivacyConfig 187 * @tc.desc: Test MessageParcelUtils::ProcessPrivacyConfig 188 * @tc.type: FUNC 189 */ 190 HWTEST_F(MessageParcelUtilsTest, TestProcessPrivacyConfig, TestSize.Level1) 191 { 192 Wifi::WifiDeviceConfig config; 193 MessageParcelUtils::ProcessPrivacyConfig(static_cast<int32_t>(Wifi::WifiPrivacyConfig::RANDOMMAC), config); 194 ASSERT_TRUE(config.wifiPrivacySetting == Wifi::WifiPrivacyConfig::RANDOMMAC); 195 MessageParcelUtils::ProcessPrivacyConfig(static_cast<int32_t>(Wifi::WifiPrivacyConfig::DEVICEMAC), config); 196 ASSERT_TRUE(config.wifiPrivacySetting == Wifi::WifiPrivacyConfig::DEVICEMAC); 197 } 198 199 /** 200 * @tc.name: TestReadIpAddress 201 * @tc.desc: Test MessageParcelUtils::ReadIpAddress 202 * @tc.type: FUNC 203 */ 204 HWTEST_F(MessageParcelUtilsTest, TestReadIpAddress, TestSize.Level1) 205 { 206 MessageParcel data; 207 Wifi::WifiIpAddress address; 208 address.family = -1; 209 address.addressIpv4 = 0; 210 MessageParcelUtils::WriteIpAddress(data, address); 211 212 Wifi::WifiIpAddress address2; 213 MessageParcelUtils::ReadIpAddress(data, address2); 214 ASSERT_TRUE(address2.family == -1); 215 ASSERT_TRUE(address2.addressIpv4 == 0); 216 } 217 218 /** 219 * @tc.name: TestWriteInstallParam 220 * @tc.desc: Test MessageParcelUtils::WriteInstallParam 221 * @tc.type: FUNC 222 */ 223 HWTEST_F(MessageParcelUtilsTest, TestWriteInstallParam, TestSize.Level1) 224 { 225 MessageParcel data; 226 AppExecFwk::InstallParam installParam; 227 installParam.userId = AppExecFwk::Constants::UNSPECIFIED_USERID; 228 installParam.installFlag = AppExecFwk::InstallFlag::NORMAL; 229 MessageParcelUtils::WriteInstallParam(installParam, data); 230 AppExecFwk::InstallParam installParam2; 231 installParam2.userId = data.ReadInt32(); 232 installParam2.installFlag = (static_cast<AppExecFwk::InstallFlag>(data.ReadInt32())); 233 ASSERT_TRUE(installParam2.userId == AppExecFwk::Constants::UNSPECIFIED_USERID); 234 ASSERT_TRUE(installParam2.installFlag == AppExecFwk::InstallFlag::NORMAL); 235 } 236 #endif 237 238 /** 239 * @tc.name: TestReadOperateDeviceParam 240 * @tc.desc: Test MessageParcelUtils::ReadOperateDeviceParam 241 * @tc.type: FUNC 242 */ 243 HWTEST_F(MessageParcelUtilsTest, TestReadOperateDeviceParam, TestSize.Level1) 244 { 245 MessageParcel data; 246 OperateDeviceParam param; 247 param.operate = ""; 248 param.addition = ""; 249 param.userId = -1; 250 MessageParcelUtils::WriteOperateDeviceParam(param, data); 251 OperateDeviceParam param2; 252 MessageParcelUtils::ReadOperateDeviceParam(data, param2); 253 ASSERT_TRUE(param2.operate == ""); 254 ASSERT_TRUE(param2.addition == ""); 255 ASSERT_TRUE(param2.userId == -1); 256 } 257 258 /** 259 * @tc.name: TestReadClearUpApplicationDataParam 260 * @tc.desc: Test MessageParcelUtils::ReadClearUpApplicationDataParam 261 * @tc.type: FUNC 262 */ 263 HWTEST_F(MessageParcelUtilsTest, TestReadClearUpApplicationDataParam, TestSize.Level1) 264 { 265 MessageParcel data; 266 ClearUpApplicationDataParam param; 267 param.bundleName = "com.test.bundleName"; 268 param.appIndex = 1; 269 param.userId = -1; 270 MessageParcelUtils::WriteClearUpApplicationDataParam(param, data); 271 ClearUpApplicationDataParam param2; 272 MessageParcelUtils::ReadClearUpApplicationDataParam(data, param2); 273 ASSERT_TRUE(param2.bundleName == "com.test.bundleName"); 274 ASSERT_TRUE(param2.appIndex == 1); 275 ASSERT_TRUE(param2.userId == -1); 276 } 277 } // namespace TEST 278 } // namespace EDM 279 } // namespace OHOS