From b0fbb4b75f53b831666a4cde711e3ec590d1687b Mon Sep 17 00:00:00 2001 From: Mieras Made Date: Tue, 4 Sep 2018 23:08:44 +0200 Subject: [PATCH] #84 PackageManager problems: Fixes issue 1 & 2 --- .../jadb/managers/PackageManager.java | 12 ++++++---- .../jadb/test/unit/PackageManagerTest.java | 23 +++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/se/vidstige/jadb/managers/PackageManager.java b/src/se/vidstige/jadb/managers/PackageManager.java index 40d0fde..df777f2 100644 --- a/src/se/vidstige/jadb/managers/PackageManager.java +++ b/src/se/vidstige/jadb/managers/PackageManager.java @@ -43,7 +43,7 @@ public class PackageManager { if (!result.contains("Success")) throw new JadbException(getErrorMessage(operation, target, result)); } - public void remove(RemoteFile file) throws IOException, JadbException { + private void remove(RemoteFile file) throws IOException, JadbException { InputStream s = device.executeShell("rm", "-f", Bash.quote(file.getPath())); Stream.readAll(s, StandardCharsets.UTF_8); } @@ -51,7 +51,7 @@ public class PackageManager { private void install(File apkFile, List extraArguments) throws IOException, JadbException { RemoteFile remote = new RemoteFile("/sdcard/tmp/" + apkFile.getName()); device.push(apkFile, remote); - ArrayList arguments = new ArrayList<>(); + List arguments = new ArrayList<>(); arguments.add("install"); arguments.addAll(extraArguments); arguments.add(remote.getPath()); @@ -91,14 +91,16 @@ public class PackageManager { // public static class InstallOption { + private final StringBuilder stringBuilder = new StringBuilder(); + InstallOption(String ... varargs) { + String space = ""; for(String str: varargs) { - stringBuilder.append(str).append(" "); + stringBuilder.append(space).append(str); + space = " "; } } - private final StringBuilder stringBuilder = new StringBuilder(); - private String getStringRepresentation() { return stringBuilder.toString(); } diff --git a/test/se/vidstige/jadb/test/unit/PackageManagerTest.java b/test/se/vidstige/jadb/test/unit/PackageManagerTest.java index 4f72f47..e1275cf 100644 --- a/test/se/vidstige/jadb/test/unit/PackageManagerTest.java +++ b/test/se/vidstige/jadb/test/unit/PackageManagerTest.java @@ -9,6 +9,7 @@ import se.vidstige.jadb.managers.Package; import se.vidstige.jadb.managers.PackageManager; import se.vidstige.jadb.test.fakes.FakeAdbServer; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -91,4 +92,26 @@ public class PackageManagerTest { assertEquals(expected, actual); } + @Test + public void testWithForwardLock() throws Exception { + PackageManager.InstallOption withForwardLock = PackageManager.WITH_FORWARD_LOCK; + // Letter L not number 1 + String expected = "-l"; + Method privateMethod = withForwardLock.getClass().getDeclaredMethod("getStringRepresentation"); + privateMethod.setAccessible(true); + String actual = (String) privateMethod.invoke(withForwardLock); + + assertEquals(expected, actual); + } + + @Test + public void testWithInstallerPackageName() throws Exception { + PackageManager.InstallOption withInstallerPackageName = PackageManager.WITH_INSTALLER_PACKAGE_NAME("aaa bbb"); + String expected = "-t aaa bbb"; + Method privateMethod = withInstallerPackageName.getClass().getDeclaredMethod("getStringRepresentation"); + privateMethod.setAccessible(true); + String actual = (String) privateMethod.invoke(withInstallerPackageName); + + assertEquals(expected, actual); + } } \ No newline at end of file