Skip to content

Commit 7be949a

Browse files
committed
add more tests
1 parent a123256 commit 7be949a

File tree

8 files changed

+213
-7
lines changed

8 files changed

+213
-7
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package net.zetetic.tests.support;
2+
3+
import net.sqlcipher.database.SQLiteDatabase;
4+
import net.sqlcipher.database.SQLiteException;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class CanThrowSQLiteExceptionTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
12+
try{
13+
throw new SQLiteException();
14+
}catch (SQLiteException ex){
15+
return true;
16+
}
17+
}
18+
19+
@Override
20+
public String getName() {
21+
return "SQLiteException Test";
22+
}
23+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package net.zetetic.tests.support;
2+
3+
import net.sqlcipher.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class GetTypeFromCrossProcessCursorWrapperTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
database.execSQL("create table t1(a,b);");
12+
database.execSQL("insert into t1(a,b) values(?, ?);", new Object[]{"one for the money", "two for the show"});
13+
Cursor cursor = database.query("t1", new String[]{"a", "b"}, null, null, null, null, null);
14+
cursor.moveToFirst();
15+
int type_a = cursor.getType(0);
16+
int type_b = cursor.getType(1);
17+
cursor.close();
18+
database.close();
19+
return (type_a == Cursor.FIELD_TYPE_STRING) && (type_b == Cursor.FIELD_TYPE_STRING);
20+
}
21+
22+
@Override
23+
public String getName() {
24+
return "Get Type from CrossProcessCursorWrapper";
25+
}
26+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package net.zetetic.tests.support;
2+
3+
import android.database.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class LoopingCountQueryTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
int counter = 0;
12+
int iterations = 10;
13+
database.execSQL("create table t1(a);");
14+
database.execSQL("insert into t1(a) values (?)", new Object[]{"foo"});
15+
StringBuilder buffer = new StringBuilder();
16+
while(counter < iterations){
17+
Cursor cursor = database.rawQuery("select count(*) from t1", null);
18+
if(cursor != null){
19+
cursor.moveToFirst();
20+
buffer.append(cursor.getInt(0));
21+
cursor.close();
22+
}
23+
counter++;
24+
}
25+
return buffer.toString().length() > 0;
26+
}
27+
28+
@Override
29+
public String getName() {
30+
return "Looping Count Query Test";
31+
}
32+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package net.zetetic.tests.support;
2+
3+
import android.database.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class LoopingQueryTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
int counter = 0;
12+
int iterations = 1000;
13+
database.execSQL("create table t1(a);");
14+
database.execSQL("insert into t1(a) values (?)", new Object[]{"foo"});
15+
StringBuilder buffer = new StringBuilder();
16+
while(counter < iterations){
17+
Cursor cursor = database.rawQuery("select * from t1", null);
18+
if(cursor != null){
19+
cursor.moveToFirst();
20+
buffer.append(cursor.getString(0));
21+
cursor.close();
22+
}
23+
counter++;
24+
}
25+
return buffer.toString().length() > 0;
26+
}
27+
28+
@Override
29+
public String getName() {
30+
return "Looping Query Test";
31+
}
32+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package net.zetetic.tests.support;
2+
3+
import android.database.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class NullQueryResultTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
12+
database.execSQL("create table t1(a,b);");
13+
database.execSQL("insert into t1(a,b) values (?, ?)", new Object[]{"foo", null});
14+
database.execSQL("insert into t1(a,b) values (?, ?)", new Object[]{"bar", null});
15+
Cursor cursor = database.rawQuery("select a from t1", null);
16+
StringBuilder buffer = new StringBuilder();
17+
while(cursor.moveToNext()){
18+
buffer.append(cursor.getString(0));
19+
}
20+
cursor.close();
21+
return buffer.toString().length() > 0;
22+
}
23+
24+
@Override
25+
public String getName() {
26+
return "Null Query Test";
27+
}
28+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package net.zetetic.tests.support;
2+
3+
import android.util.Log;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.sqlcipher.database.SQLiteException;
6+
import net.zetetic.ZeteticApplication;
7+
import net.zetetic.tests.SQLCipherTest;
8+
9+
public class RawExecSQLExceptionTest extends SupportTest {
10+
11+
@Override
12+
public boolean execute(SQLiteDatabase database) {
13+
14+
try {
15+
database.rawExecSQL("select foo from bar");
16+
} catch (SQLiteException e) {
17+
Log.v(ZeteticApplication.TAG, "EXPECTED RESULT: DID throw SQLiteException", e);
18+
String message = e.getMessage();
19+
setMessage(message);
20+
if (!message.matches("no such table: bar")) {
21+
Log.e(ZeteticApplication.TAG, "NOT EXPECTED: INCORRECT exception message: " + message);
22+
return false;
23+
}
24+
return true;
25+
} catch (Exception e) {
26+
Log.e(ZeteticApplication.TAG, "NOT EXPECTED: DID throw other exception", e);
27+
return false;
28+
}
29+
30+
return false;
31+
}
32+
33+
@Override
34+
public String getName() {
35+
return "rawExecSQL Exception Test";
36+
}
37+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package net.zetetic.tests.support;
2+
3+
import android.database.Cursor;
4+
import net.sqlcipher.database.SQLiteDatabase;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class RawExecSQLTest extends SupportTest {
8+
@Override
9+
public boolean execute(SQLiteDatabase database) {
10+
11+
String actual = "";
12+
String value = "hey";
13+
database.rawExecSQL("create table t1(a)");
14+
database.execSQL("insert into t1(a) values (?)", new Object[]{value});
15+
Cursor result = database.rawQuery("select * from t1", new String[]{});
16+
if(result != null){
17+
result.moveToFirst();
18+
actual = result.getString(0);
19+
result.close();
20+
}
21+
return actual.equals(value);
22+
}
23+
24+
@Override
25+
public String getName() {
26+
return "rawExecSQL Test";
27+
}
28+
}

app/src/main/java/net/zetetic/tests/support/SupportSuiteRunner.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,19 @@ private List<SupportTest> getTestsToRun() {
126126
// TODO rewrite tests.add(new ClosedDatabaseTest());
127127
// TODO rewrite tests.add(new AttachDatabaseTest());
128128
// TODO rewrite tests.add(new CipherMigrateTest());
129-
/* tests.add(new GetTypeFromCrossProcessCursorWrapperTest());
130-
tests.add(new InvalidPasswordTest());
129+
tests.add(new GetTypeFromCrossProcessCursorWrapperTest());
130+
// TODO rewrite tests.add(new InvalidPasswordTest());
131131
tests.add(new NullQueryResultTest());
132-
tests.add(new CrossProcessCursorQueryTest());
133-
tests.add(new InterprocessBlobQueryTest());
132+
// TODO rewrite tests.add(new CrossProcessCursorQueryTest());
133+
// TODO rewrite tests.add(new InterprocessBlobQueryTest());
134134
tests.add(new LoopingQueryTest());
135135
tests.add(new LoopingCountQueryTest());
136-
tests.add(new AttachNewDatabaseTest());
137-
tests.add(new AttachExistingDatabaseTest());
136+
// TODO rewrite tests.add(new AttachNewDatabaseTest());
137+
// TODO rewrite tests.add(new AttachExistingDatabaseTest());
138138
tests.add(new CanThrowSQLiteExceptionTest());
139139
tests.add(new RawExecSQLTest());
140140
tests.add(new RawExecSQLExceptionTest());
141-
tests.add(new CompiledSQLUpdateTest());
141+
/* tests.add(new CompiledSQLUpdateTest());
142142
tests.add(new AES128CipherTest());
143143
tests.add(new MigrateDatabaseFrom1xFormatToCurrentFormat());
144144
tests.add(new StatusMemoryUsedTest());

0 commit comments

Comments
 (0)