/** * Clear the session data synchronously. * * @param context the context */ public void clear(final Context context) { clear(context, null); }
private void clearData() { // required else the clear won't be done mIsAliveSession = true; clear(context, new SimpleApiCallback<Void>() { @Override public void onSuccess(Void info) { if (null != callback) { callback.onSuccess(null); } } }); }
/** * Clear all provided sessions * * @param sessions the sessions to clear */ public void clearAllSessions(List<MXSession> sessions) { final Context context = InstrumentationRegistry.getContext(); for (MXSession session : sessions) { session.clear(context); } }
@Override public void onSuccess(Void info) { Log.d(LOG_TAG, "## deactivateAccount() : succeed -> clearing the application data "); // Clear crypto data // For security and because it will be no more useful as we will get a new device id // on the next log in enableCrypto(false, null); clear(context, new SimpleApiCallback<Void>(callback) { @Override public void onSuccess(Void info) { if (null != callback) { callback.onSuccess(null); } } }); } });
@Test public void test02_testOneTimeKeys() throws Exception { Context context = InstrumentationRegistry.getContext(); final SessionTestParams testParams = new SessionTestParams(true); final MXSession bobSession = mTestHelper.createAccount(TestConstants.USER_BOB, testParams); final Map<String, Object> results = new HashMap<>(); final Map<String, Object> otks = new HashMap<>(); otks.put("curve25519:AAAABQ", "ueuHES/Q0P1MZ4J3IUpC8iQTkgQNX66ZpxVLUaTDuB8"); otks.put("curve25519:AAAABA", "PmyaaB68Any+za9CuZXzFsQZW31s/TW6XbAB9akEpQs"); CountDownLatch lock1 = new CountDownLatch(1); bobSession.getCryptoRestClient().uploadKeys(null, otks, "dev1", new TestApiCallback<KeysUploadResponse>(lock1) { @Override public void onSuccess(KeysUploadResponse keysUploadResponse) { results.put("keysUploadResponse", keysUploadResponse); super.onSuccess(keysUploadResponse); } }); mTestHelper.await(lock1); KeysUploadResponse keysUploadResponse = (KeysUploadResponse) results.get("keysUploadResponse"); Assert.assertNotNull(keysUploadResponse); Assert.assertNotNull(keysUploadResponse.oneTimeKeyCounts); Assert.assertEquals(1, keysUploadResponse.oneTimeKeyCounts.size()); Assert.assertEquals(2, keysUploadResponse.oneTimeKeyCountsForAlgorithm("curve25519")); Assert.assertEquals(0, keysUploadResponse.oneTimeKeyCountsForAlgorithm("deded")); bobSession.clear(context); }
@Test public void test01_testCryptoNoDeviceId() throws Exception { Log.e(LOG_TAG, "test01_testCryptoNoDeviceId"); Context context = InstrumentationRegistry.getContext(); final Map<String, Object> results = new HashMap<>(); MXSession bobSession = mTestHelper.createAccount(TestConstants.USER_BOB, mCryptoTestHelper.getDefaultSessionParams()); Assert.assertNull(bobSession.getCrypto()); bobSession.getCredentials().deviceId = null; CountDownLatch lock1 = new CountDownLatch(1); bobSession.enableCrypto(true, new TestApiCallback<Void>(lock1) { @Override public void onSuccess(Void info) { results.put("enableCrypto", "enableCrypto"); super.onSuccess(info); } }); mTestHelper.await(lock1); Assert.assertTrue(results.containsKey("enableCrypto")); Assert.assertNotNull(bobSession.getCrypto()); Assert.assertNotNull(bobSession.getCredentials().deviceId); bobSession.clear(context); }
Assert.assertEquals("dev1", bobDevice2.deviceId); Assert.assertEquals(bobDevice2.userId, bobSession.getMyUserId()); bobSession.clear(context);
bobSession.clear(context);
aliceSession2.clear(context);
aliceSession2.clear(context);