Merge "Create super class for IkeSessionTest and IkeSessionStateMachineTest"
diff --git a/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java
index e8e1ee5..fc9f9c6 100644
--- a/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java
+++ b/tests/iketests/src/java/android/net/ipsec/ike/IkeSessionTest.java
@@ -20,20 +20,14 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.InetAddresses;
-import android.net.IpSecManager;
-import android.net.Network;
import android.os.Looper;
import android.os.test.TestLooper;
import android.util.Log;
import com.android.internal.net.ipsec.ike.IkeSessionStateMachine;
import com.android.internal.net.ipsec.ike.IkeSessionStateMachineTest;
-import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
+import com.android.internal.net.ipsec.ike.IkeSessionTestBase;
import org.junit.Before;
import org.junit.Test;
@@ -43,21 +37,9 @@
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
-public final class IkeSessionTest {
+public final class IkeSessionTest extends IkeSessionTestBase {
private static final int TIMEOUT_MS = 500;
- private static final Inet4Address LOCAL_ADDRESS =
- (Inet4Address) (InetAddresses.parseNumericAddress("192.0.2.200"));
- private static final Inet4Address REMOTE_ADDRESS =
- (Inet4Address) (InetAddresses.parseNumericAddress("127.0.0.1"));
-
- private MockIpSecTestUtils mMockIpSecTestUtils;
- private IpSecManager mIpSecManager;
- private Context mContext;
-
- private ConnectivityManager mMockConnectManager;
- private Network mMockDefaultNetwork;
-
private IkeSessionParams mIkeSessionParams;
private ChildSessionParams mMockChildSessionParams;
private Executor mUserCbExecutor;
@@ -66,18 +48,10 @@
@Before
public void setUp() throws Exception {
+ super.setUp();
+
if (Looper.myLooper() == null) Looper.prepare();
- mMockIpSecTestUtils = MockIpSecTestUtils.setUpMockIpSec();
- mIpSecManager = mMockIpSecTestUtils.getIpSecManager();
- mContext = mMockIpSecTestUtils.getContext();
-
- mMockConnectManager = mock(ConnectivityManager.class);
- mMockDefaultNetwork = mock(Network.class);
- when(mMockConnectManager.getActiveNetwork()).thenReturn(mMockDefaultNetwork);
- when(mMockDefaultNetwork.getByName(REMOTE_ADDRESS.getHostAddress()))
- .thenReturn(REMOTE_ADDRESS);
-
mIkeSessionParams = buildIkeSessionParams();
mMockChildSessionParams = mock(ChildSessionParams.class);
mUserCbExecutor = (r) -> r.run(); // Inline executor for testing purposes.
@@ -101,7 +75,7 @@
public void testConstructIkeSession() throws Exception {
IkeSession ikeSession =
new IkeSession(
- mContext,
+ mSpyContext,
mIpSecManager,
mIkeSessionParams,
mMockChildSessionParams,
@@ -130,7 +104,7 @@
try {
sessions[index] =
new IkeSession(
- mContext,
+ mSpyContext,
mIpSecManager,
mIkeSessionParams,
mMockChildSessionParams,
@@ -159,7 +133,7 @@
IkeSession ikeSession =
new IkeSession(
testLooper.getLooper(),
- mContext,
+ mSpyContext,
mIpSecManager,
mIkeSessionParams,
mMockChildSessionParams,
diff --git a/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java
index bdf42a6..7dff751 100644
--- a/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionStateMachineTest.java
@@ -78,14 +78,6 @@
import static org.mockito.Mockito.when;
import android.app.AlarmManager;
-import android.content.Context;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.net.InetAddresses;
-import android.net.IpSecManager;
-import android.net.IpSecManager.UdpEncapsulationSocket;
-import android.net.Network;
-import android.net.SocketKeepalive;
import android.net.eap.EapSessionConfig;
import android.net.ipsec.ike.ChildSaProposal;
import android.net.ipsec.ike.ChildSessionCallback;
@@ -102,7 +94,6 @@
import android.net.ipsec.ike.exceptions.IkeException;
import android.net.ipsec.ike.exceptions.IkeInternalException;
import android.net.ipsec.ike.exceptions.IkeProtocolException;
-import android.os.Handler;
import android.os.test.TestLooper;
import android.telephony.TelephonyManager;
@@ -158,8 +149,6 @@
import com.android.internal.net.ipsec.ike.message.IkeTestUtils;
import com.android.internal.net.ipsec.ike.message.IkeTsPayload;
import com.android.internal.net.ipsec.ike.testutils.CertUtils;
-import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
-import com.android.internal.net.ipsec.ike.utils.IkeAlarmReceiver;
import com.android.internal.net.ipsec.ike.utils.IkeSecurityParameterIndex;
import com.android.internal.net.ipsec.ike.utils.Retransmitter;
import com.android.internal.net.ipsec.ike.utils.Retransmitter.IBackoffTimeoutCalculator;
@@ -187,15 +176,9 @@
import java.util.Map;
import java.util.concurrent.Executor;
-public final class IkeSessionStateMachineTest {
+public final class IkeSessionStateMachineTest extends IkeSessionTestBase {
private static final String TAG = "IkeSessionStateMachineTest";
- private static final Inet4Address LOCAL_ADDRESS =
- (Inet4Address) (InetAddresses.parseNumericAddress("192.0.2.200"));
- private static final Inet4Address REMOTE_ADDRESS =
- (Inet4Address) (InetAddresses.parseNumericAddress("127.0.0.1"));
- private static final String REMOTE_HOSTNAME = "ike.test.android";
-
private static final String IKE_INIT_RESP_HEX_STRING =
"5f54bf6d8b48e6e1909232b3d1edcb5c21202220000000000000014c220000300000"
+ "002c010100040300000c0100000c800e008003000008030000020300000802000002"
@@ -301,13 +284,6 @@
private static final long RETRANSMIT_BACKOFF_TIMEOUT_MS = 5000L;
- private MockIpSecTestUtils mMockIpSecTestUtils;
- private Context mSpyContext;
- private IpSecManager mIpSecManager;
-
- private ConnectivityManager mMockConnectManager;
- private Network mMockDefaultNetwork;
- private SocketKeepalive mMockSocketKeepalive;
private IkeUdpEncapSocket mSpyIkeUdpEncapSocket;
private IkeUdp4Socket mSpyIkeUdp4Socket;
private IkeUdp6Socket mSpyIkeUdp6Socket;
@@ -666,44 +642,11 @@
@Before
public void setUp() throws Exception {
+ super.setUp();
+
mSpyIkeLog = TestUtils.makeSpyLogThrowExceptionForWtf(TAG);
IkeManager.setIkeLog(mSpyIkeLog);
- mMockIpSecTestUtils = MockIpSecTestUtils.setUpMockIpSec();
- mIpSecManager = mMockIpSecTestUtils.getIpSecManager();
-
- mSpyContext = spy(mMockIpSecTestUtils.getContext());
- doReturn(null)
- .when(mSpyContext)
- .registerReceiver(
- any(IkeAlarmReceiver.class),
- any(IntentFilter.class),
- any(),
- any(Handler.class));
- doNothing().when(mSpyContext).unregisterReceiver(any(IkeAlarmReceiver.class));
-
- mMockConnectManager = mock(ConnectivityManager.class);
- mMockDefaultNetwork = mock(Network.class);
- doReturn(mMockDefaultNetwork).when(mMockConnectManager).getActiveNetwork();
- doReturn(REMOTE_ADDRESS).when(mMockDefaultNetwork).getByName(REMOTE_HOSTNAME);
- doReturn(REMOTE_ADDRESS)
- .when(mMockDefaultNetwork)
- .getByName(REMOTE_ADDRESS.getHostAddress());
-
- mMockSocketKeepalive = mock(SocketKeepalive.class);
- doReturn(mMockSocketKeepalive)
- .when(mMockConnectManager)
- .createSocketKeepalive(
- any(Network.class),
- any(UdpEncapsulationSocket.class),
- any(Inet4Address.class),
- any(Inet4Address.class),
- any(Executor.class),
- any(SocketKeepalive.Callback.class));
- doReturn(mMockConnectManager)
- .when(mSpyContext)
- .getSystemService(Context.CONNECTIVITY_SERVICE);
-
mEapSessionConfig =
new EapSessionConfig.Builder()
.setEapSimConfig(EAP_SIM_SUB_ID, TelephonyManager.APPTYPE_USIM)
diff --git a/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionTestBase.java b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionTestBase.java
new file mode 100644
index 0000000..17cb94f
--- /dev/null
+++ b/tests/iketests/src/java/com/android/internal/net/ipsec/ike/IkeSessionTestBase.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.internal.net.ipsec.ike;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+import android.net.InetAddresses;
+import android.net.IpSecManager;
+import android.net.IpSecManager.UdpEncapsulationSocket;
+import android.net.Network;
+import android.net.SocketKeepalive;
+import android.os.Handler;
+
+import com.android.internal.net.ipsec.ike.testutils.MockIpSecTestUtils;
+import com.android.internal.net.ipsec.ike.utils.IkeAlarmReceiver;
+
+import org.junit.Before;
+
+import java.net.Inet4Address;
+import java.util.concurrent.Executor;
+
+public abstract class IkeSessionTestBase {
+ protected static final Inet4Address LOCAL_ADDRESS =
+ (Inet4Address) (InetAddresses.parseNumericAddress("192.0.2.200"));
+ protected static final Inet4Address REMOTE_ADDRESS =
+ (Inet4Address) (InetAddresses.parseNumericAddress("127.0.0.1"));
+ protected static final String REMOTE_HOSTNAME = "ike.test.android.com";
+
+ protected MockIpSecTestUtils mMockIpSecTestUtils;
+ protected Context mSpyContext;
+ protected IpSecManager mIpSecManager;
+
+ protected ConnectivityManager mMockConnectManager;
+ protected Network mMockDefaultNetwork;
+ protected SocketKeepalive mMockSocketKeepalive;
+
+ @Before
+ public void setUp() throws Exception {
+ mMockIpSecTestUtils = MockIpSecTestUtils.setUpMockIpSec();
+ mIpSecManager = mMockIpSecTestUtils.getIpSecManager();
+
+ mSpyContext = spy(mMockIpSecTestUtils.getContext());
+ doReturn(null)
+ .when(mSpyContext)
+ .registerReceiver(
+ any(IkeAlarmReceiver.class),
+ any(IntentFilter.class),
+ any(),
+ any(Handler.class));
+ doNothing().when(mSpyContext).unregisterReceiver(any(IkeAlarmReceiver.class));
+
+ mMockConnectManager = mock(ConnectivityManager.class);
+ mMockDefaultNetwork = mock(Network.class);
+ doReturn(mMockDefaultNetwork).when(mMockConnectManager).getActiveNetwork();
+ doReturn(REMOTE_ADDRESS).when(mMockDefaultNetwork).getByName(REMOTE_HOSTNAME);
+ doReturn(REMOTE_ADDRESS)
+ .when(mMockDefaultNetwork)
+ .getByName(REMOTE_ADDRESS.getHostAddress());
+
+ mMockSocketKeepalive = mock(SocketKeepalive.class);
+ doReturn(mMockSocketKeepalive)
+ .when(mMockConnectManager)
+ .createSocketKeepalive(
+ any(Network.class),
+ any(UdpEncapsulationSocket.class),
+ any(Inet4Address.class),
+ any(Inet4Address.class),
+ any(Executor.class),
+ any(SocketKeepalive.Callback.class));
+ doReturn(mMockConnectManager)
+ .when(mSpyContext)
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ }
+}