Merge "EAP API CTS tests" into jb-mr2-dev
diff --git a/tests/cts/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java b/tests/cts/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
new file mode 100644
index 0000000..58298d5
--- /dev/null
+++ b/tests/cts/net/src/android/net/wifi/cts/WifiEnterpriseConfigTest.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+package android.net.wifi.cts;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiEnterpriseConfig;
+import android.net.wifi.WifiEnterpriseConfig.Eap;
+import android.net.wifi.WifiEnterpriseConfig.Phase2;
+import android.net.wifi.WifiManager;
+import android.test.AndroidTestCase;
+
+public class WifiEnterpriseConfigTest extends AndroidTestCase {
+    private  WifiManager mWifiManager;
+
+    private static final String SSID = "\"TestSSID\"";
+    private static final String IDENTITY = "identity";
+    private static final String PASSWORD = "password";
+    private static final String SUBJECT_MATCH = "subjectmatch";
+    private static final String ANON_IDENTITY = "anonidentity";
+    private static final int ENABLE_DELAY = 10000;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mWifiManager = (WifiManager) mContext
+                .getSystemService(Context.WIFI_SERVICE);
+        assertNotNull(mWifiManager);
+        mWifiManager.setWifiEnabled(true);
+        Thread.sleep(ENABLE_DELAY);
+        assertTrue(mWifiManager.isWifiEnabled());
+    }
+
+    public void testSettersAndGetters() {
+        WifiEnterpriseConfig config = new WifiEnterpriseConfig();
+        assertTrue(config.getEapMethod() == Eap.NONE);
+        config.setEapMethod(Eap.PEAP);
+        assertTrue(config.getEapMethod() == Eap.PEAP);
+        config.setEapMethod(Eap.PWD);
+        assertTrue(config.getEapMethod() == Eap.PWD);
+        config.setEapMethod(Eap.TLS);
+        assertTrue(config.getEapMethod() == Eap.TLS);
+        config.setEapMethod(Eap.TTLS);
+        assertTrue(config.getEapMethod() == Eap.TTLS);
+        assertTrue(config.getPhase2Method() == Phase2.NONE);
+        config.setPhase2Method(Phase2.PAP);
+        assertTrue(config.getPhase2Method() == Phase2.PAP);
+        config.setPhase2Method(Phase2.MSCHAP);
+        assertTrue(config.getPhase2Method() == Phase2.MSCHAP);
+        config.setPhase2Method(Phase2.MSCHAPV2);
+        assertTrue(config.getPhase2Method() == Phase2.MSCHAPV2);
+        config.setPhase2Method(Phase2.GTC);
+        assertTrue(config.getPhase2Method() == Phase2.GTC);
+        config.setIdentity(IDENTITY);
+        assertTrue(config.getIdentity().equals(IDENTITY));
+        config.setAnonymousIdentity(ANON_IDENTITY);
+        assertTrue(config.getAnonymousIdentity().equals(ANON_IDENTITY));
+        config.setPassword(PASSWORD);
+        assertTrue(config.getPassword().equals(PASSWORD));
+        config.setCaCertificate(null);
+        config.setClientKeyEntry(null, null);
+        config.setSubjectMatch(SUBJECT_MATCH);
+        assertTrue(config.getSubjectMatch().equals(SUBJECT_MATCH));
+    }
+
+    public void testAddEapNetwork() {
+        WifiConfiguration config = new WifiConfiguration();
+        WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
+        enterpriseConfig.setEapMethod(Eap.PWD);
+        enterpriseConfig.setIdentity(IDENTITY);
+        enterpriseConfig.setPassword(PASSWORD);
+        config.SSID = SSID;
+        config.enterpriseConfig = enterpriseConfig;
+
+        int netId = mWifiManager.addNetwork(config);
+        assertTrue(doesSsidExist(SSID));
+        mWifiManager.removeNetwork(netId);
+        assertFalse(doesSsidExist(SSID));
+    }
+
+    private boolean doesSsidExist(String ssid) {
+        for (final WifiConfiguration w : mWifiManager.getConfiguredNetworks()) {
+            if (w.SSID.equals(ssid))
+                return true;
+        }
+        return false;
+    }
+}