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