diff options
author | Ecco Park <eccopark@google.com> | 2018-11-12 10:32:40 -0800 |
---|---|---|
committer | Ecco Park <eccopark@google.com> | 2018-11-12 15:56:02 -0800 |
commit | fd6133ab6fdd798a225347069454de3ccc3ff81f (patch) | |
tree | e6e5454b6a32a3b450ecd01da52f008a1122cef1 /tests/wifitests/src/com/android/server | |
parent | c6571a3424320c0ab3bcfbb0ab92439ed5adba64 (diff) | |
download | android_frameworks_opt_net_wifi-fd6133ab6fdd798a225347069454de3ccc3ff81f.tar.gz android_frameworks_opt_net_wifi-fd6133ab6fdd798a225347069454de3ccc3ff81f.tar.bz2 android_frameworks_opt_net_wifi-fd6133ab6fdd798a225347069454de3ccc3ff81f.zip |
passpoint-r2: Validate PPS MO when parsing PPS-MO XML.
It needs to be validated based on the schema of PPS MO defined in
Hostpot 2.0 release 2 specification.
Bug: 118506846
Test: ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: live test with Passpoint R2 service provider AP.
Change-Id: Iaf2c8d96633ddf1e2408c1f9ccfcf5faa8fe7b7a
Signed-off-by: Ecco Park <eccopark@google.com>
Diffstat (limited to 'tests/wifitests/src/com/android/server')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProvisionerTest.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProvisionerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProvisionerTest.java index e0f35009c..bf346138b 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProvisionerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointProvisionerTest.java @@ -64,6 +64,7 @@ import com.android.server.wifi.hotspot2.soap.PostDevDataResponse; import com.android.server.wifi.hotspot2.soap.RedirectListener; import com.android.server.wifi.hotspot2.soap.SppConstants; import com.android.server.wifi.hotspot2.soap.SppResponseMessage; +import com.android.server.wifi.hotspot2.soap.UpdateResponseMessage; import com.android.server.wifi.hotspot2.soap.command.BrowserUri; import com.android.server.wifi.hotspot2.soap.command.PpsMoData; import com.android.server.wifi.hotspot2.soap.command.SppCommand; @@ -158,13 +159,15 @@ public class PasspointProvisionerTest { @Mock PackageManager mPackageManager; @Mock PasspointConfiguration mPasspointConfiguration; @Mock X509Certificate mX509Certificate; + @Mock SoapSerializationEnvelope mSoapSerializationEnvelope; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mTestUrl = new URL(TEST_REDIRECT_URL); mSession = ExtendedMockito.mockitoSession().mockStatic( - RedirectListener.class).mockStatic(PpsMoParser.class).startMocking(); + RedirectListener.class).mockStatic(PpsMoParser.class).mockStatic( + UpdateResponseMessage.class).startMocking(); when(RedirectListener.createInstance(mLooper.getLooper())).thenReturn( mRedirectListener); @@ -244,6 +247,10 @@ public class PasspointProvisionerTest { when(mPasspointConfiguration.getSubscriptionUpdate()).thenReturn(updateParameter); when(mOsuServerConnection.retrieveTrustRootCerts(anyMap())).thenReturn(true); lenient().when(PpsMoParser.parseMoText(isNull())).thenReturn(mPasspointConfiguration); + + when(mPasspointConfiguration.validateForR2()).thenReturn(true); + lenient().when(UpdateResponseMessage.serializeToSoapEnvelope(any(String.class), + any(Boolean.class))).thenReturn(mSoapSerializationEnvelope); } @After @@ -340,6 +347,9 @@ public class PasspointProvisionerTest { mSppResponseMessage); mLooper.dispatchAll(); } else if (step == STEP_WAIT_FOR_THIRD_SOAP_RESPONSE) { + ExtendedMockito.verify( + () -> UpdateResponseMessage.serializeToSoapEnvelope(eq(TEST_SESSION_ID), + eq(false))); verify(mCallback).onProvisioningStatus( ProvisioningCallback.OSU_STATUS_THIRD_SOAP_EXCHANGE); @@ -712,6 +722,20 @@ public class PasspointProvisionerTest { } /** + * Verifies that the {@link UpdateResponseMessage#serializeToSoapEnvelope(String, boolean)} is + * invoked with right arguments when a PPS-MO xml received from server is not valid in terms of + * schema of PPS MO. + */ + @Test + public void verifyHandlingInvalidPpsMoForSoapResponse() throws RemoteException { + when(mPasspointConfiguration.validateForR2()).thenReturn(false); + stopAfterStep(STEP_WAIT_FOR_SECOND_SOAP_RESPONSE); + + ExtendedMockito.verify( + () -> UpdateResponseMessage.serializeToSoapEnvelope(eq(TEST_SESSION_ID), eq(true))); + } + + /** * Verifies that the right provisioning callbacks are invoked when failing to call {@link * OsuServerConnection#retrieveTrustRootCerts(Map)}. */ |