Skip to content

Commit 5b2e597

Browse files
committed
add more tests
1 parent 7be949a commit 5b2e597

File tree

5 files changed

+126
-10
lines changed

5 files changed

+126
-10
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package net.zetetic.tests.support;
2+
3+
import net.sqlcipher.database.SQLiteDatabase;
4+
import net.zetetic.tests.SQLCipherTest;
5+
6+
public class AutoVacuumOverReadTest extends SupportTest {
7+
@Override
8+
public boolean execute(SQLiteDatabase database) {
9+
10+
database.execSQL("BEGIN EXCLUSIVE");
11+
12+
String createTableMessages = "create table Message (_id integer primary key autoincrement, syncServerId text, syncServerTimeStamp integer, displayName text, timeStamp integer, subject text, flagRead integer, flagLoaded integer, flagFavorite integer, flagAttachment integer, flags integer, clientId integer, messageId text, mailboxKey integer, accountKey integer, fromList text, toList text, ccList text, bccList text, replyToList text, meetingInfo text);";
13+
String createTableMessagesUpdates = "create table Message_Updates (_id integer unique, syncServerId text, syncServerTimeStamp integer, displayName text, timeStamp integer, subject text, flagRead integer, flagLoaded integer, flagFavorite integer, flagAttachment integer, flags integer, clientId integer, messageId text, mailboxKey integer, accountKey integer, fromList text, toList text, ccList text, bccList text, replyToList text, meetingInfo text);";
14+
String createTableMessageDeletes = "create table Message_Deletes (_id integer unique, syncServerId text, syncServerTimeStamp integer, displayName text, timeStamp integer, subject text, flagRead integer, flagLoaded integer, flagFavorite integer, flagAttachment integer, flags integer, clientId integer, messageId text, mailboxKey integer, accountKey integer, fromList text, toList text, ccList text, bccList text, replyToList text, meetingInfo text);";
15+
16+
database.execSQL(createTableMessageDeletes);
17+
database.execSQL(createTableMessagesUpdates);
18+
database.execSQL(createTableMessages);
19+
20+
database.execSQL("COMMIT TRANSACTION");
21+
22+
return true;
23+
}
24+
25+
@Override
26+
public String getName() {
27+
return "Autovacuum Over Read Test";
28+
}
29+
}
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.SQLiteStatement;
5+
import net.zetetic.tests.SQLCipherTest;
6+
7+
public class CompiledSQLUpdateTest extends SupportTest {
8+
@Override
9+
public boolean execute(SQLiteDatabase database) {
10+
11+
database.rawExecSQL("create table ut1(a text, b integer)");
12+
database.execSQL("insert into ut1(a, b) values (?,?)", new Object[]{"s1", new Integer(100)});
13+
14+
SQLiteStatement st = database.compileStatement("update ut1 set b = 101 where b = 100");
15+
long recs = st.executeUpdateDelete();
16+
return (recs == 1);
17+
}
18+
19+
@Override
20+
public String getName() {
21+
return "Compiled SQL update test";
22+
}
23+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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 FullTextSearchTest extends SupportTest {
8+
9+
@Override
10+
public boolean execute(SQLiteDatabase database) {
11+
12+
database.execSQL("CREATE VIRTUAL TABLE sites USING fts4(domain, url, title, meta_keys, body)");
13+
database.execSQL("CREATE TABLE keywords (keyword TEXT)");
14+
15+
database.execSQL("insert into sites(domain, url, title, meta_keys, body) values(?, ?, ?, ?, ?)",
16+
new Object[]{"sqlcipher.net", "http://sqlcipher.net",
17+
"Home - SQLCipher - Open Source Full Database Encryption for SQLite",
18+
"sqlcipher, sqlite", ""});
19+
database.execSQL("insert into keywords(keyword) values(?)", new Object[]{"SQLCipher"});
20+
database.execSQL("insert into keywords(keyword) values(?)", new Object[]{"SQLite"});
21+
22+
String query = "SELECT keyword FROM keywords INNER JOIN sites ON sites.title MATCH keywords.keyword";
23+
Cursor result = database.rawQuery(query, new String[]{});
24+
int resultCount = 0;
25+
while (result.moveToNext()){
26+
String row = result.getString(0);
27+
if(row != null){
28+
resultCount++;
29+
}
30+
}
31+
result.close();
32+
return resultCount > 0;
33+
}
34+
35+
@Override
36+
public String getName() {
37+
return "Full Text Search Test";
38+
}
39+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package net.zetetic.tests.support;
2+
3+
import net.sqlcipher.database.SQLiteDatabase;
4+
import net.zetetic.tests.SQLCipherTest;
5+
6+
public class StatusMemoryUsedTest extends SupportTest {
7+
8+
public static final int SQLITE_STATUS_MEMORY_USED = 0;
9+
10+
@Override
11+
public boolean execute(SQLiteDatabase database) {
12+
13+
int originalMemory = database.status(SQLITE_STATUS_MEMORY_USED, false);
14+
database.execSQL("create table t1(a,b)");
15+
database.execSQL("insert into t1(a,b) values(?, ?)",
16+
new Object[]{"one for the money", "two for the show"});
17+
int currentMemory = database.status(SQLITE_STATUS_MEMORY_USED, false);
18+
return originalMemory != currentMemory;
19+
}
20+
21+
@Override
22+
public String getName() {
23+
return "Status Memory Used Test";
24+
}
25+
}

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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,19 @@ private List<SupportTest> getTestsToRun() {
138138
tests.add(new CanThrowSQLiteExceptionTest());
139139
tests.add(new RawExecSQLTest());
140140
tests.add(new RawExecSQLExceptionTest());
141-
/* tests.add(new CompiledSQLUpdateTest());
142-
tests.add(new AES128CipherTest());
143-
tests.add(new MigrateDatabaseFrom1xFormatToCurrentFormat());
141+
tests.add(new CompiledSQLUpdateTest());
142+
// TODO rewrite tests.add(new AES128CipherTest());
143+
// TODO rewrite tests.add(new MigrateDatabaseFrom1xFormatToCurrentFormat());
144144
tests.add(new StatusMemoryUsedTest());
145-
tests.add(new ImportUnencryptedDatabaseTest());
145+
// TODO rewrite tests.add(new ImportUnencryptedDatabaseTest());
146146
tests.add(new FullTextSearchTest());
147-
tests.add(new ReadableDatabaseTest());
147+
// TODO rewrite tests.add(new ReadableDatabaseTest());
148148
tests.add(new AutoVacuumOverReadTest());
149-
tests.add(new ReadableWritableAccessTest());
150-
tests.add(new CursorAccessTest());
151-
tests.add(new VerifyOnUpgradeIsCalledTest());
152-
tests.add(new MigrationUserVersion());
153-
tests.add(new ExportToUnencryptedDatabase());
149+
// TODO rewrite tests.add(new ReadableWritableAccessTest());
150+
// TODO rewrite tests.add(new CursorAccessTest());
151+
// TODO rewrite tests.add(new VerifyOnUpgradeIsCalledTest());
152+
// TODO rewrite tests.add(new MigrationUserVersion());
153+
/* tests.add(new ExportToUnencryptedDatabase());
154154
tests.add(new QueryNonEncryptedDatabaseTest());
155155
tests.add(new EnableForeignKeySupportTest());
156156
tests.add(new AverageOpenTimeTest());

0 commit comments

Comments
 (0)