aboutsummaryrefslogtreecommitdiff
path: root/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java')
-rw-r--r--tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java256
1 files changed, 0 insertions, 256 deletions
diff --git a/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java b/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java
deleted file mode 100644
index 4c868a03..00000000
--- a/tests/iketests/src/java/com/android/internal/net/eap/EapAuthenticatorTest.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * 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 com.android.internal.net.eap;
-
-import static com.android.internal.net.TestUtils.hexStringToByteArray;
-import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_FAILURE_PACKET;
-import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_REQUEST_SIM_START_PACKET;
-import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SIM_RESPONSE_PACKET;
-import static com.android.internal.net.eap.message.EapTestMessageDefinitions.EAP_SUCCESS_PACKET;
-import static com.android.internal.net.eap.message.EapTestMessageDefinitions.REQUEST_UNSUPPORTED_TYPE_PACKET;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-import android.os.Looper;
-import android.os.test.TestLooper;
-
-import com.android.internal.net.eap.EapResult.EapError;
-import com.android.internal.net.eap.EapResult.EapFailure;
-import com.android.internal.net.eap.EapResult.EapResponse;
-import com.android.internal.net.eap.EapResult.EapSuccess;
-import com.android.internal.net.eap.exceptions.EapInvalidRequestException;
-import com.android.internal.net.eap.statemachine.EapStateMachine;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.util.concurrent.TimeoutException;
-
-public class EapAuthenticatorTest {
- private static final long AUTHENTICATOR_TIMEOUT_MILLIS = 250L;
- private static final long TEST_TIMEOUT_MILLIS = 2 * AUTHENTICATOR_TIMEOUT_MILLIS;
- private static final byte[] MSK = hexStringToByteArray(
- "00112233445566778899AABBCCDDEEFF"
- + "00112233445566778899AABBCCDDEEFF"
- + "00112233445566778899AABBCCDDEEFF"
- + "00112233445566778899AABBCCDDEEFF");
- private static final byte[] EMSK = hexStringToByteArray(
- "FFEEDDCCBBAA99887766554433221100"
- + "FFEEDDCCBBAA99887766554433221100"
- + "FFEEDDCCBBAA99887766554433221100"
- + "FFEEDDCCBBAA99887766554433221100");
-
- private EapStateMachine mMockEapStateMachine;
-
- private TestLooper mTestLooper;
- private boolean mCallbackFired;
-
- @Before
- public void setUp() {
- if (Looper.myLooper() == null) Looper.prepare();
-
- mMockEapStateMachine = mock(EapStateMachine.class);
-
- mTestLooper = new TestLooper();
- mCallbackFired = false;
- }
-
- @Test
- public void testProcessEapMessageResponse() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onResponse(byte[] eapMsg) {
- assertArrayEquals(EAP_SIM_RESPONSE_PACKET, eapMsg);
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
-
- EapResponse eapResponse = new EapResponse(EAP_SIM_RESPONSE_PACKET);
- when(mMockEapStateMachine.process(eq(EAP_REQUEST_SIM_START_PACKET)))
- .thenReturn(eapResponse);
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(EAP_REQUEST_SIM_START_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(EAP_REQUEST_SIM_START_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- @Test
- public void testProcessEapMessageError() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onError(Throwable cause) {
- assertTrue(cause instanceof EapInvalidRequestException);
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
- Exception cause = new EapInvalidRequestException("Error");
- EapError eapError = new EapError(cause);
- when(mMockEapStateMachine.process(eq(REQUEST_UNSUPPORTED_TYPE_PACKET)))
- .thenReturn(eapError);
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(REQUEST_UNSUPPORTED_TYPE_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(REQUEST_UNSUPPORTED_TYPE_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- @Test
- public void testProcessEapMessageSuccess() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onSuccess(byte[] msk, byte[] emsk) {
- assertArrayEquals(MSK, msk);
- assertArrayEquals(EMSK, emsk);
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
- EapSuccess eapSuccess = new EapSuccess(MSK, EMSK);
- when(mMockEapStateMachine.process(eq(EAP_SUCCESS_PACKET)))
- .thenReturn(eapSuccess);
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(EAP_SUCCESS_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(EAP_SUCCESS_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- @Test
- public void testProcessEapMessageFailure() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onFail() {
- // nothing to check here
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
- when(mMockEapStateMachine.process(eq(EAP_FAILURE_PACKET)))
- .thenReturn(new EapFailure());
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(EAP_FAILURE_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(EAP_FAILURE_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- @Test
- public void testProcessEapMessageExceptionThrown() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onError(Throwable cause) {
- assertTrue(cause instanceof NullPointerException);
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
- when(mMockEapStateMachine.process(EAP_REQUEST_SIM_START_PACKET))
- .thenThrow(new NullPointerException());
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(EAP_REQUEST_SIM_START_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(EAP_REQUEST_SIM_START_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- @Test
- public void testProcessEapMessageStateMachineTimeout() {
- EapCallback eapCallback = new EapCallback() {
- @Override
- public void onError(Throwable cause) {
- assertTrue(cause instanceof TimeoutException);
- assertFalse("Callback has already been fired", mCallbackFired);
- mCallbackFired = true;
- }
- };
- EapResponse eapResponse = new EapResponse(EAP_SIM_RESPONSE_PACKET);
- when(mMockEapStateMachine.process(eq(EAP_REQUEST_SIM_START_PACKET)))
- .then((invocation) -> {
- // move time forward to trigger the timeout
- mTestLooper.moveTimeForward(TEST_TIMEOUT_MILLIS);
- return eapResponse;
- });
-
- getEapAuthenticatorWithCallback(eapCallback)
- .processEapMessage(EAP_REQUEST_SIM_START_PACKET);
- mTestLooper.dispatchAll();
-
- assertTrue("Callback didn't fire", mCallbackFired);
- verify(mMockEapStateMachine).process(eq(EAP_REQUEST_SIM_START_PACKET));
- verifyNoMoreInteractions(mMockEapStateMachine);
- }
-
- private EapAuthenticator getEapAuthenticatorWithCallback(EapCallback eapCallback) {
- return new EapAuthenticator(
- mTestLooper.getLooper(),
- eapCallback,
- mMockEapStateMachine,
- (runnable) -> runnable.run(),
- AUTHENTICATOR_TIMEOUT_MILLIS);
- }
-
- /**
- * Default {@link IEapCallback} implementation that throws {@link UnsupportedOperationException}
- * for all calls.
- */
- private abstract static class EapCallback implements IEapCallback {
- @Override
- public void onSuccess(byte[] msk, byte[] emsk) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void onFail() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void onResponse(byte[] eapMsg) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void onError(Throwable cause) {
- throw new UnsupportedOperationException();
- }
- }
-}