1 /* 2 * Copyright (C) 2016, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include <vector> 18 19 #include <gtest/gtest.h> 20 21 #include "wificond/scanning/channel_settings.h" 22 #include "wificond/scanning/hidden_network.h" 23 #include "wificond/scanning/pno_network.h" 24 #include "wificond/scanning/pno_settings.h" 25 #include "wificond/scanning/single_scan_settings.h" 26 27 using ::com::android::server::wifi::wificond::ChannelSettings; 28 using ::com::android::server::wifi::wificond::HiddenNetwork; 29 using ::com::android::server::wifi::wificond::PnoNetwork; 30 using ::com::android::server::wifi::wificond::PnoSettings; 31 using ::com::android::server::wifi::wificond::SingleScanSettings; 32 using std::vector; 33 34 namespace android { 35 namespace wificond { 36 37 namespace { 38 39 const uint8_t kFakeSsid[] = 40 {'G', 'o', 'o', 'g', 'l', 'e', 'G', 'u', 'e', 's', 't'}; 41 const uint8_t kFakeSsid1[] = 42 {'A', 'n', 'd', 'r', 'o', 'i', 'd', 'A', 'P', 'T', 'e', 's', 't'}; 43 44 constexpr int32_t kFakePnoIntervalMs = 20000; 45 constexpr int32_t kFakePnoMin2gRssi = -80; 46 constexpr int32_t kFakePnoMin5gRssi = -85; 47 48 constexpr uint32_t kFakeFrequency = 5260; 49 constexpr uint32_t kFakeFrequency1 = 2460; 50 constexpr uint32_t kFakeFrequency2 = 2500; 51 52 } // namespace 53 54 class ScanSettingsTest : public ::testing::Test { 55 }; 56 57 TEST_F(ScanSettingsTest, ChannelSettingsParcelableTest) { 58 ChannelSettings channel_settings; 59 channel_settings.frequency_ = kFakeFrequency; 60 61 Parcel parcel; 62 EXPECT_EQ(::android::OK, channel_settings.writeToParcel(&parcel)); 63 64 ChannelSettings channel_settings_copy; 65 parcel.setDataPosition(0); 66 EXPECT_EQ(::android::OK, channel_settings_copy.readFromParcel(&parcel)); 67 68 EXPECT_EQ(channel_settings, channel_settings_copy); 69 } 70 71 TEST_F(ScanSettingsTest, HiddenNetworkParcelableTest) { 72 HiddenNetwork hidden_network; 73 hidden_network.ssid_ = 74 vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid)); 75 76 Parcel parcel; 77 EXPECT_EQ(::android::OK, hidden_network.writeToParcel(&parcel)); 78 79 HiddenNetwork hidden_network_copy; 80 parcel.setDataPosition(0); 81 EXPECT_EQ(::android::OK, hidden_network_copy.readFromParcel(&parcel)); 82 83 EXPECT_EQ(hidden_network, hidden_network_copy); 84 } 85 86 TEST_F(ScanSettingsTest, SingleScanSettingsParcelableTest) { 87 SingleScanSettings scan_settings; 88 89 ChannelSettings channel, channel1, channel2; 90 channel.frequency_ = kFakeFrequency; 91 channel1.frequency_ = kFakeFrequency1; 92 channel2.frequency_ = kFakeFrequency2; 93 94 HiddenNetwork network; 95 network.ssid_ = 96 vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid)); 97 98 scan_settings.channel_settings_ = {channel, channel1, channel2}; 99 scan_settings.hidden_networks_ = {network}; 100 101 Parcel parcel; 102 EXPECT_EQ(::android::OK, scan_settings.writeToParcel(&parcel)); 103 104 SingleScanSettings scan_settings_copy; 105 parcel.setDataPosition(0); 106 EXPECT_EQ(::android::OK, scan_settings_copy.readFromParcel(&parcel)); 107 108 EXPECT_EQ(scan_settings, scan_settings_copy); 109 } 110 111 TEST_F(ScanSettingsTest, PnoNetworkParcelableTest) { 112 PnoNetwork pno_network; 113 pno_network.ssid_ = 114 vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid)); 115 pno_network.is_hidden_ = true; 116 117 Parcel parcel; 118 EXPECT_EQ(::android::OK, pno_network.writeToParcel(&parcel)); 119 120 PnoNetwork pno_network_copy; 121 parcel.setDataPosition(0); 122 EXPECT_EQ(::android::OK, pno_network_copy.readFromParcel(&parcel)); 123 124 EXPECT_EQ(pno_network, pno_network_copy); 125 } 126 127 TEST_F(ScanSettingsTest, PnoSettingsParcelableTest) { 128 PnoSettings pno_settings; 129 130 PnoNetwork network, network1; 131 network.ssid_ = 132 vector<uint8_t>(kFakeSsid, kFakeSsid + sizeof(kFakeSsid)); 133 network.is_hidden_ = true; 134 network1.ssid_ = 135 vector<uint8_t>(kFakeSsid1, kFakeSsid1 + sizeof(kFakeSsid1)); 136 network1.is_hidden_ = false; 137 138 pno_settings.interval_ms_ = kFakePnoIntervalMs; 139 pno_settings.min_2g_rssi_ = kFakePnoMin2gRssi; 140 pno_settings.min_5g_rssi_ = kFakePnoMin5gRssi; 141 142 pno_settings.pno_networks_ = {network, network1}; 143 144 Parcel parcel; 145 EXPECT_EQ(::android::OK, pno_settings.writeToParcel(&parcel)); 146 147 PnoSettings pno_settings_copy; 148 parcel.setDataPosition(0); 149 EXPECT_EQ(::android::OK, pno_settings_copy.readFromParcel(&parcel)); 150 151 EXPECT_EQ(pno_settings, pno_settings_copy); 152 } 153 154 155 156 } // namespace wificond 157 } // namespace android 158