diff options
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.java | 18 |
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; + } + } } |