Skip to content

Commit 71e48d0

Browse files
Update unit tests from deprecated AndroidTestCase to AndroidJUnit4
This also suppresses various deprecation warnings within the test suite from the API.
1 parent 52ced90 commit 71e48d0

31 files changed

+795
-324
lines changed

build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ allprojects {
2222
mavenCentral()
2323
google()
2424
}
25+
tasks.withType(JavaCompile).tap {
26+
configureEach {
27+
options.compilerArgs << "-Xlint:deprecation"
28+
}
29+
}
2530
}
2631

2732
project.ext {

sqlcipher/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ android {
1212
versionName "${rootProject.ext.libraryVersion}"
1313
project.archivesBaseName = "sqlcipher-android-${versionName}"
1414
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
15+
// The following argument makes the Android Test Orchestrator run its
16+
// "pm clear" command after each test invocation. This command ensures
17+
// that the app's state is completely cleared between tests.
18+
testInstrumentationRunnerArguments clearPackageData: 'true'
1519
consumerProguardFile 'consumer-rules.pro'
1620
}
1721

sqlcipher/src/androidTest/java/net/zetetic/database/SQLCipherWALTestScenario.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.zetetic.database;
22

3+
import static org.junit.Assert.assertEquals;
4+
35
import android.content.Context;
46
import android.database.Cursor;
57
import android.os.AsyncTask;
@@ -83,6 +85,7 @@ public void setup() throws Exception {
8385
}
8486

8587
@Test
88+
@SuppressWarnings("deprecation")
8689
public void testEncryptedWalMode() throws Exception {
8790
// create database
8891
final MyHelper helper = new MyHelper(mContext);
@@ -91,7 +94,7 @@ public void testEncryptedWalMode() throws Exception {
9194
// verify that WAL journal mode is set
9295
final Cursor pragmaCursor = helper.getWritableDatabase().rawQuery("PRAGMA journal_mode", null);
9396
pragmaCursor.moveToFirst();
94-
Assert.assertEquals("wal", pragmaCursor.getString(pragmaCursor.getColumnIndex("journal_mode")));
97+
assertEquals("wal", pragmaCursor.getString(pragmaCursor.getColumnIndex("journal_mode")));
9598
pragmaCursor.close();
9699

97100
// start long running transaction

sqlcipher/src/androidTest/java/net/zetetic/database/database_cts/AbstractCursorTest.java

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@
1616

1717
package net.zetetic.database.database_cts;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertFalse;
21+
import static org.junit.Assert.assertNotNull;
22+
import static org.junit.Assert.assertSame;
23+
import static org.junit.Assert.assertTrue;
24+
import static org.junit.Assert.fail;
25+
1926
import android.content.Context;
2027
import android.database.CharArrayBuffer;
2128
import android.database.ContentObserver;
@@ -28,18 +35,25 @@
2835
import android.net.Uri;
2936
import android.os.Bundle;
3037
import android.provider.Settings;
31-
import android.test.InstrumentationTestCase;
3238

39+
import androidx.test.core.app.ApplicationProvider;
40+
import androidx.test.ext.junit.runners.AndroidJUnit4;
3341
import androidx.test.filters.Suppress;
3442

43+
import org.junit.After;
44+
import org.junit.Before;
45+
import org.junit.Test;
46+
import org.junit.runner.RunWith;
47+
3548
import java.io.File;
3649
import java.util.ArrayList;
3750
import java.util.Random;
3851

3952
/**
4053
* Test {@link AbstractCursor}.
4154
*/
42-
public class AbstractCursorTest extends InstrumentationTestCase {
55+
@RunWith(AndroidJUnit4.class)
56+
public class AbstractCursorTest {
4357
private static final int POSITION0 = 0;
4458
private static final int POSITION1 = 1;
4559
private static final int ROW_MAX = 10;
@@ -56,31 +70,31 @@ public class AbstractCursorTest extends InstrumentationTestCase {
5670
private File mDatabaseFile;
5771
private AbstractCursor mDatabaseCursor;
5872

59-
@Override
60-
protected void setUp() throws Exception {
61-
super.setUp();
73+
@Before
74+
public void setUp() throws Exception {
6275
System.loadLibrary("sqlcipher");
6376
setupDatabase();
6477
ArrayList<ArrayList> list = createTestList(ROW_MAX, COLUMN_NAMES.length);
6578
mTestAbstractCursor = new TestAbstractCursor(COLUMN_NAMES, list);
6679
}
6780

68-
@Override
69-
protected void tearDown() throws Exception {
81+
@After
82+
public void tearDown() throws Exception {
7083
mDatabaseCursor.close();
7184
mTestAbstractCursor.close();
7285
mDatabase.close();
7386
if (mDatabaseFile.exists()) {
7487
mDatabaseFile.delete();
7588
}
76-
super.tearDown();
7789
}
7890

91+
@Test
7992
public void testConstructor() {
8093
TestAbstractCursor abstractCursor = new TestAbstractCursor();
8194
assertEquals(-1, abstractCursor.getPosition());
8295
}
8396

97+
@Test
8498
public void testGetBlob() {
8599
try {
86100
mTestAbstractCursor.getBlob(0);
@@ -90,6 +104,7 @@ public void testGetBlob() {
90104
}
91105
}
92106

107+
@Test
93108
public void testRegisterDataSetObserver() {
94109
MockDataSetObserver datasetObserver = new MockDataSetObserver();
95110

@@ -113,6 +128,7 @@ public void testRegisterDataSetObserver() {
113128
mDatabaseCursor.registerDataSetObserver(datasetObserver);
114129
}
115130

131+
@Test
116132
public void testRegisterContentObserver() {
117133
MockContentObserver contentObserver = new MockContentObserver();
118134

@@ -136,12 +152,14 @@ public void testRegisterContentObserver() {
136152
mDatabaseCursor.registerContentObserver(contentObserver);
137153
}
138154

155+
@Test
139156
public void testSetNotificationUri() {
140157
final Uri testUri = Settings.System.getUriFor(Settings.System.TIME_12_24);
141-
mDatabaseCursor.setNotificationUri(getInstrumentation().getContext().getContentResolver(),
158+
mDatabaseCursor.setNotificationUri(ApplicationProvider.getApplicationContext().getContentResolver(),
142159
testUri);
143160
}
144161

162+
@Test
145163
public void testRespond() {
146164
Bundle b = new Bundle();
147165
Bundle bundle = mDatabaseCursor.respond(b);
@@ -151,6 +169,7 @@ public void testRespond() {
151169
assertSame(Bundle.EMPTY, bundle);
152170
}
153171

172+
@Test
154173
public void testRequery() {
155174
MockDataSetObserver mock = new MockDataSetObserver();
156175
mDatabaseCursor.registerDataSetObserver(mock);
@@ -159,6 +178,7 @@ public void testRequery() {
159178
assertTrue(mock.hadCalledOnChanged());
160179
}
161180

181+
@Test
162182
public void testOnChange() throws InterruptedException {
163183
MockContentObserver mock = new MockContentObserver();
164184
mTestAbstractCursor.registerContentObserver(mock);
@@ -173,6 +193,7 @@ public void testOnChange() throws InterruptedException {
173193
}
174194

175195
@Suppress
196+
@Test
176197
public void testOnMove() {
177198
assertFalse(mTestAbstractCursor.getOnMoveRet());
178199
mTestAbstractCursor.moveToFirst();
@@ -187,6 +208,7 @@ public void testOnMove() {
187208
}
188209

189210
@Suppress
211+
@Test
190212
public void testOnMove_samePosition() {
191213
mTestAbstractCursor.moveToFirst();
192214
mTestAbstractCursor.moveToPosition(5);
@@ -197,6 +219,7 @@ public void testOnMove_samePosition() {
197219
assertEquals(6, mTestAbstractCursor.getRowsMovedSum());
198220
}
199221

222+
@Test
200223
public void testMoveToPrevious() {
201224
// Test moveToFirst, isFirst, moveToNext, getPosition
202225
assertTrue(mDatabaseCursor.moveToFirst());
@@ -267,24 +290,29 @@ public void testMoveToPrevious() {
267290
assertFalse(mDatabaseCursor.isAfterLast());
268291
}
269292

293+
@Test
270294
public void testIsClosed() {
271295
assertFalse(mDatabaseCursor.isClosed());
272296
mDatabaseCursor.close();
273297
assertTrue(mDatabaseCursor.isClosed());
274298
}
275299

300+
@Test
276301
public void testGetWantsAllOnMoveCalls() {
277302
assertFalse(mDatabaseCursor.getWantsAllOnMoveCalls());
278303
}
279304

305+
@Test
280306
public void testGetExtras() {
281307
assertSame(Bundle.EMPTY, mDatabaseCursor.getExtras());
282308
}
283309

310+
@Test
284311
public void testGetCount() {
285312
assertEquals(DATA_COUNT, mDatabaseCursor.getCount());
286313
}
287314

315+
@Test
288316
public void testGetColumnNames() {
289317
String[] names = mDatabaseCursor.getColumnNames();
290318
assertEquals(COLUMN_NAMES1.length, names.length);
@@ -294,11 +322,13 @@ public void testGetColumnNames() {
294322
}
295323
}
296324

325+
@Test
297326
public void testGetColumnName() {
298327
assertEquals(COLUMN_NAMES1[0], mDatabaseCursor.getColumnName(0));
299328
assertEquals(COLUMN_NAMES1[1], mDatabaseCursor.getColumnName(1));
300329
}
301330

331+
@Test
302332
public void testGetColumnIndexOrThrow() {
303333
final String COLUMN_FAKE = "fake_name";
304334
assertEquals(POSITION0, mDatabaseCursor.getColumnIndex(COLUMN_NAMES1[POSITION0]));
@@ -314,15 +344,18 @@ public void testGetColumnIndexOrThrow() {
314344
}
315345
}
316346

347+
@Test
317348
public void testGetColumnIndex() {
318349
assertEquals(POSITION0, mDatabaseCursor.getColumnIndex(COLUMN_NAMES1[POSITION0]));
319350
assertEquals(POSITION1, mDatabaseCursor.getColumnIndex(COLUMN_NAMES1[POSITION1]));
320351
}
321352

353+
@Test
322354
public void testGetColumnCount() {
323355
assertEquals(COLUMN_NAMES1.length, mDatabaseCursor.getColumnCount());
324356
}
325357

358+
@Test
326359
public void testDeactivate() {
327360
MockDataSetObserver mock = new MockDataSetObserver();
328361
mDatabaseCursor.registerDataSetObserver(mock);
@@ -332,6 +365,7 @@ public void testDeactivate() {
332365
}
333366

334367
@Suppress
368+
@Test
335369
public void testCopyStringToBuffer() {
336370
CharArrayBuffer ca = new CharArrayBuffer(1000);
337371
mTestAbstractCursor.moveToFirst();
@@ -347,6 +381,7 @@ public void testCopyStringToBuffer() {
347381
}
348382

349383
@Suppress
384+
@Test
350385
public void testCheckPosition() {
351386
// Test with position = -1.
352387
try {
@@ -370,6 +405,7 @@ public void testCheckPosition() {
370405
}
371406
}
372407

408+
@Test
373409
public void testSetExtras() {
374410
Bundle b = new Bundle();
375411
mTestAbstractCursor.setExtras(b);
@@ -396,7 +432,7 @@ private static ArrayList<ArrayList> createTestList(int rows, int cols) {
396432
}
397433

398434
private void setupDatabase() {
399-
File dbDir = getInstrumentation().getTargetContext().getDir("tests",
435+
File dbDir = ApplicationProvider.getApplicationContext().getDir("tests",
400436
Context.MODE_PRIVATE);
401437
mDatabaseFile = new File(dbDir, "database_test.db");
402438
if (mDatabaseFile.exists()) {

sqlcipher/src/androidTest/java/net/zetetic/database/database_cts/CursorJoinerTest.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,29 @@
1717
package net.zetetic.database.database_cts;
1818

1919

20+
import static org.junit.Assert.assertEquals;
21+
import static org.junit.Assert.assertNotNull;
22+
import static org.junit.Assert.assertTrue;
23+
import static org.junit.Assert.fail;
24+
2025
import android.content.Context;
2126
import android.database.Cursor;
2227
import android.database.CursorJoiner;
2328
import android.database.CursorJoiner.Result;
2429
import net.zetetic.database.sqlcipher.SQLiteDatabase;
25-
import android.test.AndroidTestCase;
30+
31+
import androidx.test.core.app.ApplicationProvider;
32+
import androidx.test.ext.junit.runners.AndroidJUnit4;
33+
34+
import org.junit.After;
35+
import org.junit.Before;
36+
import org.junit.Test;
37+
import org.junit.runner.RunWith;
2638

2739
import java.io.File;
2840

29-
public class CursorJoinerTest extends AndroidTestCase {
41+
@RunWith(AndroidJUnit4.class)
42+
public class CursorJoinerTest {
3043

3144
private static final int TEST_ITEM_COUNT = 10;
3245
private static final int DEFAULT_TABLE1_VALUE_BEGINS = 1;
@@ -44,20 +57,20 @@ public class CursorJoinerTest extends AndroidTestCase {
4457
private SQLiteDatabase mDatabase;
4558
private File mDatabaseFile;
4659

47-
@Override
48-
protected void setUp() throws Exception {
49-
super.setUp();
60+
@Before
61+
public void setUp() throws Exception {
5062
System.loadLibrary("sqlcipher");
5163
setupDatabase();
5264
}
5365

54-
@Override
55-
protected void tearDown() throws Exception {
66+
@After
67+
public void tearDown() throws Exception {
5668
mDatabase.close();
5769
mDatabaseFile.delete();
58-
super.tearDown();
5970
}
6071

72+
@Test
73+
@SuppressWarnings("deprecation")
6174
public void testCursorJoinerAndIterator() {
6275
Cursor cursor1 = getCursor(TABLE_NAME_1, null, null);
6376
Cursor cursor2 = getCursor(TABLE_NAME_2, null, null);
@@ -132,6 +145,7 @@ public void testCursorJoinerAndIterator() {
132145
closeCursor(cursor1);
133146
}
134147

148+
@Test
135149
public void testNext() {
136150
String[] columnNames = new String[] { "number" };
137151
Cursor cursor1 = getCursor(TABLE_NAME_1, null, columnNames);
@@ -205,7 +219,7 @@ private void initializeTables() {
205219
}
206220

207221
private void setupDatabase() {
208-
File dbDir = getContext().getDir("tests", Context.MODE_PRIVATE);
222+
File dbDir = ApplicationProvider.getApplicationContext().getDir("tests", Context.MODE_PRIVATE);
209223
mDatabaseFile = new File(dbDir, "database_test.db");
210224
if (mDatabaseFile.exists()) {
211225
mDatabaseFile.delete();

0 commit comments

Comments
 (0)