Commit a6b5c8f
committed
SDKS-4759 - Implement end-to-end instrumented tests for the MFA authentication migration module.
The new test suite verifies the full migration pipeline from legacy ForgeRock Authenticator SDK storage (encrypted SharedPreferences and AndroidKeyStore) to the modern Ping SDK SQLite storage.
Key changes:
- Added `MigrationTest.kt` containing comprehensive instrumented tests for TOTP, HOTP, Push credentials, Push notifications, and device token migration.
- Integrated `MockWebServer` to simulate PingAM registration endpoints for authenticating legacy Push mechanisms during tests.
- Implemented robust cleanup logic to ensure test isolation by removing SharedPreferences, KeyStore entries, and SQLite databases before and after each test.
- Verified migration idempotency, progress event emission order, and automatic cleanup of legacy data upon successful migration.
- Updated `build.gradle.kts` with necessary `androidTest` dependencies including `mockwebserver`, `nimbus-jose-jwt`, and the legacy `forgerock-authenticator` SDK.
- Configured JNI library packaging options in `build.gradle.kts` to resolve duplicate `.so` file conflicts during instrumentation tests.1 parent 8ab10dc commit a6b5c8f
10 files changed
Lines changed: 1421 additions & 9 deletions
File tree
- mfa
- auth-migration
- src
- androidTest
- kotlin/com/pingidentity/auth/migration
- main/kotlin/com/pingidentity/auth/migration
- binding-migration
- src/androidTest/java/com/pingidentity/device/binding
- push/src
- main/kotlin/com/pingidentity/mfa/push
- storage
- test/kotlin/com/pingidentity/mfa/push
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
1 | 8 | | |
2 | 9 | | |
3 | 10 | | |
| |||
41 | 48 | | |
42 | 49 | | |
43 | 50 | | |
44 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
45 | 57 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
Lines changed: 1085 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 7 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| 11 | + | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
| 17 | + | |
14 | 18 | | |
15 | 19 | | |
16 | 20 | | |
| |||
112 | 116 | | |
113 | 117 | | |
114 | 118 | | |
115 | | - | |
| 119 | + | |
116 | 120 | | |
117 | 121 | | |
118 | 122 | | |
| |||
134 | 138 | | |
135 | 139 | | |
136 | 140 | | |
| 141 | + | |
| 142 | + | |
137 | 143 | | |
138 | 144 | | |
139 | 145 | | |
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
3 | 4 | | |
4 | 5 | | |
5 | 6 | | |
| |||
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
| |||
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| 35 | + | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
| |||
72 | 76 | | |
73 | 77 | | |
74 | 78 | | |
| 79 | + | |
75 | 80 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
21 | 28 | | |
22 | 29 | | |
23 | 30 | | |
| |||
37 | 44 | | |
38 | 45 | | |
39 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
40 | 56 | | |
0 commit comments