summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-05-04 23:16:32 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-05-04 23:16:32 +0000
commit1e9515afd4abf1b1a7678555fa17830fed075007 (patch)
tree62ccf6cc3c5ab5016389d17e0cb1adf8fc9428a3
parentbe853756f8a215492b11ae545206d12b64d3a03c (diff)
parent2141bb48d626369da6313aac930939b8faa83226 (diff)
downloadplatform_external_libbackup-1e9515afd4abf1b1a7678555fa17830fed075007.tar.gz
platform_external_libbackup-1e9515afd4abf1b1a7678555fa17830fed075007.tar.bz2
platform_external_libbackup-1e9515afd4abf1b1a7678555fa17830fed075007.zip
Change-Id: I129e7518c5afb84031e539152a489154aeef033d
-rw-r--r--build.gradle10
-rw-r--r--src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java6
-rw-r--r--src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java58
3 files changed, 71 insertions, 3 deletions
diff --git a/build.gradle b/build.gradle
index 7a33abd..15071ea 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,16 @@
apply plugin: 'com.android.library'
android {
+ compileSdkVersion 28
+ buildToolsVersion '28.0.0'
+
+ defaultConfig {
+ // Most backup classes (e.g. SharedPreferencesBackupHelper) were added
+ // in Froyo.
+ minSdkVersion 8
+ targetSdkVersion 28
+ }
+
publishNonDefault true
buildTypes {
diff --git a/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java b/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java
index 18deabf..5615723 100644
--- a/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java
+++ b/src/com/google/android/libraries/backup/shadow/BackupAgentHelperShadow.java
@@ -26,7 +26,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
-import org.robolectric.fakes.RoboSharedPreferences;
/**
* Shadow class for end-to-end testing of {@link BackupAgentHelper} subclasses in unit tests.
@@ -141,8 +140,9 @@ public class BackupAgentHelperShadow {
} else if (helperClass == FileBackupHelper.class) {
simulator = FileBackupHelperSimulator.fromHelper(keyPrefix, (FileBackupHelper) helper);
} else {
- throw new UnsupportedOperationException(
- "Unknown backup helper class for key prefix \"" + keyPrefix + "\": " + helperClass);
+ Log.w(
+ TAG, "Unknown backup helper class for key prefix \"" + keyPrefix + "\": " + helperClass);
+ simulator = new UnsupportedBackupHelperSimulator(keyPrefix, helper);
}
helperSimulators.put(keyPrefix, simulator);
}
diff --git a/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java b/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java
new file mode 100644
index 0000000..15ee687
--- /dev/null
+++ b/src/com/google/android/libraries/backup/shadow/UnsupportedBackupHelperSimulator.java
@@ -0,0 +1,58 @@
+package com.google.android.libraries.backup.shadow;
+
+import android.app.backup.BackupHelper;
+import android.content.Context;
+import android.util.Log;
+
+/**
+ * No-op backup helper representing all an unsupported backup helpers.
+ *
+ * <p>{@see BackupAgentHelperShadow}
+ */
+public class UnsupportedBackupHelperSimulator extends BackupHelperSimulator {
+ private static final String TAG = "UnsupportedBckupHlprSim";
+ private final BackupHelper mHelper;
+
+ UnsupportedBackupHelperSimulator(String keyPrefix, BackupHelper helper) {
+ super(keyPrefix);
+ mHelper = helper;
+ }
+
+ @Override
+ public Object backup(Context context) {
+ return new UnsupportedBackupHelperOutput(mHelper);
+ }
+
+ @Override
+ public void restore(Context context, Object data) {
+ if (!(data instanceof UnsupportedBackupHelperOutput)) {
+ throw new IllegalArgumentException(
+ "Invalid type of data to restore in unsupported helper \""
+ + keyPrefix
+ + "\": "
+ + (data == null ? null : data.getClass()));
+ }
+ Log.w(
+ TAG,
+ "Attempt to restore from an unsupported backup helper: " + mHelper.getClass().getName());
+ }
+
+ public static class UnsupportedBackupHelperOutput {
+ public final BackupHelper wrappedHelper;
+
+ public UnsupportedBackupHelperOutput(BackupHelper helper) {
+ wrappedHelper = helper;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof UnsupportedBackupHelperOutput
+ && wrappedHelper.equals(((UnsupportedBackupHelperOutput) obj).wrappedHelper);
+ }
+
+ @Override
+ public int hashCode() {
+ return wrappedHelper.hashCode();
+ }
+ }
+}