[WifiWpa3EnterpriseTest] Tests for wpa3 enterprise

Bug: 161573278
Fixes: 161573278
Test: Verified the changes on git_master
Change-Id: If0149ee845b957cb87de494b1aa5e56443f0f427
diff --git a/acts/tests/google/wifi/WifiWpa3EnterpriseTest.py b/acts/tests/google/wifi/WifiWpa3EnterpriseTest.py
new file mode 100644
index 0000000..57b7646
--- /dev/null
+++ b/acts/tests/google/wifi/WifiWpa3EnterpriseTest.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python3.4
+#
+#   Copyright 2020 - The Android Open Source Project
+#
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+from acts.test_decorators import test_tracker_info
+import acts.test_utils.wifi.wifi_test_utils as wutils
+from acts.test_utils.wifi.WifiBaseTest import WifiBaseTest
+
+WifiEnums = wutils.WifiEnums
+
+EAP = WifiEnums.Eap
+Ent = WifiEnums.Enterprise
+WPA3_SECURITY = "SUITE_B_192"
+
+
+class WifiWpa3EnterpriseTest(WifiBaseTest):
+  """Tests for WPA3 Enterprise."""
+
+  def setup_class(self):
+    super().setup_class()
+
+    self.dut = self.android_devices[0]
+    wutils.wifi_test_device_init(self.dut)
+    req_params = [
+        "ec2_ca_cert", "ec2_client_cert", "ec2_client_key", "rsa3072_ca_cert",
+        "rsa3072_client_cert", "rsa3072_client_key", "wpa3_ec2_network",
+        "wpa3_rsa3072_network"
+    ]
+    self.unpack_userparams(req_param_names=req_params,)
+
+  def setup_test(self):
+    for ad in self.android_devices:
+      ad.droid.wakeLockAcquireBright()
+      ad.droid.wakeUpNow()
+    wutils.wifi_toggle_state(self.dut, True)
+
+  def teardown_test(self):
+    for ad in self.android_devices:
+      ad.droid.wakeLockRelease()
+      ad.droid.goToSleepNow()
+    wutils.reset_wifi(self.dut)
+
+  def on_fail(self, test_name, begin_time):
+    self.dut.cat_adb_log(test_name, begin_time)
+    self.dut.take_bug_report(test_name, begin_time)
+
+  ### Tests ###
+
+  @test_tracker_info(uuid="404c6165-6e23-4ec1-bc2c-9dfdd5c7dc87")
+  def test_connect_to_wpa3_enterprise_ec2(self):
+    config = {
+        Ent.EAP: int(EAP.TLS),
+        Ent.CA_CERT: self.ec2_ca_cert,
+        WifiEnums.SSID_KEY: self.wpa3_ec2_network[WifiEnums.SSID_KEY],
+        Ent.CLIENT_CERT: self.ec2_client_cert,
+        Ent.PRIVATE_KEY_ID: self.ec2_client_key,
+        WifiEnums.SECURITY: WPA3_SECURITY,
+        "identity": self.wpa3_ec2_network["identity"],
+        "domain_suffix_match": self.wpa3_ec2_network["domain"],
+        "cert_algo": self.wpa3_ec2_network["cert_algo"]
+    }
+    wutils.connect_to_wifi_network(self.dut, config)
+
+  @test_tracker_info(uuid="b6d22585-f7c1-418d-bd4b-b627af8c228c")
+  def test_connect_to_wpa3_enterprise_rsa3072(self):
+    config = {
+        Ent.EAP: int(EAP.TLS),
+        Ent.CA_CERT: self.rsa3072_ca_cert,
+        WifiEnums.SSID_KEY: self.wpa3_rsa3072_network[WifiEnums.SSID_KEY],
+        Ent.CLIENT_CERT: self.rsa3072_client_cert,
+        Ent.PRIVATE_KEY_ID: self.rsa3072_client_key,
+        WifiEnums.SECURITY: WPA3_SECURITY,
+        "identity": self.wpa3_rsa3072_network["identity"],
+        "domain_suffix_match": self.wpa3_rsa3072_network["domain"]
+    }
+    wutils.connect_to_wifi_network(self.dut, config)