diff options
Diffstat (limited to 'tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java')
-rw-r--r-- | tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java b/tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java new file mode 100644 index 00000000..eed32e3e --- /dev/null +++ b/tests/iketests/src/java/android/net/eap/EapSessionConfigTest.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2019 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.eap; + +import static android.net.eap.EapSessionConfig.DEFAULT_IDENTITY; +import static android.telephony.TelephonyManager.APPTYPE_USIM; + +import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA; +import static com.android.internal.net.eap.message.EapData.EAP_TYPE_AKA_PRIME; +import static com.android.internal.net.eap.message.EapData.EAP_TYPE_MSCHAP_V2; +import static com.android.internal.net.eap.message.EapData.EAP_TYPE_SIM; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import android.net.eap.EapSessionConfig.EapAkaConfig; +import android.net.eap.EapSessionConfig.EapAkaPrimeConfig; +import android.net.eap.EapSessionConfig.EapMethodConfig; +import android.net.eap.EapSessionConfig.EapMsChapV2Config; +import android.net.eap.EapSessionConfig.EapSimConfig; + +import org.junit.Test; + +import java.nio.charset.StandardCharsets; + +public class EapSessionConfigTest { + private static final byte[] EAP_IDENTITY = + "test@android.net".getBytes(StandardCharsets.US_ASCII); + private static final int SUB_ID = 1; + private static final String NETWORK_NAME = "android.net"; + private static final boolean ALLOW_MISMATCHED_NETWORK_NAMES = true; + private static final String USERNAME = "username"; + private static final String PASSWORD = "password"; + + @Test + public void testBuildEapSim() { + EapSessionConfig result = new EapSessionConfig.Builder() + .setEapIdentity(EAP_IDENTITY) + .setEapSimConfig(SUB_ID, APPTYPE_USIM) + .build(); + + assertArrayEquals(EAP_IDENTITY, result.eapIdentity); + + EapMethodConfig eapMethodConfig = result.eapConfigs.get(EAP_TYPE_SIM); + assertEquals(EAP_TYPE_SIM, eapMethodConfig.methodType); + EapSimConfig eapSimConfig = (EapSimConfig) eapMethodConfig; + assertEquals(SUB_ID, eapSimConfig.subId); + assertEquals(APPTYPE_USIM, eapSimConfig.apptype); + } + + @Test + public void testBuildEapAka() { + EapSessionConfig result = new EapSessionConfig.Builder() + .setEapAkaConfig(SUB_ID, APPTYPE_USIM) + .build(); + + assertArrayEquals(DEFAULT_IDENTITY, result.eapIdentity); + EapMethodConfig eapMethodConfig = result.eapConfigs.get(EAP_TYPE_AKA); + EapAkaConfig eapAkaConfig = (EapAkaConfig) eapMethodConfig; + assertEquals(SUB_ID, eapAkaConfig.subId); + assertEquals(APPTYPE_USIM, eapAkaConfig.apptype); + } + + @Test + public void testBuildEapAkaPrime() { + EapSessionConfig result = + new EapSessionConfig.Builder() + .setEapAkaPrimeConfig( + SUB_ID, APPTYPE_USIM, NETWORK_NAME, ALLOW_MISMATCHED_NETWORK_NAMES) + .build(); + + assertEquals(DEFAULT_IDENTITY, result.eapIdentity); + EapMethodConfig eapMethodConfig = result.eapConfigs.get(EAP_TYPE_AKA_PRIME); + EapAkaPrimeConfig eapAkaPrimeConfig = (EapAkaPrimeConfig) eapMethodConfig; + assertEquals(SUB_ID, eapAkaPrimeConfig.subId); + assertEquals(APPTYPE_USIM, eapAkaPrimeConfig.apptype); + assertEquals(NETWORK_NAME, eapAkaPrimeConfig.networkName); + assertTrue(eapAkaPrimeConfig.allowMismatchedNetworkNames); + } + + @Test + public void testBuildEapMsChapV2() { + EapSessionConfig result = + new EapSessionConfig.Builder().setEapMsChapV2Config(USERNAME, PASSWORD).build(); + + EapMsChapV2Config config = (EapMsChapV2Config) result.eapConfigs.get(EAP_TYPE_MSCHAP_V2); + assertEquals(USERNAME, config.username); + assertEquals(PASSWORD, config.password); + } + + @Test + public void testBuildWithoutConfigs() { + try { + new EapSessionConfig.Builder().build(); + fail("build() should throw an IllegalStateException if no EAP methods are configured"); + } catch (IllegalStateException expected) { + } + } +} |