OSDN Git Service

Merge "Support abortScan" into oc-dev am: b1e5477375
[android-x86/system-connectivity-wificond.git] / tests / offload_scan_utils_test.cpp
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 #include "wificond/tests/offload_test_utils.h"
21 #include <android-base/logging.h>
22 #include "wificond/scanning/scan_result.h"
23 #include "wificond/scanning/offload/offload_scan_utils.h"
24
25 using android::hardware::wifi::offload::V1_0::ScanResult;
26 using android::hardware::wifi::offload::V1_0::ScanParam;
27 using android::hardware::wifi::offload::V1_0::ScanFilter;
28 using android::hardware::wifi::offload::V1_0::NetworkInfo;
29 using ::com::android::server::wifi::wificond::NativeScanResult;
30 using std::vector;
31
32 namespace android {
33 namespace wificond {
34
35 class OffloadScanUtilsTest : public ::testing::Test {
36  protected:
37   virtual void SetUp() {
38     dummy_scan_results_ = OffloadTestUtils::createOffloadScanResults();
39   }
40
41   void TearDown() override {
42     dummy_scan_results_.clear();
43   }
44
45   vector<ScanResult> dummy_scan_results_;
46 };
47
48 TEST_F(OffloadScanUtilsTest, verifyConversion) {
49   vector<NativeScanResult> native_scan_results =
50       OffloadScanUtils::convertToNativeScanResults(dummy_scan_results_);
51   EXPECT_EQ(native_scan_results.size(), dummy_scan_results_.size());
52   for (size_t i = 0; i < native_scan_results.size(); i++) {
53     EXPECT_EQ(native_scan_results[i].frequency, dummy_scan_results_[i].frequency);
54     EXPECT_EQ(native_scan_results[i].tsf, dummy_scan_results_[i].tsf);
55     EXPECT_EQ(native_scan_results[i].signal_mbm, dummy_scan_results_[i].rssi);
56     EXPECT_EQ(native_scan_results[i].ssid.size(),
57         dummy_scan_results_[i].networkInfo.ssid.size());
58     EXPECT_EQ(native_scan_results[i].bssid.size(),
59         dummy_scan_results_[i].bssid.elementCount());
60     EXPECT_EQ(native_scan_results[i].capability, dummy_scan_results_[i].capability);
61   }
62 }
63
64 TEST_F(OffloadScanUtilsTest, verifyScanParam) {
65   vector<vector<uint8_t>> scan_ssids { kSsid1, kSsid2};
66   vector<uint32_t> frequencies { kFrequency1, kFrequency2 };
67   ScanParam scanParam = OffloadScanUtils::createScanParam(scan_ssids, frequencies,
68       kDisconnectedModeScanIntervalMs);
69   EXPECT_EQ(scanParam.disconnectedModeScanIntervalMs,
70           kDisconnectedModeScanIntervalMs);
71   for (size_t i = 0; i < frequencies.size(); i++) {
72     EXPECT_EQ(scanParam.frequencyList[i], frequencies[i]);
73   }
74   for (size_t j = 0; j < scan_ssids.size(); j++) {
75     vector<uint8_t> ssid_result = scanParam.ssidList[j];
76     vector<uint8_t> ssid_input = scan_ssids[j];
77     for (size_t k = 0; k < ssid_result.size(); k++) {
78       EXPECT_EQ(ssid_result[k], ssid_input[k]);
79     }
80   }
81 }
82
83 TEST_F(OffloadScanUtilsTest, verifyScanFilter) {
84   vector<vector<uint8_t>> match_ssids { kSsid1, kSsid2 };
85   vector<uint8_t> security_flags { kNetworkFlags, kNetworkFlags };
86   ScanFilter scanFilter = OffloadScanUtils::createScanFilter(match_ssids,
87       security_flags, kRssiThreshold);
88   EXPECT_EQ(kRssiThreshold, scanFilter.rssiThreshold);
89   EXPECT_FALSE(scanFilter.preferredNetworkInfoList.size() == 0);
90   for (size_t i = 0; i < security_flags.size(); ++i) {
91     NetworkInfo nwInfo = scanFilter.preferredNetworkInfoList[i];
92     vector<uint8_t> ssid = nwInfo.ssid;
93     vector<uint8_t> match_ssid = match_ssids[i];
94     EXPECT_EQ(nwInfo.flags, security_flags[i]);
95     for (size_t j = 0; j < ssid.size(); j++) {
96       EXPECT_EQ(ssid[j], match_ssid[j]);
97     }
98   }
99 }
100
101 } // namespace wificond
102 } // namespace android