diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle index 7f87a1aec..e584c2e61 100644 --- a/OpenKeychain/build.gradle +++ b/OpenKeychain/build.gradle @@ -66,7 +66,7 @@ dependencies { // http://robolectric.org/getting-started/ // http://www.vogella.com/tutorials/Robolectric/article.html testCompile 'junit:junit:4.12' - testCompile ('org.robolectric:robolectric:3.2.2') { + testCompile ('org.robolectric:robolectric:3.6.1') { exclude group: 'org.bouncycastle', module: 'bcprov-jdk16' } testCompile 'org.mockito:mockito-core:1.10.19' diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/KeychainTestRunner.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/KeychainTestRunner.java index 3d4b14b2d..37439d8b8 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/KeychainTestRunner.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/KeychainTestRunner.java @@ -13,7 +13,7 @@ public class KeychainTestRunner extends RobolectricTestRunner { @Override protected Config buildGlobalConfig() { return new Config.Builder() - .setSdk(25) + .setSdk(27) .setConstants(WorkaroundBuildConfig.class) .build(); } diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/remote/KeychainExternalProviderTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/remote/KeychainExternalProviderTest.java index dd2e84baa..2e8a62806 100644 --- a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/remote/KeychainExternalProviderTest.java +++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/remote/KeychainExternalProviderTest.java @@ -14,8 +14,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; -import org.robolectric.res.builder.RobolectricPackageManager; +import org.robolectric.shadows.ShadowBinder; import org.robolectric.shadows.ShadowLog; +import org.robolectric.shadows.ShadowPackageManager; import org.sufficientlysecure.keychain.KeychainTestRunner; import org.sufficientlysecure.keychain.operations.CertifyOperation; import org.sufficientlysecure.keychain.operations.results.CertifyResult; @@ -23,17 +24,21 @@ import org.sufficientlysecure.keychain.operations.results.SaveKeyringResult; import org.sufficientlysecure.keychain.pgp.UncachedKeyRing; import org.sufficientlysecure.keychain.provider.ApiDataAccessObject; import org.sufficientlysecure.keychain.provider.AutocryptPeerDataAccessObject; +import org.sufficientlysecure.keychain.provider.KeyRepositorySaveTest; import org.sufficientlysecure.keychain.provider.KeyWritableRepository; import org.sufficientlysecure.keychain.provider.KeychainExternalContract; import org.sufficientlysecure.keychain.provider.KeychainExternalContract.AutocryptStatus; import org.sufficientlysecure.keychain.provider.KeychainExternalContract.EmailStatus; -import org.sufficientlysecure.keychain.provider.KeyRepositorySaveTest; import org.sufficientlysecure.keychain.service.CertifyActionsParcel; import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.util.ProgressScaler; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.robolectric.Shadows.shadowOf; @SuppressWarnings("WeakerAccess") @@ -49,6 +54,7 @@ public class KeychainExternalProviderTest { static final long KEY_ID_SECRET = 0x5D4DA4423C39122FL; static final long KEY_ID_PUBLIC = 0x9A282CE2AB44A382L; public static final String AUTOCRYPT_PEER = "tid"; + public static final int PACKAGE_UID = 42; KeyWritableRepository databaseInteractor = @@ -63,12 +69,14 @@ public class KeychainExternalProviderTest { public void setUp() throws Exception { ShadowLog.stream = System.out; - RobolectricPackageManager rpm = (RobolectricPackageManager) RuntimeEnvironment.getPackageManager(); - rpm.setPackagesForUid(0, PACKAGE_NAME); + ShadowPackageManager packageManager = shadowOf(RuntimeEnvironment.application.getPackageManager()); + packageManager.setPackagesForUid(PACKAGE_UID, PACKAGE_NAME); PackageInfo packageInfo = new PackageInfo(); packageInfo.signatures = new Signature[] { new Signature(PACKAGE_SIGNATURE) }; packageInfo.packageName = PACKAGE_NAME; - rpm.addPackage(packageInfo); + packageManager.addPackage(packageInfo); + + ShadowBinder.setCallingUid(PACKAGE_UID); apiDao = new ApiDataAccessObject(RuntimeEnvironment.application); apiPermissionHelper = new ApiPermissionHelper(RuntimeEnvironment.application, apiDao); diff --git a/build.gradle b/build.gradle index 97ab08473..7ca9e2344 100644 --- a/build.gradle +++ b/build.gradle @@ -20,12 +20,6 @@ allprojects { } } -subprojects { - tasks.withType(Test) { - maxParallelForks = 1 - } -} - // Ignore tests for external bouncycastle project(':extern:bouncycastle') { subprojects {