aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/android/apksig/internal/util/Resources.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/android/apksig/internal/util/Resources.java')
-rw-r--r--src/test/java/com/android/apksig/internal/util/Resources.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/java/com/android/apksig/internal/util/Resources.java b/src/test/java/com/android/apksig/internal/util/Resources.java
index 82bf76f..ac00946 100644
--- a/src/test/java/com/android/apksig/internal/util/Resources.java
+++ b/src/test/java/com/android/apksig/internal/util/Resources.java
@@ -20,8 +20,13 @@ import com.android.apksig.ApkSignerTest;
import com.android.apksig.SigningCertificateLineage;
import com.android.apksig.util.DataSource;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
@@ -140,4 +145,17 @@ public final class Resources {
DataSource lineageDataSource = toDataSource(cls, fileResourceName);
return SigningCertificateLineage.readFromDataSource(lineageDataSource);
}
+
+ public static File toFile(Class<?> cls, String fileResourceName,
+ TemporaryFolder temporaryFolder) throws IOException {
+ File outFile = temporaryFolder.newFile();
+ try (InputStream in = cls.getResourceAsStream(fileResourceName);
+ OutputStream out = new FileOutputStream(outFile)) {
+ if (in == null) {
+ throw new IllegalArgumentException("Resource not found: " + fileResourceName);
+ }
+ in.transferTo(out);
+ return outFile;
+ }
+ }
}