Add new tests for multiple creations of account and outbound group sessions: check random generation function in JNI works properly
This commit is contained in:
parent
6348a45515
commit
1f1cbf2b3e
2 changed files with 156 additions and 12 deletions
|
@ -41,6 +41,7 @@ import java.io.ObjectOutputStream;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
import static android.support.test.InstrumentationRegistry.getInstrumentation;
|
import static android.support.test.InstrumentationRegistry.getInstrumentation;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
@ -238,10 +239,10 @@ public class OlmAccountTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test13Serialization() {
|
public void test13Serialization() {
|
||||||
FileOutputStream fileOutput = null;
|
FileOutputStream fileOutput;
|
||||||
ObjectOutputStream objectOutput = null;
|
ObjectOutputStream objectOutput;
|
||||||
OlmAccount accountRef = null;
|
OlmAccount accountRef = null;
|
||||||
OlmAccount accountDeserial = null;
|
OlmAccount accountDeserial;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
accountRef = new OlmAccount();
|
accountRef = new OlmAccount();
|
||||||
|
@ -348,11 +349,82 @@ public class OlmAccountTest {
|
||||||
} catch (OlmException e) {
|
} catch (OlmException e) {
|
||||||
assertTrue(e.getMessage(),false);
|
assertTrue(e.getMessage(),false);
|
||||||
}
|
}
|
||||||
String clearMsg = null;
|
String signedMsg = olmAccount.signMessage(null);
|
||||||
String signedMsg = olmAccount.signMessage(clearMsg);
|
|
||||||
assertNull(signedMsg);
|
assertNull(signedMsg);
|
||||||
|
|
||||||
olmAccount.releaseAccount();
|
olmAccount.releaseAccount();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create multiple accounts and check that identity keys are still different.
|
||||||
|
* This test validates random series are provide enough random values.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void test17MultipleAccountCreation() {
|
||||||
|
try {
|
||||||
|
OlmAccount account1 = new OlmAccount();
|
||||||
|
OlmAccount account2 = new OlmAccount();
|
||||||
|
OlmAccount account3 = new OlmAccount();
|
||||||
|
OlmAccount account4 = new OlmAccount();
|
||||||
|
OlmAccount account5 = new OlmAccount();
|
||||||
|
OlmAccount account6 = new OlmAccount();
|
||||||
|
OlmAccount account7 = new OlmAccount();
|
||||||
|
OlmAccount account8 = new OlmAccount();
|
||||||
|
OlmAccount account9 = new OlmAccount();
|
||||||
|
OlmAccount account10 = new OlmAccount();
|
||||||
|
|
||||||
|
JSONObject identityKeysJson1 = account1.identityKeys();
|
||||||
|
JSONObject identityKeysJson2 = account2.identityKeys();
|
||||||
|
JSONObject identityKeysJson3 = account3.identityKeys();
|
||||||
|
JSONObject identityKeysJson4 = account4.identityKeys();
|
||||||
|
JSONObject identityKeysJson5 = account5.identityKeys();
|
||||||
|
JSONObject identityKeysJson6 = account6.identityKeys();
|
||||||
|
JSONObject identityKeysJson7 = account7.identityKeys();
|
||||||
|
JSONObject identityKeysJson8 = account8.identityKeys();
|
||||||
|
JSONObject identityKeysJson9 = account9.identityKeys();
|
||||||
|
JSONObject identityKeysJson10 = account10.identityKeys();
|
||||||
|
|
||||||
|
String identityKey1 = TestHelper.getIdentityKey(identityKeysJson1);
|
||||||
|
String identityKey2 = TestHelper.getIdentityKey(identityKeysJson2);
|
||||||
|
assertFalse(identityKey1.equals(identityKey2));
|
||||||
|
|
||||||
|
String identityKey3 = TestHelper.getIdentityKey(identityKeysJson3);
|
||||||
|
assertFalse(identityKey2.equals(identityKey3));
|
||||||
|
|
||||||
|
String identityKey4 = TestHelper.getIdentityKey(identityKeysJson4);
|
||||||
|
assertFalse(identityKey3.equals(identityKey4));
|
||||||
|
|
||||||
|
String identityKey5 = TestHelper.getIdentityKey(identityKeysJson5);
|
||||||
|
assertFalse(identityKey4.equals(identityKey5));
|
||||||
|
|
||||||
|
String identityKey6 = TestHelper.getIdentityKey(identityKeysJson6);
|
||||||
|
assertFalse(identityKey5.equals(identityKey6));
|
||||||
|
|
||||||
|
String identityKey7 = TestHelper.getIdentityKey(identityKeysJson7);
|
||||||
|
assertFalse(identityKey6.equals(identityKey7));
|
||||||
|
|
||||||
|
String identityKey8 = TestHelper.getIdentityKey(identityKeysJson8);
|
||||||
|
assertFalse(identityKey7.equals(identityKey8));
|
||||||
|
|
||||||
|
String identityKey9 = TestHelper.getIdentityKey(identityKeysJson9);
|
||||||
|
assertFalse(identityKey8.equals(identityKey9));
|
||||||
|
|
||||||
|
String identityKey10 = TestHelper.getIdentityKey(identityKeysJson10);
|
||||||
|
assertFalse(identityKey9.equals(identityKey10));
|
||||||
|
|
||||||
|
account1.releaseAccount();
|
||||||
|
account2.releaseAccount();
|
||||||
|
account3.releaseAccount();
|
||||||
|
account4.releaseAccount();
|
||||||
|
account5.releaseAccount();
|
||||||
|
account6.releaseAccount();
|
||||||
|
account7.releaseAccount();
|
||||||
|
account8.releaseAccount();
|
||||||
|
account9.releaseAccount();
|
||||||
|
account10.releaseAccount();
|
||||||
|
|
||||||
|
} catch (OlmException e) {
|
||||||
|
assertTrue(e.getMessage(),false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class OlmGroupSessionTest {
|
||||||
private static OlmOutboundGroupSession mAliceOutboundGroupSession;
|
private static OlmOutboundGroupSession mAliceOutboundGroupSession;
|
||||||
private static String mAliceSessionIdentifier;
|
private static String mAliceSessionIdentifier;
|
||||||
private static long mAliceMessageIndex;
|
private static long mAliceMessageIndex;
|
||||||
public static final String CLEAR_MESSAGE1 = "Hello!";
|
private static final String CLEAR_MESSAGE1 = "Hello!";
|
||||||
private static String mAliceToBobMessage;
|
private static String mAliceToBobMessage;
|
||||||
private static OlmInboundGroupSession mBobInboundGroupSession;
|
private static OlmInboundGroupSession mBobInboundGroupSession;
|
||||||
private static String mAliceOutboundSessionKey;
|
private static String mAliceOutboundSessionKey;
|
||||||
|
@ -172,7 +172,7 @@ public class OlmGroupSessionTest {
|
||||||
@Test
|
@Test
|
||||||
public void test14SerializeOutboundSession() {
|
public void test14SerializeOutboundSession() {
|
||||||
OlmOutboundGroupSession outboundGroupSessionRef=null;
|
OlmOutboundGroupSession outboundGroupSessionRef=null;
|
||||||
OlmOutboundGroupSession outboundGroupSessionSerial=null;
|
OlmOutboundGroupSession outboundGroupSessionSerial;
|
||||||
|
|
||||||
// create one OUTBOUND GROUP SESSION
|
// create one OUTBOUND GROUP SESSION
|
||||||
try {
|
try {
|
||||||
|
@ -238,14 +238,13 @@ public class OlmGroupSessionTest {
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception Msg==" + e.getMessage());
|
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception Msg==" + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test15SerializeInboundSession() {
|
public void test15SerializeInboundSession() {
|
||||||
OlmOutboundGroupSession aliceOutboundGroupSession=null;
|
OlmOutboundGroupSession aliceOutboundGroupSession=null;
|
||||||
OlmInboundGroupSession bobInboundGroupSessionRef=null;
|
OlmInboundGroupSession bobInboundGroupSessionRef=null;
|
||||||
OlmInboundGroupSession bobInboundGroupSessionSerial=null;
|
OlmInboundGroupSession bobInboundGroupSessionSerial;
|
||||||
|
|
||||||
// alice creates OUTBOUND GROUP SESSION
|
// alice creates OUTBOUND GROUP SESSION
|
||||||
try {
|
try {
|
||||||
|
@ -306,13 +305,86 @@ public class OlmGroupSessionTest {
|
||||||
catch (IOException e) {
|
catch (IOException e) {
|
||||||
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception IOException Msg==" + e.getMessage());
|
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception IOException Msg==" + e.getMessage());
|
||||||
}
|
}
|
||||||
/*catch (OlmException e) {
|
|
||||||
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception OlmException Msg==" + e.getMessage());
|
|
||||||
}*/
|
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception Msg==" + e.getMessage());
|
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception Msg==" + e.getMessage());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create multiple outbound group sessions and check that session Keys are different.
|
||||||
|
* This test validates random series are provide enough random values.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void test16MultipleOutboundSession() {
|
||||||
|
OlmOutboundGroupSession outboundGroupSession1;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession2;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession3;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession4;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession5;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession6;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession7;
|
||||||
|
OlmOutboundGroupSession outboundGroupSession8;
|
||||||
|
|
||||||
|
try {
|
||||||
|
outboundGroupSession1 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession2 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession3 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession4 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession5 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession6 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession7 = new OlmOutboundGroupSession();
|
||||||
|
outboundGroupSession8 = new OlmOutboundGroupSession();
|
||||||
|
|
||||||
|
// get the session key from the outbound group sessions
|
||||||
|
String sessionKey1 = outboundGroupSession1.sessionKey();
|
||||||
|
String sessionKey2 = outboundGroupSession2.sessionKey();
|
||||||
|
assertFalse(sessionKey1.equals(sessionKey2));
|
||||||
|
|
||||||
|
String sessionKey3 = outboundGroupSession3.sessionKey();
|
||||||
|
assertFalse(sessionKey2.equals(sessionKey3));
|
||||||
|
|
||||||
|
String sessionKey4 = outboundGroupSession4.sessionKey();
|
||||||
|
assertFalse(sessionKey3.equals(sessionKey4));
|
||||||
|
|
||||||
|
String sessionKey5 = outboundGroupSession5.sessionKey();
|
||||||
|
assertFalse(sessionKey4.equals(sessionKey5));
|
||||||
|
|
||||||
|
String sessionKey6 = outboundGroupSession6.sessionKey();
|
||||||
|
assertFalse(sessionKey5.equals(sessionKey6));
|
||||||
|
|
||||||
|
String sessionKey7 = outboundGroupSession7.sessionKey();
|
||||||
|
assertFalse(sessionKey6.equals(sessionKey7));
|
||||||
|
|
||||||
|
String sessionKey8 = outboundGroupSession8.sessionKey();
|
||||||
|
assertFalse(sessionKey7.equals(sessionKey8));
|
||||||
|
|
||||||
|
// get the session IDs from the outbound group sessions
|
||||||
|
String sessionId1 = outboundGroupSession1.sessionIdentifier();
|
||||||
|
String sessionId2 = outboundGroupSession2.sessionIdentifier();
|
||||||
|
assertFalse(sessionId1.equals(sessionId2));
|
||||||
|
|
||||||
|
String sessionId3 = outboundGroupSession3.sessionKey();
|
||||||
|
assertFalse(sessionId2.equals(sessionId3));
|
||||||
|
|
||||||
|
String sessionId4 = outboundGroupSession4.sessionKey();
|
||||||
|
assertFalse(sessionId3.equals(sessionId4));
|
||||||
|
|
||||||
|
String sessionId5 = outboundGroupSession5.sessionKey();
|
||||||
|
assertFalse(sessionId4.equals(sessionId5));
|
||||||
|
|
||||||
|
String sessionId6 = outboundGroupSession6.sessionKey();
|
||||||
|
assertFalse(sessionId5.equals(sessionId6));
|
||||||
|
|
||||||
|
String sessionId7 = outboundGroupSession7.sessionKey();
|
||||||
|
assertFalse(sessionId6.equals(sessionId7));
|
||||||
|
|
||||||
|
String sessionId8 = outboundGroupSession8.sessionKey();
|
||||||
|
assertFalse(sessionId7.equals(sessionId8));
|
||||||
|
|
||||||
|
|
||||||
|
} catch (OlmException e) {
|
||||||
|
assertTrue("Exception in OlmOutboundGroupSession, Exception code=" + e.getExceptionCode(), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue