Snap for 9885989 from a3f1109499632c1afa177be0cda7656130c950d7 to mainline-art-release
Change-Id: I123fa178dca5a9a1518c82ce40aacbd17603e671
diff --git a/service/java/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponse.java b/service/java/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponse.java
index b5d691d..df088b0 100644
--- a/service/java/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponse.java
+++ b/service/java/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponse.java
@@ -87,11 +87,13 @@
boolean success =
(mAuthResponseCode == RESPONSE_CODE_REQUEST_SUCCESSFUL)
&& (mGetImsiPseudonymResponseCode == RESPONSE_CODE_REQUEST_SUCCESSFUL);
- if (success && (mImsiPseudonym != null) && (mImsiPseudonym.length() <= EAP_MTU)
- && (mRefreshInterval > 0)) {
- pseudonymInfo =
- new PseudonymInfo(mImsiPseudonym, imsi,
- mRefreshInterval * HOUR_IN_MILLIS);
+ if (success && (mImsiPseudonym != null) && (mImsiPseudonym.length() <= EAP_MTU)) {
+ if (mRefreshInterval <= 0) {
+ pseudonymInfo = new PseudonymInfo(mImsiPseudonym, imsi);
+ } else {
+ pseudonymInfo = new PseudonymInfo(mImsiPseudonym, imsi,
+ mRefreshInterval * HOUR_IN_MILLIS);
+ }
}
return Optional.ofNullable(pseudonymInfo);
}
diff --git a/service/tests/wifitests/src/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponseTest.java b/service/tests/wifitests/src/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponseTest.java
index ea9479e..843a0b4 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponseTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/entitlement/response/GetImsiPseudonymResponseTest.java
@@ -34,6 +34,8 @@
import org.json.JSONObject;
import org.junit.Test;
+import java.time.Duration;
+
/**
* Unit tests for {@link ChallengeResponse}.
*/
@@ -42,11 +44,12 @@
private static final String AKA_TOKEN = "aka_token";
private static final String IMSI_PSEUDONYM = "imsi_pseudonym";
private static final int REFRESH_INTERVAL = 48;
+ private static final long DEFAULT_PSEUDONYM_TTL_IN_MILLIS = Duration.ofDays(2).toMillis();
private static final int INVALID_MESSAGE_ID = -1;
private static final String IMSI = "imsi";
@Test
- public void responseBodyCorrect() throws JSONException {
+ public void responseBodyCorrectWithRefreshInterval() throws JSONException {
JSONObject body1 = (new JSONObject()).put(Response.JSON_KEY_MESSAGE_ID,
MESSAGE_ID_3GPP_AUTHENTICATION)
.put(Response.JSON_KEY_RESPONSE_CODE, Response.RESPONSE_CODE_REQUEST_SUCCESSFUL)
@@ -70,6 +73,29 @@
}
@Test
+ public void responseBodyCorrectWithoutRefreshInterval() throws JSONException {
+ JSONObject body1 = (new JSONObject()).put(Response.JSON_KEY_MESSAGE_ID,
+ MESSAGE_ID_3GPP_AUTHENTICATION)
+ .put(Response.JSON_KEY_RESPONSE_CODE, Response.RESPONSE_CODE_REQUEST_SUCCESSFUL)
+ .put(GetImsiPseudonymResponse.JSON_KEY_AKA_TOKEN, AKA_TOKEN);
+ JSONObject body2 = (new JSONObject()).put(Response.JSON_KEY_MESSAGE_ID,
+ MESSAGE_ID_GET_IMSI_PSEUDONYM)
+ .put(Response.JSON_KEY_RESPONSE_CODE, Response.RESPONSE_CODE_REQUEST_SUCCESSFUL)
+ .put(GetImsiPseudonymResponse.JSON_KEY_IMSI_PSEUDONYM, IMSI_PSEUDONYM);
+ JSONArray bodyArray = (new JSONArray()).put(body1).put(body2);
+
+ GetImsiPseudonymResponse response = new GetImsiPseudonymResponse(bodyArray.toString());
+ assertEquals(Response.RESPONSE_CODE_REQUEST_SUCCESSFUL, response.getAuthResponseCode());
+ assertEquals(AKA_TOKEN, response.getAkaToken());
+ assertEquals(Response.RESPONSE_CODE_REQUEST_SUCCESSFUL,
+ response.getGetImsiPseudonymResponseCode());
+ PseudonymInfo pseudonymInfo = response.toPseudonymInfo(IMSI).get();
+ assertEquals(IMSI_PSEUDONYM, pseudonymInfo.getPseudonym());
+ assertEquals(DEFAULT_PSEUDONYM_TTL_IN_MILLIS, pseudonymInfo.getTtlInMillis());
+ assertEquals(IMSI, pseudonymInfo.getImsi());
+ }
+
+ @Test
public void responseBodyNotJsonArray() {
GetImsiPseudonymResponse response = new GetImsiPseudonymResponse("wrongbody");
assertEquals(0, response.getAuthResponseCode());