1522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius/*
2522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * Copyright (C) 2016 The Android Open Source Project
3522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius *
4522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * Licensed under the Apache License, Version 2.0 (the "License");
5522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * you may not use this file except in compliance with the License.
6522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * You may obtain a copy of the License at
7522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius *
8522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius *      http://www.apache.org/licenses/LICENSE-2.0
9522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius *
10522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * Unless required by applicable law or agreed to in writing, software
11522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * distributed under the License is distributed on an "AS IS" BASIS,
12522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * See the License for the specific language governing permissions and
14522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * limitations under the License.
15522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius */
16522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius
17522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius#include <android-base/logging.h>
18522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius
196b8720110bf2d40ac1364c364a85c31b358889f1Yuexi Ma#include <VtsHalHidlTargetTestBase.h>
20522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius
21036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.h>
22036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
23036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius#include <android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.h>
24036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
25e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang#include "supplicant_hidl_call_util.h"
26522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius#include "supplicant_hidl_test_utils.h"
27522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius
28036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::sp;
29036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::hidl_array;
30036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::hidl_string;
31036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::hidl_vec;
32036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::Return;
33036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::Void;
34e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wangusing ::android::hardware::wifi::supplicant::V1_0::IfaceType;
35036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::wifi::supplicant::V1_0::ISupplicantStaIface;
36036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::wifi::supplicant::V1_0::ISupplicantStaNetwork;
37036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::wifi::supplicant::V1_0::
38036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    ISupplicantStaNetworkCallback;
39036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::wifi::supplicant::V1_0::SupplicantStatus;
40036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piususing ::android::hardware::wifi::supplicant::V1_0::SupplicantStatusCode;
41036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
42036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusnamespace {
43036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestSsidStr[] = "TestSsid1234";
44aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wangconstexpr char kTestPskPassphrase[] = "TestPsk123";
45036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestIdStr[] = "TestIdstr";
46036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestEapPasswdStr[] = "TestEapPasswd1234";
47036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestEapCert[] = "keystore://CERT";
48036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestEapPrivateKeyId[] = "key_id";
49036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestEapMatch[] = "match";
50036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr char kTestEapEngineID[] = "engine_id";
51036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestBssid[] = {0x56, 0x67, 0x67, 0xf4, 0x56, 0x92};
52036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestWepKey[] = {0x56, 0x67, 0x67, 0xf4, 0x56};
53036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestKc[] = {0x56, 0x67, 0x67, 0xf4, 0x76, 0x87, 0x98, 0x12};
54036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestSres[] = {0x56, 0x67, 0x67, 0xf4};
55036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestRes[] = {0x56, 0x67, 0x67, 0xf4, 0x67};
56036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestIk[] = {[0 ... 15] = 0x65};
57036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestCk[] = {[0 ... 15] = 0x45};
58036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint8_t kTestIdentity[] = {0x45, 0x67, 0x98, 0x67, 0x56};
59aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wangconstexpr uint8_t kTestPsk[] = {[0 ... 31] = 0x12};
60aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wangconstexpr uint8_t kTestAutParam[] = {[0 ... 13] = 0xe1};
61036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestWepTxKeyIdx = 2;
62aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wangconstexpr uint32_t kTestUpdateIdentifier = 21;
63036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestKeyMgmt = (ISupplicantStaNetwork::KeyMgmtMask::WPA_PSK |
64036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                   ISupplicantStaNetwork::KeyMgmtMask::WPA_EAP);
65036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestProto = (ISupplicantStaNetwork::ProtoMask::OSEN |
66036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                 ISupplicantStaNetwork::ProtoMask::RSN);
67036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestAuthAlg = (ISupplicantStaNetwork::AuthAlgMask::OPEN |
68036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                   ISupplicantStaNetwork::AuthAlgMask::SHARED);
69036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestGroupCipher =
70036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    (ISupplicantStaNetwork::GroupCipherMask::CCMP |
71036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius     ISupplicantStaNetwork::GroupCipherMask::WEP104);
72036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusconstexpr uint32_t kTestPairwiseCipher =
73036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    (ISupplicantStaNetwork::PairwiseCipherMask::CCMP |
74036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius     ISupplicantStaNetwork::PairwiseCipherMask::TKIP);
75036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}  // namespace
76036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
77036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusclass SupplicantStaNetworkHidlTest : public ::testing::VtsHalHidlTargetTestBase {
78036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius   public:
79036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    virtual void SetUp() override {
80036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        startSupplicantAndWaitForHidlService();
81036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_TRUE(turnOnExcessiveLogging());
82036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        sta_network_ = createSupplicantStaNetwork();
83036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        ASSERT_NE(sta_network_.get(), nullptr);
84036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
85036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        ssid_.assign(kTestSsidStr, kTestSsidStr + strlen(kTestSsidStr));
86036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    }
87036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
88036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    virtual void TearDown() override { stopSupplicant(); }
89036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
90036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius   protected:
91036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    void removeNetwork() {
92036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius      sp<ISupplicantStaIface> sta_iface = getSupplicantStaIface();
93036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius      ASSERT_NE(nullptr, sta_iface.get());
94036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius      uint32_t net_id;
95036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius      sta_network_->getId([&](const SupplicantStatus& status, int network_id) {
96036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius              ASSERT_EQ(SupplicantStatusCode::SUCCESS, status.code);
97036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius              net_id = network_id;
98036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius          });
99036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius      sta_iface->removeNetwork(net_id, [](const SupplicantStatus& status) {
100036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius              ASSERT_EQ(SupplicantStatusCode::SUCCESS, status.code);
101036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius          });
102036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    }
103036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
104036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // ISupplicantStaNetwork object used for all tests in this fixture.
105036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sp<ISupplicantStaNetwork> sta_network_;
106036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // SSID to use for various tests.
107036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::vector<uint8_t> ssid_;
108036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius};
109036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
110036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Piusclass NetworkCallback : public ISupplicantStaNetworkCallback {
111036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    Return<void> onNetworkEapSimGsmAuthRequest(
112036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        const ISupplicantStaNetworkCallback::NetworkRequestEapSimGsmAuthParams&
113036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        /* params */) override {
114036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        return Void();
115036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    }
116036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    Return<void> onNetworkEapSimUmtsAuthRequest(
117036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        const ISupplicantStaNetworkCallback::NetworkRequestEapSimUmtsAuthParams&
118036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        /* params */) override {
119036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        return Void();
120036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    }
121036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    Return<void> onNetworkEapIdentityRequest() override { return Void(); }
122036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius};
123036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
124522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius/*
125522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * Create:
126522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * Ensures that an instance of the ISupplicantStaNetwork proxy object is
127522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius * successfully created.
128522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius */
129522e62d54b635461f552ef245c748a26a4e39b19Roshan PiusTEST(SupplicantStaNetworkHidlTestNoFixture, Create) {
130522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius    startSupplicantAndWaitForHidlService();
131522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius    EXPECT_NE(nullptr, createSupplicantStaNetwork().get());
132522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius    stopSupplicant();
133522e62d54b635461f552ef245c748a26a4e39b19Roshan Pius}
134036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
135036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
136036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * RegisterCallback
137036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
138036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, RegisterCallback) {
139036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->registerCallback(
140036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        new NetworkCallback(), [](const SupplicantStatus& status) {
141036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
142036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
143036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
144036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
145e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang/*
146e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang * GetInterfaceName
147e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang */
148e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan WangTEST_F(SupplicantStaNetworkHidlTest, GetInterfaceName) {
149e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    const auto& status_and_interface_name =
150e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang        HIDL_INVOKE(sta_network_, getInterfaceName);
151e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
152e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang              status_and_interface_name.first.code);
153e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    EXPECT_FALSE(std::string(status_and_interface_name.second).empty());
154e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang}
155e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang
156e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang/*
157e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang * GetType
158e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang */
159e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan WangTEST_F(SupplicantStaNetworkHidlTest, GetType) {
160e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    const auto& status_and_interface_type = HIDL_INVOKE(sta_network_, getType);
161e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
162e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang              status_and_interface_type.first.code);
163e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang    EXPECT_EQ(status_and_interface_type.second, IfaceType::STA);
164e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang}
165e97b2be0daffe82c2a9fc4c4d60fb16135b40cc8Ningyuan Wang
166036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/* Tests out the various setter/getter methods. */
167036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
168036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetSsid
169036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
170036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetSsid) {
171036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setSsid(ssid_, [](const SupplicantStatus& status) {
172036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
173036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
174036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getSsid(
175036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, const hidl_vec<uint8_t>& get_ssid) {
176036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
177036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(ssid_, std::vector<uint8_t>(get_ssid));
178036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
179036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
180036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
181036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
182036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetBssid
183036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
184036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetBssid) {
185036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::array<uint8_t, 6> set_bssid;
186036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    memcpy(set_bssid.data(), kTestBssid, set_bssid.size());
187036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setBssid(set_bssid, [](const SupplicantStatus& status) {
188036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
189036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
190036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getBssid([&](const SupplicantStatus& status,
191036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                               const hidl_array<uint8_t, 6>& get_bssid_hidl) {
192036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
193036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        std::array<uint8_t, 6> get_bssid;
194036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        memcpy(get_bssid.data(), get_bssid_hidl.data(), get_bssid.size());
195036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(set_bssid, get_bssid);
196036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
197036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
198036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
199036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
200036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetKeyMgmt
201036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
202036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetKeyMgmt) {
203036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setKeyMgmt(kTestKeyMgmt, [](const SupplicantStatus& status) {
204036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
205036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
206036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getKeyMgmt(
207036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, uint32_t key_mgmt) {
208036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
209036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(key_mgmt, kTestKeyMgmt);
210036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
211036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
212036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
213036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
214036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetProto
215036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
216036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetProto) {
217036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setProto(kTestProto, [](const SupplicantStatus& status) {
218036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
219036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
220036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getProto([&](const SupplicantStatus& status, uint32_t proto) {
221036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
222036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(proto, kTestProto);
223036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
224036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
225036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
226036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
227036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetKeyAuthAlg
228036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
229036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetAuthAlg) {
230036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setAuthAlg(kTestAuthAlg, [](const SupplicantStatus& status) {
231036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
232036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
233036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getAuthAlg(
234036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, uint32_t auth_alg) {
235036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
236036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(auth_alg, kTestAuthAlg);
237036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
238036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
239036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
240036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
241036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetGroupCipher
242036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
243036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetGroupCipher) {
244036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setGroupCipher(
245036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestGroupCipher, [](const SupplicantStatus& status) {
246036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
247036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
248036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getGroupCipher(
249036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, uint32_t group_cipher) {
250036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
251036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(group_cipher, kTestGroupCipher);
252036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
253036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
254036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
255036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
256036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetPairwiseCipher
257036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
258036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetPairwiseCipher) {
259036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setPairwiseCipher(
260036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestPairwiseCipher, [](const SupplicantStatus& status) {
261036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
262036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
263036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getPairwiseCipher(
264036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, uint32_t pairwise_cipher) {
265036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
266036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(pairwise_cipher, kTestPairwiseCipher);
267036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
268036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
269036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
270036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
271036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetPskPassphrase
272036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
273036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetPskPassphrase) {
274036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setPskPassphrase(
275aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        kTestPskPassphrase, [](const SupplicantStatus& status) {
276036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
277036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
278036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getPskPassphrase(
279036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, const hidl_string& psk) {
280036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
281aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang            EXPECT_EQ(kTestPskPassphrase, std::string(psk.c_str()));
282036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
283036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
284036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
285036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
286aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SetGetPsk
287aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
288aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SetGetPsk) {
289aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
290aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, setPsk, kTestPsk).code);
291aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    const auto& status_and_psk = HIDL_INVOKE(sta_network_, getPsk);
292aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS, status_and_psk.first.code);
293aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    hidl_array<uint8_t, 32> expected_psk(kTestPsk);
294aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(expected_psk, status_and_psk.second);
295aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
296aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
297aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
298036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetWepKeys
299036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
300036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetWepTxKeyIdx) {
301036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setWepTxKeyIdx(
302036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestWepTxKeyIdx, [](const SupplicantStatus& status) {
303036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
304036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
305036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getWepTxKeyIdx(
306036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, uint32_t key_idx) {
307036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
308036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(kTestWepTxKeyIdx, key_idx);
309036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
310036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
311036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
312036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
313036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetWepKeys
314036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
315036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetWepKeys) {
316036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    for (uint32_t i = 0;
317036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius         i < static_cast<uint32_t>(
318036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                 ISupplicantStaNetwork::ParamSizeLimits::WEP_KEYS_MAX_NUM);
319036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius         i++) {
320036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        std::vector<uint8_t> set_wep_key(std::begin(kTestWepKey),
321036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                         std::end(kTestWepKey));
322036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        sta_network_->setWepKey(
323036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            i, set_wep_key, [](const SupplicantStatus& status) {
324036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
325036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            });
326036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        sta_network_->getWepKey(i, [&](const SupplicantStatus& status,
327036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                       const hidl_vec<uint8_t>& get_wep_key) {
328036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
329036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(set_wep_key, std::vector<uint8_t>(get_wep_key));
330036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
331036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    }
332036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
333036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
334036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
335036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetScanSsid
336036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
337036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetScanSsid) {
338036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setScanSsid(
339036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        true, [](const SupplicantStatus& status) {
340036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
341036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
342036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getScanSsid(
343036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, bool scan_ssid) {
344036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
345036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(true, scan_ssid);
346036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
347036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
348036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
349036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
350036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetRequirePmf
351036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
352036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetRequirePmf) {
353036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setRequirePmf(
354036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        true, [](const SupplicantStatus& status) {
355036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
356036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
357036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getRequirePmf(
358036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, bool require_pmf) {
359036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
360036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(true, require_pmf);
361036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
362036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
363036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
364036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
365036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetIdStr
366036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
367036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetIdStr) {
368036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setIdStr(
369036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestIdStr, [](const SupplicantStatus& status) {
370036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
371036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
372036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getIdStr(
373036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, const hidl_string& id_str) {
374036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
375036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(kTestIdStr, std::string(id_str.c_str()));
376036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
377036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
378036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
379036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
380036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
381036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapMethod
382036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
383036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapMethod) {
384036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    ISupplicantStaNetwork::EapMethod set_eap_method =
385036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        ISupplicantStaNetwork::EapMethod::PEAP;
386036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapMethod(
387036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        set_eap_method, [](const SupplicantStatus& status) {
388036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
389036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
390036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapMethod(
391036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status,
392036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            ISupplicantStaNetwork::EapMethod eap_method) {
393036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
394036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(set_eap_method, eap_method);
395036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
396036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
397036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
398036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
399036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapPhase2Method
400036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
401036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapPhase2Method) {
402271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang    ISupplicantStaNetwork::EapMethod set_eap_method =
403271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang        ISupplicantStaNetwork::EapMethod::PEAP;
404271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang    sta_network_->setEapMethod(
405271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang        set_eap_method, [](const SupplicantStatus& status) {
406271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
407271f16e6f71bede2b426fb9fe1810f81e87f49b6Ningyuan Wang        });
408036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    ISupplicantStaNetwork::EapPhase2Method set_eap_phase2_method =
409036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        ISupplicantStaNetwork::EapPhase2Method::NONE;
410036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapPhase2Method(
411036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        set_eap_phase2_method, [](const SupplicantStatus& status) {
412036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
413036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
414036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapPhase2Method(
415036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status,
416036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            ISupplicantStaNetwork::EapPhase2Method eap_phase2_method) {
417036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
418036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(set_eap_phase2_method, eap_phase2_method);
419036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
420036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
421036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
422036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
423036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapIdentity
424036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
425036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapIdentity) {
426036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::vector<uint8_t> set_identity(kTestIdentity, kTestIdentity + sizeof(kTestIdentity));
427036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapIdentity(
428036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        set_identity, [](const SupplicantStatus& status) {
429036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
430036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
431036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapIdentity(
432036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, const std::vector<uint8_t>& identity) {
433036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
434036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(set_identity, identity);
435036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
436036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
437036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
438036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
439036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapAnonymousIdentity
440036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
441036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapAnonymousIdentity) {
442036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::vector<uint8_t> set_identity(kTestIdentity, kTestIdentity + sizeof(kTestIdentity));
443036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapAnonymousIdentity(
444036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        set_identity, [](const SupplicantStatus& status) {
445036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
446036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
447036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapAnonymousIdentity(
448036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [&](const SupplicantStatus& status, const std::vector<uint8_t>& identity) {
449036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
450036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(set_identity, identity);
451036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
452036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
453036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
454036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
455036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapPassword
456036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
457036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapPassword) {
458036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::vector<uint8_t> set_eap_passwd(
459036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapPasswdStr, kTestEapPasswdStr + strlen(kTestEapPasswdStr));
460036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapPassword(
461036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        set_eap_passwd, [](const SupplicantStatus& status) {
462036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
463036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
464036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapPassword([&](const SupplicantStatus& status,
465036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                     const hidl_vec<uint8_t>& eap_passwd) {
466036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
467036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(set_eap_passwd, std::vector<uint8_t>(eap_passwd));
468036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
469036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
470036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
471036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
472036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapCACert
473036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
474036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapCACert) {
475036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapCACert(
476036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapCert, [](const SupplicantStatus& status) {
477036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
478036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
479036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapCACert([&](const SupplicantStatus& status,
480036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                   const hidl_string& eap_cert) {
481036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
482036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapCert, std::string(eap_cert.c_str()));
483036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
484036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
485036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
486036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
487036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapCAPath
488036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
489036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapCAPath) {
490036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapCAPath(
491036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapCert, [](const SupplicantStatus& status) {
492036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
493036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
494036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapCAPath([&](const SupplicantStatus& status,
495036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                   const hidl_string& eap_cert) {
496036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
497036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapCert, std::string(eap_cert.c_str()));
498036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
499036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
500036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
501036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
502036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapClientCert
503036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
504036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapClientCert) {
505036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapClientCert(
506036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapCert, [](const SupplicantStatus& status) {
507036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
508036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
509036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapClientCert([&](const SupplicantStatus& status,
510036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                       const hidl_string& eap_cert) {
511036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
512036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapCert, std::string(eap_cert.c_str()));
513036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
514036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
515036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
516036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
517036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapPrivateKeyId
518036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
519036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapPrivateKeyId) {
520036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapPrivateKeyId(
521036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapPrivateKeyId, [](const SupplicantStatus& status) {
522036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
523036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
524036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapPrivateKeyId([&](const SupplicantStatus& status,
525036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                         const hidl_string& key_id) {
526036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
527036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapPrivateKeyId, std::string(key_id.c_str()));
528036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
529036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
530036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
531036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
532036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapAltSubjectMatch
533036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
534036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapAltSubjectMatch) {
535036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapAltSubjectMatch(
536036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapMatch, [](const SupplicantStatus& status) {
537036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
538036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
539036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapAltSubjectMatch([&](const SupplicantStatus& status,
540036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                            const hidl_string& match) {
541036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
542036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapMatch, std::string(match.c_str()));
543036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
544036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
545036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
546036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
547aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SetGetEapSubjectMatch
548aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
549aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SetGetEapSubjectMatch) {
550aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(
551aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        SupplicantStatusCode::SUCCESS,
552aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        HIDL_INVOKE(sta_network_, setEapSubjectMatch, kTestEapMatch).code);
553aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    const auto& status_and_subject_match =
554aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        HIDL_INVOKE(sta_network_, getEapSubjectMatch);
555aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
556aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              status_and_subject_match.first.code);
557aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(kTestEapMatch,
558aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              std::string(status_and_subject_match.second.c_str()));
559aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
560aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
561aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
562036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapDomainSuffixMatch
563036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
564036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapDomainSuffixMatch) {
565036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapDomainSuffixMatch(
566036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapMatch, [](const SupplicantStatus& status) {
567036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
568036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
569036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapDomainSuffixMatch([&](const SupplicantStatus& status,
570036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                              const hidl_string& match) {
571036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
572036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapMatch, std::string(match.c_str()));
573036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
574036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
575036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
576036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
577036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapEngine
578036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
579036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapEngine) {
580036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapEngine(
581036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        true, [](const SupplicantStatus& status) {
582036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
583036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
584036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapEngine([&](const SupplicantStatus& status,
585036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                   bool enable) {
586036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
587036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(true, enable);
588036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
589036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
590036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
591036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
592036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SetGetEapEngineID
593036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
594036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SetGetEapEngineID) {
595036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setEapEngineID(
596036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        kTestEapEngineID, [](const SupplicantStatus& status) {
597036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
598036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
599036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->getEapEngineID([&](const SupplicantStatus& status,
600036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                                     const hidl_string& id) {
601036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
602036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(kTestEapEngineID, std::string(id.c_str()));
603036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
604036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
605036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
606036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
607036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * Enable
608036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
609036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, Enable) {
610036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // wpa_supplicant doesn't perform any connection initiation
611036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // unless atleast the Ssid and Ket mgmt params are set.
612036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setSsid(ssid_, [](const SupplicantStatus& status) {
613036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
614036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
615036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setKeyMgmt(kTestKeyMgmt, [](const SupplicantStatus& status) {
616036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
617036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
618036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
619036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->enable(false, [](const SupplicantStatus& status) {
620036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
621036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
622036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->enable(true, [](const SupplicantStatus& status) {
623036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
624036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
625036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
626036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // Now remove the network and ensure that the calls fail.
627036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    removeNetwork();
628036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->enable(true, [](const SupplicantStatus& status) {
629036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::FAILURE_NETWORK_INVALID, status.code);
630036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
631036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
632036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
633036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
634036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * Disable
635036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
636036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, Disable) {
637036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // wpa_supplicant doesn't perform any connection initiation
638036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // unless atleast the Ssid and Ket mgmt params are set.
639036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setSsid(ssid_, [](const SupplicantStatus& status) {
640036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
641036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
642036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setKeyMgmt(kTestKeyMgmt, [](const SupplicantStatus& status) {
643036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
644036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
645036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
646036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->disable([](const SupplicantStatus& status) {
647036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
648036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
649036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // Now remove the network and ensure that the calls fail.
650036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    removeNetwork();
651036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->disable([](const SupplicantStatus& status) {
652036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::FAILURE_NETWORK_INVALID, status.code);
653036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
654036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
655036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
656036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
657036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * Select.
658036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
659036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, Select) {
660036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // wpa_supplicant doesn't perform any connection initiation
661036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // unless atleast the Ssid and Ket mgmt params are set.
662036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setSsid(ssid_, [](const SupplicantStatus& status) {
663036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
664036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
665036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->setKeyMgmt(kTestKeyMgmt, [](const SupplicantStatus& status) {
666036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
667036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
668036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
669036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->select([](const SupplicantStatus& status) {
670036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
671036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
672036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    // Now remove the network and ensure that the calls fail.
673036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    removeNetwork();
674036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->select([](const SupplicantStatus& status) {
675036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        EXPECT_EQ(SupplicantStatusCode::FAILURE_NETWORK_INVALID, status.code);
676036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    });
677036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
678036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
679036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
680036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SendNetworkEapSimGsmAuthResponse
681036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
682036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapSimGsmAuthResponse) {
683036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    std::vector<ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams>
684036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        params;
685036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    ISupplicantStaNetwork::NetworkResponseEapSimGsmAuthParams param;
686036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    memcpy(param.kc.data(), kTestKc, param.kc.size());
687036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    memcpy(param.sres.data(), kTestSres, param.sres.size());
688036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    params.push_back(param);
689036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->sendNetworkEapSimGsmAuthResponse(
690036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        params, [](const SupplicantStatus& status) {
691036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
692036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
693036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
694036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
695036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
696aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SendNetworkEapSimGsmAuthFailure
697aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
698aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapSimGsmAuthFailure) {
699aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
700aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, sendNetworkEapSimGsmAuthFailure).code);
701aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
702aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
703aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
704036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SendNetworkEapSimUmtsAuthResponse
705036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
706036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapSimUmtsAuthResponse) {
707036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    ISupplicantStaNetwork::NetworkResponseEapSimUmtsAuthParams params;
708036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    params.res = std::vector<uint8_t>(kTestRes, kTestRes + sizeof(kTestRes));
709036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    memcpy(params.ik.data(), kTestIk, params.ik.size());
710036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    memcpy(params.ck.data(), kTestCk, params.ck.size());
711036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->sendNetworkEapSimUmtsAuthResponse(
712036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        params, [](const SupplicantStatus& status) {
713036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
714036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
715036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
716036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius
717036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius/*
718aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SendNetworkEapSimUmtsAuthFailure
719aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
720aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapSimUmtsAuthFailure) {
721aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
722aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, sendNetworkEapSimUmtsAuthFailure).code);
723aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
724aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
725aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
726aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SendNetworkEapSimUmtsAutsResponse
727aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
728aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapSimUmtsAutsResponse) {
729aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
730aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, sendNetworkEapSimUmtsAutsResponse,
731aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang                          kTestAutParam)
732aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang                  .code);
733aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
734aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
735aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
736036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius * SendNetworkEapIdentityResponse
737036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius */
738036da68261170345c53c32ed8f59a30d42f1ceb8Roshan PiusTEST_F(SupplicantStaNetworkHidlTest, SendNetworkEapIdentityResponse) {
739036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius    sta_network_->sendNetworkEapIdentityResponse(
740036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        std::vector<uint8_t>(kTestIdentity,
741036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius                             kTestIdentity + sizeof(kTestIdentity)),
742036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        [](const SupplicantStatus& status) {
743036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius            EXPECT_EQ(SupplicantStatusCode::SUCCESS, status.code);
744036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius        });
745036da68261170345c53c32ed8f59a30d42f1ceb8Roshan Pius}
746aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
747aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
748aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SetUpdateIdentifier
749aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
750aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SetUpdateIdentifier) {
751aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(
752aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        SupplicantStatusCode::SUCCESS,
753aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        HIDL_INVOKE(sta_network_, setUpdateIdentifier, kTestUpdateIdentifier)
754aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang            .code);
755aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
756aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
757aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
758aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * SetProactiveKeyCaching
759aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
760aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, SetProactiveKeyCaching) {
761aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
762aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, setProactiveKeyCaching, true).code);
763aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS,
764aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, setProactiveKeyCaching, false).code);
765aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
766aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang
767aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang/*
768aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang * GetWpsNfcConfigurationToken
769aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang */
770aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan WangTEST_F(SupplicantStaNetworkHidlTest, GetWpsNfcConfigurationToken) {
771aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    ASSERT_EQ(SupplicantStatusCode::SUCCESS,
772aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, setSsid, ssid_).code);
773aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    ASSERT_EQ(SupplicantStatusCode::SUCCESS,
774aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang              HIDL_INVOKE(sta_network_, setKeyMgmt, kTestKeyMgmt).code);
775aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    ASSERT_EQ(
776aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        SupplicantStatusCode::SUCCESS,
777aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        HIDL_INVOKE(sta_network_, setPskPassphrase, kTestPskPassphrase).code);
778aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    const auto& status_and_token =
779aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang        HIDL_INVOKE(sta_network_, getWpsNfcConfigurationToken);
780aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_EQ(SupplicantStatusCode::SUCCESS, status_and_token.first.code);
781aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang    EXPECT_FALSE(0 == status_and_token.second.size());
782aa9b37d26b3579bd4602684e67e8559d15cb4bedNingyuan Wang}
783