aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpedroGitt <pedro.contreiras@amdocs.com>2016-10-27 18:14:04 +0200
committerpedroGitt <pedro.contreiras@amdocs.com>2016-10-27 18:14:04 +0200
commit1f1cbf2b3edff5b2f358e9170350566a564f80f4 (patch)
tree99e453df9e571bab129145cf46c0e3b9a41706ab
parent6348a45515943f5ec2347c6a5d7b9dd613ddb163 (diff)
Add new tests for multiple creations of account and outbound group sessions: check random generation function in JNI works properly
-rw-r--r--java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmAccountTest.java82
-rw-r--r--java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java86
2 files changed, 156 insertions, 12 deletions
diff --git a/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmAccountTest.java b/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmAccountTest.java
index 838fba2..a5cde5e 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmAccountTest.java
+++ b/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmAccountTest.java
@@ -41,6 +41,7 @@ import java.io.ObjectOutputStream;
import java.util.Iterator;
import static android.support.test.InstrumentationRegistry.getInstrumentation;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -238,10 +239,10 @@ public class OlmAccountTest {
@Test
public void test13Serialization() {
- FileOutputStream fileOutput = null;
- ObjectOutputStream objectOutput = null;
+ FileOutputStream fileOutput;
+ ObjectOutputStream objectOutput;
OlmAccount accountRef = null;
- OlmAccount accountDeserial = null;
+ OlmAccount accountDeserial;
try {
accountRef = new OlmAccount();
@@ -348,11 +349,82 @@ public class OlmAccountTest {
} catch (OlmException e) {
assertTrue(e.getMessage(),false);
}
- String clearMsg = null;
- String signedMsg = olmAccount.signMessage(clearMsg);
+ String signedMsg = olmAccount.signMessage(null);
assertNull(signedMsg);
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);
+ }
+ }
}
diff --git a/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java b/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java
index 5bd6838..eca070f 100644
--- a/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java
+++ b/java/android/OlmLibSdk/olm-sdk/src/androidTest/java/org/matrix/olm/OlmGroupSessionTest.java
@@ -51,7 +51,7 @@ public class OlmGroupSessionTest {
private static OlmOutboundGroupSession mAliceOutboundGroupSession;
private static String mAliceSessionIdentifier;
private static long mAliceMessageIndex;
- public static final String CLEAR_MESSAGE1 = "Hello!";
+ private static final String CLEAR_MESSAGE1 = "Hello!";
private static String mAliceToBobMessage;
private static OlmInboundGroupSession mBobInboundGroupSession;
private static String mAliceOutboundSessionKey;
@@ -172,7 +172,7 @@ public class OlmGroupSessionTest {
@Test
public void test14SerializeOutboundSession() {
OlmOutboundGroupSession outboundGroupSessionRef=null;
- OlmOutboundGroupSession outboundGroupSessionSerial=null;
+ OlmOutboundGroupSession outboundGroupSessionSerial;
// create one OUTBOUND GROUP SESSION
try {
@@ -238,14 +238,13 @@ public class OlmGroupSessionTest {
catch (Exception e) {
Log.e(LOG_TAG, "## test03SessionSerialization(): Exception Msg==" + e.getMessage());
}
-
}
@Test
public void test15SerializeInboundSession() {
OlmOutboundGroupSession aliceOutboundGroupSession=null;
OlmInboundGroupSession bobInboundGroupSessionRef=null;
- OlmInboundGroupSession bobInboundGroupSessionSerial=null;
+ OlmInboundGroupSession bobInboundGroupSessionSerial;
// alice creates OUTBOUND GROUP SESSION
try {
@@ -306,13 +305,86 @@ public class OlmGroupSessionTest {
catch (IOException e) {
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) {
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);
+ }
}
}