package mobisocial.musubi.encoding;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import mobisocial.crypto.IBHashedIdentity.Authority;
import mobisocial.crypto.IBIdentity;
import mobisocial.musubi.model.helpers.IdentitiesManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteCursorDriver;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteQuery;
import android.test.AndroidTestCase;
import android.util.Log;
public abstract class TestBase extends AndroidTestCase {
protected Random r = new Random();
private final HashSet<String> usedNames = new HashSet<String>();
protected String randomUniquePrincipal() {
for(;;) {
int length = r.nextInt(16);
StringBuilder sb = new StringBuilder();
for(int i = 0; i < length; ++i) {
char c = (char) ('a' + r.nextInt('z' - 'a'));
sb.append(c);
}
sb.append("@gmail.com");
String result = sb.toString();
if(usedNames.contains(result))
continue;
usedNames.add(result);
return result;
}
}
protected IBIdentity randomIBIdentity() {
String principal = randomUniquePrincipal();
long temporalFrame = IdentitiesManager.computeTemporalFrameFromPrincipal(principal);
return new IBIdentity(Authority.Email, principal, temporalFrame);
}
void assertMessagesEqual(OutgoingMessage om, IncomingMessage im) {
assertTrue(Arrays.equals(om.data_, im.data_));
assertEquals(om.recipients_.length, im.recipients_.length);
for(int i = 0; i < im.recipients_.length; ++i) {
assertTrue(Arrays.equals(im.recipients_[i].principalHash_, om.recipients_[i].principalHash_));
assertEquals(im.recipients_[i].type_, om.recipients_[i].type_);
}
assertTrue(Arrays.equals(om.fromIdentity_.principalHash_, im.fromIdentity_.principalHash_));
assertEquals(im.fromIdentity_.type_, om.fromIdentity_.type_);
}
public class DebugSQLiteCursorFactory implements CursorFactory {
private boolean debugQueries = true;
public DebugSQLiteCursorFactory() {
Log.d("gggggg", "DEBUGDEBUGDEBUG");
debugQueries = true;
}
public DebugSQLiteCursorFactory(boolean debugQueries) {
this.debugQueries = debugQueries;
}
public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
String editTable, SQLiteQuery query) {
Log.d("KAAAAAAAAAAAAATE", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
if (debugQueries) {
Log.d("SQL", query.toString());
}
return new SQLiteCursor(db, masterQuery, editTable, query);
}
}
}