diff options
Diffstat (limited to 'tests/backup/src/com/android/backuptest/BackupTestActivity.java')
-rw-r--r-- | tests/backup/src/com/android/backuptest/BackupTestActivity.java | 78 |
1 files changed, 67 insertions, 11 deletions
diff --git a/tests/backup/src/com/android/backuptest/BackupTestActivity.java b/tests/backup/src/com/android/backuptest/BackupTestActivity.java index af7dfd4..afbc703 100644 --- a/tests/backup/src/com/android/backuptest/BackupTestActivity.java +++ b/tests/backup/src/com/android/backuptest/BackupTestActivity.java @@ -17,14 +17,16 @@ package com.android.backuptest; import android.app.ListActivity; +import android.backup.BackupHelperDispatcher; +import android.backup.BackupDataInput; +import android.backup.BackupDataOutput; import android.backup.BackupManager; +import android.backup.FileBackupHelper; import android.content.Intent; import android.content.SharedPreferences; -import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.os.PowerManager; -import android.os.SystemClock; +import android.os.ParcelFileDescriptor; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; @@ -32,6 +34,10 @@ import android.widget.ListView; import android.widget.Toast; import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.io.IOException; import java.io.PrintStream; @@ -46,6 +52,8 @@ public class BackupTestActivity extends ListActivity static final String PREF_KEY = "pref"; static final String FILE_NAME = "file.txt"; + BackupManager sBm = new BackupManager(this); + Test[] mTests = new Test[] { new Test("Show File") { void run() { @@ -79,8 +87,7 @@ public class BackupTestActivity extends ListActivity output.close(); } } - BackupManager bm = new BackupManager(BackupTestActivity.this); - bm.dataChanged(); + sBm.dataChanged(); } }, new Test("Clear File") { @@ -94,14 +101,12 @@ public class BackupTestActivity extends ListActivity output.close(); } } - BackupManager bm = new BackupManager(BackupTestActivity.this); - bm.dataChanged(); + sBm.dataChanged(); } }, new Test("Poke") { void run() { - BackupManager bm = new BackupManager(BackupTestActivity.this); - bm.dataChanged(); + sBm.dataChanged(); } }, new Test("Show Shared Pref") { @@ -120,8 +125,50 @@ public class BackupTestActivity extends ListActivity SharedPreferences.Editor editor = prefs.edit(); editor.putInt(PREF_KEY, val+1); editor.commit(); - BackupManager bm = new BackupManager(BackupTestActivity.this); - bm.dataChanged(); + sBm.dataChanged(); + } + }, + new Test("Backup Helpers") { + void run() { + try { + writeFile("a", "a\naa", MODE_PRIVATE); + writeFile("empty", "", MODE_PRIVATE); + + ParcelFileDescriptor state = ParcelFileDescriptor.open( + new File(getFilesDir(), "state"), + ParcelFileDescriptor.MODE_READ_WRITE|ParcelFileDescriptor.MODE_CREATE| + ParcelFileDescriptor.MODE_TRUNCATE); + FileBackupHelper h = new FileBackupHelper(BackupTestActivity.this, + new String[] { "a", "empty" }); + FileOutputStream dataFile = openFileOutput("backup_test", MODE_WORLD_READABLE); + BackupDataOutput data = new BackupDataOutput(dataFile.getFD()); + h.performBackup(null, data, state); + dataFile.close(); + state.close(); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } + }, + new Test("Restore Helpers") { + void run() { + try { + BackupHelperDispatcher dispatch = new BackupHelperDispatcher(); + dispatch.addHelper("", new FileBackupHelper(BackupTestActivity.this, + new String[] { "a", "empty" })); + FileInputStream dataFile = openFileInput("backup_test"); + BackupDataInput data = new BackupDataInput(dataFile.getFD()); + ParcelFileDescriptor state = ParcelFileDescriptor.open( + new File(getFilesDir(), "restore_state"), + ParcelFileDescriptor.MODE_READ_WRITE|ParcelFileDescriptor.MODE_CREATE| + ParcelFileDescriptor.MODE_TRUNCATE); + // TODO: a more plausable synthetic stored-data version number + dispatch.performRestore(data, 0, state); + dataFile.close(); + state.close(); + } catch (IOException ex) { + throw new RuntimeException(ex); + } } } }; @@ -154,5 +201,14 @@ public class BackupTestActivity extends ListActivity t.run(); } + void writeFile(String name, String contents, int mode) { + try { + PrintStream out = new PrintStream(openFileOutput(name, mode)); + out.print(contents); + out.close(); + } catch (FileNotFoundException ex) { + throw new RuntimeException(ex); + } + } } |