summaryrefslogtreecommitdiffstats
path: root/tests/backup/src/com/android/backuptest/BackupTestActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/backup/src/com/android/backuptest/BackupTestActivity.java')
-rw-r--r--tests/backup/src/com/android/backuptest/BackupTestActivity.java78
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);
+ }
+ }
}