diff options
Diffstat (limited to 'tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java')
-rw-r--r-- | tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java index 71a0c71a..8ca3cd50 100644 --- a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java @@ -31,6 +31,7 @@ import android.database.sqlite.SQLiteOpenHelper; import android.os.UserHandle; import android.provider.Telephony; import android.telephony.SubscriptionManager; +import android.telephony.data.ApnSetting; import android.text.TextUtils; import android.util.Log; @@ -540,6 +541,58 @@ public final class TelephonyDatabaseHelperTest { assertTrue(Arrays.asList(columns).contains(Carriers.ESIM_BOOTSTRAP_PROVISIONING)); } + @Test + public void databaseHelperOnUpgrade_hasInfrastructureFields_updateInfrastructureValue() { + Log.d(TAG, "databaseHelperOnUpgrade_hasInfrastructureFields_updateInfrastructureValue"); + // (5 << 16 | 6) is the first upgrade trigger in onUpgrade + SQLiteDatabase db = mInMemoryDbHelper.getWritableDatabase(); + // UserHandle column is added in version 65. + mHelper.onUpgrade(db, (4 << 16), 65); + + // The upgraded db must have the field Telephony.Carrier.INFRASTRUCTURE_BITMASK. + Cursor cursor = db.query("carriers", null, null, null, null, null, null); + String[] columns = cursor.getColumnNames(); + Log.d(TAG, "carriers columns: " + Arrays.toString(columns)); + assertTrue(Arrays.asList(columns).contains(Carriers.INFRASTRUCTURE_BITMASK)); + + // Insert test contentValues into db. + final int insertId = 1; + final String IdKey = "_id"; + ContentValues contentValues = new ContentValues(); + // Set INFRASTRUCTURE_BITMASK to 1ApnSetting.INFRASTRUCTURE_CELLULAR. + contentValues.put(Carriers.INFRASTRUCTURE_BITMASK, ApnSetting.INFRASTRUCTURE_CELLULAR); + contentValues.put(IdKey, insertId); + db.insert("carriers", null, contentValues); + + // Query INFRASTRUCTURE_BITMASK value from db which should be equal to ApnSetting + // .INFRASTRUCTURE_CELLULAR. + final String[] testProjection = {Carriers.INFRASTRUCTURE_BITMASK}; + final String selection = IdKey + "=?"; + String[] selectionArgs = {Integer.toString(insertId)}; + cursor = db.query("carriers", testProjection, selection, selectionArgs, + null, null, null); + assertNotNull(cursor); + assertEquals(1, cursor.getCount()); + cursor.moveToFirst(); + int infrastructureBitmask = cursor.getInt(0); + assertEquals(ApnSetting.INFRASTRUCTURE_CELLULAR, infrastructureBitmask); + + // Upgrade db from version 65 to version 67. + mHelper.onUpgrade(db, (65 << 16), 67); + + // Query INFRASTRUCTURE_BITMASK value from db which should be equal to (ApnSetting + // .INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE) after db upgrade. + int expectedInfrastructureBitmask = + ApnSetting.INFRASTRUCTURE_CELLULAR | ApnSetting.INFRASTRUCTURE_SATELLITE; + cursor = db.query("carriers", testProjection, selection, selectionArgs, + null, null, null); + assertNotNull(cursor); + assertEquals(1, cursor.getCount()); + cursor.moveToFirst(); + infrastructureBitmask = cursor.getInt(0); + assertEquals(expectedInfrastructureBitmask, infrastructureBitmask); + } + /** * Helper for an in memory DB used to test the TelephonyProvider#DatabaseHelper. * |