aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-06-11 15:34:55 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2015-06-11 15:34:55 +0200
commit244f92ed576666dbe765281997c0da7f64405325 (patch)
tree48b6bf0fc11436d5192f8e6e46ad34e597eae440
parent8da88f33bc3991653f91ccfd589cded23a9653b1 (diff)
parent98ba424576946d2f5ef529c5506113b71b0266c4 (diff)
downloadopen-keychain-244f92ed576666dbe765281997c0da7f64405325.tar.gz
open-keychain-244f92ed576666dbe765281997c0da7f64405325.tar.bz2
open-keychain-244f92ed576666dbe765281997c0da7f64405325.zip
Merge remote-tracking branch 'origin/master' into v/eventbus
-rw-r--r--.travis.yml3
-rw-r--r--OpenKeychain-Test/build.gradle121
-rw-r--r--OpenKeychain/build.gradle68
-rw-r--r--OpenKeychain/src/debug/res/drawable-hdpi/ic_launcher.pngbin0 -> 6863 bytes
-rw-r--r--OpenKeychain/src/debug/res/drawable-mdpi/ic_launcher.pngbin0 -> 4609 bytes
-rw-r--r--OpenKeychain/src/debug/res/drawable-xhdpi/ic_launcher.pngbin0 -> 8887 bytes
-rw-r--r--OpenKeychain/src/debug/res/drawable-xxhdpi/ic_launcher.pngbin0 -> 13422 bytes
-rw-r--r--OpenKeychain/src/debug/res/drawable-xxxhdpi/ic_launcher.pngbin0 -> 16655 bytes
-rw-r--r--OpenKeychain/src/main/AndroidManifest.xml17
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java9
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java4
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java3
-rw-r--r--OpenKeychain/src/main/res/xml/account_desc.xml2
-rw-r--r--OpenKeychain/src/main/res/xml/sync_adapter_desc.xml2
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/WorkaroundBuildConfig.java14
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java)40
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java)15
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java)29
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java)8
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java)53
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java)7
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java)8
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java)8
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java)8
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java)15
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java)27
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java)0
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java)0
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java)0
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java)0
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java)8
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java)11
-rw-r--r--OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java (renamed from OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/COPYING)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/README (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/README)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key)bin171 -> 171 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig)bin113 -> 113 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig)bin113 -> 113 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig)bin220 -> 220 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig)bin158 -> 158 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig)bin96 -> 96 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey)bin171 -> 171 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig)bin195 -> 195 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key)bin1201 -> 1201 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig)bin123 -> 123 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig)bin130 -> 130 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig)bin186 -> 186 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey)bin608 -> 608 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig)bin105 -> 105 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key)bin421 -> 421 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig)bin99 -> 99 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig)bin132 -> 132 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig)bin96 -> 96 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key)bin143 -> 143 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig)bin192 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig)bin72 -> 72 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute)bin1761 -> 1761 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig)bin192 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey)bin272 -> 272 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig)bin161 -> 161 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key)bin610 -> 610 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig)bin220 -> 220 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey)bin611 -> 611 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig)bin195 -> 195 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key)bin1275 -> 1275 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig)bin123 -> 123 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig)bin130 -> 130 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey)bin698 -> 698 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig)bin104 -> 104 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key)bin484 -> 484 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig)bin99 -> 99 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig)bin106 -> 106 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key)bin513 -> 513 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id)0
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig)bin192 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute)bin1761 -> 1761 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig)bin192 -> 192 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey)bin961 -> 961 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig)bin161 -> 161 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust)bin4 -> 4 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig)bin363 -> 363 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig)bin1089 -> 1089 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig)bin1089 -> 1089 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg)bin442 -> 442 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg)bin322 -> 322 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg)bin324 -> 324 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig)bin15 -> 15 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg)bin179272 -> 179272 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg)bin9329 -> 9329 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted)bin528 -> 528 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg)bin150 -> 150 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg)bin150 -> 150 bytes
-rw-r--r--OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg (renamed from OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg)bin236 -> 236 bytes
-rw-r--r--OpenKeychain/src/test/resources/public-key-canonicalize.blob (renamed from OpenKeychain-Test/src/test/resources/public-key-canonicalize.blob)bin1224 -> 1224 bytes
-rw-r--r--OpenKeychain/src/test/resources/public-key-for-sample.blob (renamed from OpenKeychain-Test/src/test/resources/public-key-for-sample.blob)bin35198 -> 35198 bytes
-rw-r--r--OpenKeychain/src/test/resources/sample-altered.txt (renamed from OpenKeychain-Test/src/test/resources/sample-altered.txt)0
-rw-r--r--OpenKeychain/src/test/resources/sample.txt (renamed from OpenKeychain-Test/src/test/resources/sample.txt)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/bad_user_id_encoding.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/broken_cert_version.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/cooperpair/readme (renamed from OpenKeychain-Test/src/test/resources/test-keys/cooperpair/readme)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/divert_to_card_sec.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/stripped_flags.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/stripped_flags.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/symantec_public.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/symantec_public.asc)0
-rw-r--r--OpenKeychain/src/test/resources/test-keys/symantec_secret.asc (renamed from OpenKeychain-Test/src/test/resources/test-keys/symantec_secret.asc)0
-rw-r--r--README.md7
-rw-r--r--build.gradle8
-rw-r--r--gradle/wrapper/gradle-wrapper.properties4
-rw-r--r--settings.gradle1
145 files changed, 255 insertions, 247 deletions
diff --git a/.travis.yml b/.travis.yml
index 4bc9d776a..9c05e3edb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,5 @@ before_install:
- ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | android update sdk --no-ui --all --force --filter build-tools-22.0.1,build-tools-21.1.2,build-tools-21.1.1,build-tools-19.1.0,android-22,android-21,android-19,platform-tools,extra-android-support,extra-android-m2repository
install: echo "Installation done"
script:
- - ./gradlew assemble -S -q
- - ./gradlew --info OpenKeychain-Test:testDebug
+ - ./gradlew testDebug jacocoTestReport coveralls --info
diff --git a/OpenKeychain-Test/build.gradle b/OpenKeychain-Test/build.gradle
deleted file mode 100644
index 2bf35b3d1..000000000
--- a/OpenKeychain-Test/build.gradle
+++ /dev/null
@@ -1,121 +0,0 @@
-buildscript {
- repositories {
- jcenter()
- }
-
- dependencies {
- // NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information
- classpath 'com.novoda:gradle-android-test-plugin:0.10.4'
- }
-}
-
-apply plugin: 'java'
-apply plugin: 'android-test'
-apply plugin: 'jacoco'
-
-dependencies {
- testCompile 'junit:junit:4.11'
- testCompile 'com.google.android:android:4.1.1.4'
- testCompile('com.squareup:fest-android:1.0.8') { exclude module: 'support-v4' }
- testCompile 'org.apache.maven:maven-ant-tasks:2.1.3'
- testCompile ('org.robolectric:robolectric:2.4') {
- exclude module: 'classworlds'
- exclude module: 'maven-artifact'
- exclude module: 'maven-artifact-manager'
- exclude module: 'maven-error-diagnostics'
- exclude module: 'maven-model'
- exclude module: 'maven-plugin-registry'
- exclude module: 'maven-profile'
- exclude module: 'maven-project'
- exclude module: 'maven-settings'
- exclude module: 'nekohtml'
- exclude module: 'plexus-container-default'
- exclude module: 'plexus-interpolation'
- exclude module: 'plexus-utils'
- exclude module: 'support-v4' // crazy but my android studio don't like this dependency and to fix it remove .idea and re import project
- exclude module: 'wagon-file'
- exclude module: 'wagon-http-lightweight'
- exclude module: 'wagon-http-shared'
- exclude module: 'wagon-provider-api'
- }
-}
-
-test {
- exclude '**/*$*'
-}
-
-android {
- projectUnderTest ':OpenKeychain'
-}
-
-jacoco {
- toolVersion = "0.7.2.201409121644"
-}
-
-
-def coverageSourceDirs = [
- '../OpenKeychain/src/main/java',
- '../OpenKeychain/src/gen',
- '../OpenKeychain/build/source/apt/debug',
- '../OpenKeychain/build/source/generated/buildConfig/debug',
- '../OpenKeychain/build/source/generated/r/debug'
- ]
-
-jacocoTestReport {
- reports {
- xml.enabled = true
- html.destination "${buildDir}/jacocoHtml"
- }
- // class R is used, but usage will not be covered, so ignore this class from report
- classDirectories = fileTree(dir: '../OpenKeychain/build/intermediates/classes/debug/org/sufficientlysecure/keychain', exclude: [ 'R*.class' ])
- additionalSourceDirs = files(coverageSourceDirs)
- executionData = files('build/jacoco/testDebug.exec')
-}
-
-// new workaround to force add custom output dirs for android studio
-task addTest {
- def file = file(project.name + ".iml")
- doLast {
- try {
- def parsedXml = (new XmlParser()).parse(file)
- def node = parsedXml.component[1]
- def outputNode = parsedXml.component[1].output[0]
- def outputTestNode = parsedXml.component[1].'output-test'[0]
- def rewrite = false
-
- new Node(node, 'sourceFolder', ['url': 'file://$MODULE_DIR$/' + "${it}", 'isTestSource': "true"])
-
- if(outputNode == null) {
- new Node(node, 'output', ['url': 'file://$MODULE_DIR$/build/resources/testDebug'])
- } else {
- if(outputNode.attributes['url'] != 'file://$MODULE_DIR$/build/resources/testDebug') {
- outputNode.attributes = ['url': 'file://$MODULE_DIR$/build/resources/testDebug']
- rewrite = true
- }
- }
-
- if(outputTestNode == null) {
- new Node(node, 'output-test', ['url': 'file://$MODULE_DIR$/build/test-classes/debug'])
- } else {
- if(outputTestNode.attributes['url'] != 'file://$MODULE_DIR$/build/test-classes/debug') {
- outputTestNode.attributes = ['url': 'file://$MODULE_DIR$/build/test-classes/debug']
- rewrite = true
- }
- }
-
- if(rewrite) {
- def writer = new StringWriter()
- new XmlNodePrinter(new PrintWriter(writer)).print(parsedXml)
- file.text = writer.toString()
- }
- } catch (FileNotFoundException e) {
- // iml not found, common on command line only builds
- }
-
- }
-}
-
-// always do the addtest on prebuild
-gradle.projectsEvaluated {
- testDebugClasses.dependsOn(addTest)
-}
diff --git a/OpenKeychain/build.gradle b/OpenKeychain/build.gradle
index a4caa1fe7..3c239d44b 100644
--- a/OpenKeychain/build.gradle
+++ b/OpenKeychain/build.gradle
@@ -1,5 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'witness'
+apply plugin: 'jacoco'
+apply plugin: 'com.github.kt3k.coveralls'
dependencies {
// NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information
@@ -10,8 +12,15 @@ dependencies {
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:recyclerview-v7:22.1.0'
compile 'com.android.support:cardview-v7:22.1.0'
-
- // UI testing libs
+
+ // Unit tests in the local JVM with Robolectric
+ // https://developer.android.com/training/testing/unit-testing/local-unit-tests.html
+ // https://github.com/nenick/AndroidStudioAndRobolectric
+ // http://www.vogella.com/tutorials/Robolectric/article.html
+ testCompile 'junit:junit:4.12'
+ testCompile 'org.robolectric:robolectric:3.0-rc3'
+
+ // UI testing with Espresso
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
@@ -98,7 +107,9 @@ android {
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
-
+ versionCode 32300
+ versionName "3.2.3"
+ applicationId "org.sufficientlysecure.keychain"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
@@ -111,6 +122,26 @@ android {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+
+ // Reference them in the java files with e.g. BuildConfig.ACCOUNT_TYPE.
+ buildConfigField "String", "ACCOUNT_TYPE", "\"org.sufficientlysecure.keychain.account\""
+
+ // Reference them in .xml files.
+ resValue "string", "account_type", "org.sufficientlysecure.keychain.account"
+ }
+
+ debug {
+ applicationIdSuffix ".debug"
+
+ // Reference them in the java files with e.g. BuildConfig.ACCOUNT_TYPE.
+ buildConfigField "String", "ACCOUNT_TYPE", "\"org.sufficientlysecure.keychain.debug.account\""
+
+ // Reference them in .xml files.
+ resValue "string", "account_type", "org.sufficientlysecure.keychain.debug.account"
+
+ // Disabled: only works for androidTest not test!
+ // Enable code coverage (Jacoco)
+ //testCoverageEnabled true
}
}
@@ -163,6 +194,37 @@ android {
}
}
+task jacocoTestReport(type:JacocoReport) {
+ group = "Reporting"
+ description = "Generate Jacoco coverage reports"
+
+ classDirectories = fileTree(
+ dir: "${buildDir}/intermediates/classes/debug",
+ excludes: ['**/R.class',
+ '**/R$*.class',
+ '**/*$ViewInjector*.*',
+ '**/BuildConfig.*',
+ '**/Manifest*.*']
+ )
+
+ sourceDirectories = files("${buildDir.parent}/src/main/java")
+ additionalSourceDirs = files([
+ "${buildDir}/generated/source/buildConfig/debug",
+ "${buildDir}/generated/source/r/debug"
+ ])
+ executionData = files("${buildDir}/jacoco/testDebug.exec")
+
+ reports {
+ xml.enabled = true
+ html.enabled = true
+ }
+}
+
+// Fix for: No report file available: [/home/travis/build/open-keychain/open-keychain/OpenKeychain/build/reports/cobertura/coverage.xml, /home/travis/build/open-keychain/open-keychain/OpenKeychain/build/reports/jacoco/test/jacocoTestReport.xml]
+coveralls {
+ jacocoReportPath 'build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml'
+}
+
// NOTE: This disables Lint!
tasks.whenTaskAdded { task ->
if (task.name.contains('lint')) {
diff --git a/OpenKeychain/src/debug/res/drawable-hdpi/ic_launcher.png b/OpenKeychain/src/debug/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 000000000..bb5104aec
--- /dev/null
+++ b/OpenKeychain/src/debug/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/OpenKeychain/src/debug/res/drawable-mdpi/ic_launcher.png b/OpenKeychain/src/debug/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 000000000..e709f735d
--- /dev/null
+++ b/OpenKeychain/src/debug/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/OpenKeychain/src/debug/res/drawable-xhdpi/ic_launcher.png b/OpenKeychain/src/debug/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..fb4f2737a
--- /dev/null
+++ b/OpenKeychain/src/debug/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/OpenKeychain/src/debug/res/drawable-xxhdpi/ic_launcher.png b/OpenKeychain/src/debug/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..37d0958ff
--- /dev/null
+++ b/OpenKeychain/src/debug/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/OpenKeychain/src/debug/res/drawable-xxxhdpi/ic_launcher.png b/OpenKeychain/src/debug/res/drawable-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..e5183fb05
--- /dev/null
+++ b/OpenKeychain/src/debug/res/drawable-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml
index f10547a0b..75d94ae69 100644
--- a/OpenKeychain/src/main/AndroidManifest.xml
+++ b/OpenKeychain/src/main/AndroidManifest.xml
@@ -2,9 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.sufficientlysecure.keychain"
- android:installLocation="auto"
- android:versionCode="32300"
- android:versionName="3.2.3">
+ android:installLocation="auto">
<!--
General remarks
@@ -50,9 +48,9 @@
android:name="android.hardware.screen.portrait"
android:required="false" />
- <permission android:name="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
+ <permission android:name="${applicationId}.WRITE_TEMPORARY_STORAGE" />
- <uses-permission android:name="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
+ <uses-permission android:name="${applicationId}.WRITE_TEMPORARY_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -724,13 +722,10 @@
<service
android:name=".service.KeychainService"
android:exported="false" />
- <service
- android:name=".service.CloudImportService"
- android:exported="false" />
<provider
android:name=".provider.KeychainProvider"
- android:authorities="org.sufficientlysecure.keychain.provider"
+ android:authorities="${applicationId}.provider"
android:exported="false" />
<!-- Internal classes of the remote APIs (not exported) -->
@@ -808,9 +803,9 @@
<!-- Storage Provider for temporary decrypted files -->
<provider
android:name=".provider.TemporaryStorageProvider"
- android:authorities="org.sufficientlysecure.keychain.tempstorage"
+ android:authorities="${applicationId}.tempstorage"
android:exported="true"
- android:writePermission="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
+ android:writePermission="${applicationId}.WRITE_TEMPORARY_STORAGE" />
</application>
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
index 3aa58d024..b6e6a819f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/Constants.java
@@ -31,14 +31,17 @@ public final class Constants {
public static final boolean DEBUG_LOG_DB_QUERIES = false;
public static final boolean DEBUG_SYNC_REMOVE_CONTACTS = false;
- public static final String TAG = "Keychain";
+ public static final String TAG = DEBUG ? "Keychain D" : "Keychain";
public static final String PACKAGE_NAME = "org.sufficientlysecure.keychain";
- public static final String ACCOUNT_NAME = "OpenKeychain";
- public static final String ACCOUNT_TYPE = PACKAGE_NAME + ".account";
+ public static final String ACCOUNT_NAME = DEBUG ? "OpenKeychain D" : "OpenKeychain";
+ public static final String ACCOUNT_TYPE = BuildConfig.ACCOUNT_TYPE;
public static final String CUSTOM_CONTACT_DATA_MIME_TYPE = "vnd.android.cursor.item/vnd.org.sufficientlysecure.keychain.key";
+ public static final String PROVIDER_AUTHORITY = BuildConfig.APPLICATION_ID + ".provider";
+ public static final String TEMPSTORAGE_AUTHORITY = BuildConfig.APPLICATION_ID + ".tempstorage";
+
// as defined in http://tools.ietf.org/html/rfc3156, section 7
public static final String NFC_MIME = "application/pgp-keys";
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
index 710dbf8aa..98f19e98f 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java
@@ -128,8 +128,6 @@ public class KeychainApplication extends Application {
/**
* Add OpenKeychain account to Android to link contacts with keys
- *
- * @param context
*/
public static void setupAccountAsNeeded(Context context) {
try {
@@ -165,7 +163,7 @@ public class KeychainApplication extends Application {
int edgeDrawableId = context.getResources().getIdentifier("overscroll_edge", "drawable", "android");
Drawable androidEdge = context.getResources().getDrawable(edgeDrawableId);
androidEdge.setColorFilter(brandColor, PorterDuff.Mode.SRC_IN);
- } catch (Resources.NotFoundException e) {
+ } catch (Exception ignored) {
}
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java
index d5283f01f..0d9a4ac16 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainContract.java
@@ -90,7 +90,7 @@ public class KeychainContract {
String PACKAGE_NAME = "package_name"; // foreign key to api_apps.package_name
}
- public static final String CONTENT_AUTHORITY = Constants.PACKAGE_NAME + ".provider";
+ public static final String CONTENT_AUTHORITY = Constants.PROVIDER_AUTHORITY;
private static final Uri BASE_CONTENT_URI_INTERNAL = Uri
.parse("content://" + CONTENT_AUTHORITY);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java
index 45f806960..2000a6525 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java
@@ -45,7 +45,8 @@ public class TemporaryStorageProvider extends ContentProvider {
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_TIME = "time";
- private static final Uri BASE_URI = Uri.parse("content://org.sufficientlysecure.keychain.tempstorage/");
+ public static final String CONTENT_AUTHORITY = Constants.TEMPSTORAGE_AUTHORITY;
+ private static final Uri BASE_URI = Uri.parse("content://" + CONTENT_AUTHORITY);
private static final int DB_VERSION = 2;
private static File cacheDir;
diff --git a/OpenKeychain/src/main/res/xml/account_desc.xml b/OpenKeychain/src/main/res/xml/account_desc.xml
index d29395202..6d8d76b02 100644
--- a/OpenKeychain/src/main/res/xml/account_desc.xml
+++ b/OpenKeychain/src/main/res/xml/account_desc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
- android:accountType="org.sufficientlysecure.keychain.account"
+ android:accountType="@string/account_type"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" />
diff --git a/OpenKeychain/src/main/res/xml/sync_adapter_desc.xml b/OpenKeychain/src/main/res/xml/sync_adapter_desc.xml
index 6871e1a5d..a134fdebe 100644
--- a/OpenKeychain/src/main/res/xml/sync_adapter_desc.xml
+++ b/OpenKeychain/src/main/res/xml/sync_adapter_desc.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.android.contacts"
- android:accountType="org.sufficientlysecure.keychain.account"
+ android:accountType="@string/account_type"
android:supportsUploading="false"
android:userVisible="true"
android:allowParallelSyncs="false"
diff --git a/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/WorkaroundBuildConfig.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/WorkaroundBuildConfig.java
new file mode 100644
index 000000000..ab14649f8
--- /dev/null
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/WorkaroundBuildConfig.java
@@ -0,0 +1,14 @@
+package org.sufficientlysecure.keychain;
+
+/**
+ * Temporary workaround for https://github.com/robolectric/robolectric/issues/1747
+ */
+public final class WorkaroundBuildConfig {
+ public static final boolean DEBUG = BuildConfig.DEBUG;
+ // Workaround: Use real packageName not applicationId
+ public static final String APPLICATION_ID = "org.sufficientlysecure.keychain";
+ public static final String BUILD_TYPE = BuildConfig.BUILD_TYPE;
+ public static final String FLAVOR = BuildConfig.FLAVOR;
+ public static final int VERSION_CODE = BuildConfig.VERSION_CODE;
+ public static final String VERSION_NAME = BuildConfig.VERSION_NAME;
+}
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java
index 115b253f8..6984f126e 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java
@@ -22,11 +22,14 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.CertifyResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
@@ -51,9 +54,8 @@ import java.security.Security;
import java.util.ArrayList;
import java.util.Random;
-
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class CertifyOperationTest {
static UncachedKeyRing mStaticRing1, mStaticRing2;
@@ -118,7 +120,7 @@ public class CertifyOperationTest {
@Before
public void setUp() throws Exception {
- ProviderHelper providerHelper = new ProviderHelper(Robolectric.application);
+ ProviderHelper providerHelper = new ProviderHelper(RuntimeEnvironment.application);
// don't log verbosely here, we're not here to test imports
ShadowLog.stream = oldShadowStream;
@@ -133,7 +135,7 @@ public class CertifyOperationTest {
@Test
public void testSelfCertifyFlag() throws Exception {
- CanonicalizedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedPublicKeyRing(mStaticRing1.getMasterKeyId());
Assert.assertEquals("secret key must be marked self-certified in database",
// TODO this should be more correctly be VERIFIED_SELF at some point!
@@ -143,11 +145,11 @@ public class CertifyOperationTest {
@Test
public void testCertifyId() throws Exception {
- CertifyOperation op = new CertifyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ CertifyOperation op = new CertifyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
{
- CanonicalizedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedPublicKeyRing(mStaticRing2.getMasterKeyId());
Assert.assertEquals("public key must not be marked verified prior to certification",
Certs.UNVERIFIED, ring.getVerified());
@@ -161,7 +163,7 @@ public class CertifyOperationTest {
Assert.assertTrue("certification must succeed", result.success());
{
- CanonicalizedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedPublicKeyRing(mStaticRing2.getMasterKeyId());
Assert.assertEquals("new key must be verified now",
Certs.VERIFIED_SECRET, ring.getVerified());
@@ -171,11 +173,11 @@ public class CertifyOperationTest {
@Test
public void testCertifyAttribute() throws Exception {
- CertifyOperation op = new CertifyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ CertifyOperation op = new CertifyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
{
- CanonicalizedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedPublicKeyRing(mStaticRing2.getMasterKeyId());
Assert.assertEquals("public key must not be marked verified prior to certification",
Certs.UNVERIFIED, ring.getVerified());
@@ -189,7 +191,7 @@ public class CertifyOperationTest {
Assert.assertTrue("certification must succeed", result.success());
{
- CanonicalizedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedPublicKeyRing(mStaticRing2.getMasterKeyId());
Assert.assertEquals("new key must be verified now",
Certs.VERIFIED_SECRET, ring.getVerified());
@@ -200,8 +202,8 @@ public class CertifyOperationTest {
@Test
public void testCertifySelf() throws Exception {
- CertifyOperation op = new CertifyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ CertifyOperation op = new CertifyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
CertifyActionsParcel actions = new CertifyActionsParcel(mStaticRing1.getMasterKeyId());
actions.add(new CertifyAction(mStaticRing1.getMasterKeyId(),
@@ -217,8 +219,8 @@ public class CertifyOperationTest {
@Test
public void testCertifyNonexistent() throws Exception {
- CertifyOperation op = new CertifyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ CertifyOperation op = new CertifyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
{
CertifyActionsParcel actions = new CertifyActionsParcel(mStaticRing1.getMasterKeyId());
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java
index 23ea356c8..fa1288e08 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/ExportTest.java
@@ -23,10 +23,15 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.operations.results.ExportResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
@@ -48,8 +53,8 @@ import java.io.PrintStream;
import java.security.Security;
import java.util.Iterator;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class ExportTest {
static Passphrase mPassphrase = TestingUtils.genPassphrase(true);
@@ -108,7 +113,7 @@ public class ExportTest {
@Before
public void setUp() {
- ProviderHelper providerHelper = new ProviderHelper(Robolectric.application);
+ ProviderHelper providerHelper = new ProviderHelper(RuntimeEnvironment.application);
// don't log verbosely here, we're not here to test imports
ShadowLog.stream = oldShadowStream;
@@ -122,8 +127,8 @@ public class ExportTest {
@Test
public void testExportAll() throws Exception {
- ImportExportOperation op = new ImportExportOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ ImportExportOperation op = new ImportExportOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
// make sure there is a local cert (so the later checks that there are none are meaningful)
Assert.assertTrue("second keyring has local certification", checkForLocal(mStaticRing2));
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java
index 2ca904656..4eaee4c48 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/PromoteKeyOperationTest.java
@@ -23,11 +23,16 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.util.encoders.Hex;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.operations.results.PromoteKeyResult;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey;
@@ -50,8 +55,8 @@ import java.io.PrintStream;
import java.security.Security;
import java.util.Iterator;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class PromoteKeyOperationTest {
static UncachedKeyRing mStaticRing;
@@ -89,7 +94,7 @@ public class PromoteKeyOperationTest {
@Before
public void setUp() throws Exception {
- ProviderHelper providerHelper = new ProviderHelper(Robolectric.application);
+ ProviderHelper providerHelper = new ProviderHelper(RuntimeEnvironment.application);
// don't log verbosely here, we're not here to test imports
ShadowLog.stream = oldShadowStream;
@@ -102,15 +107,15 @@ public class PromoteKeyOperationTest {
@Test
public void testPromote() throws Exception {
- PromoteKeyOperation op = new PromoteKeyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ PromoteKeyOperation op = new PromoteKeyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
PromoteKeyResult result = op.execute(mStaticRing.getMasterKeyId(), null, null);
Assert.assertTrue("promotion must succeed", result.success());
{
- CachedPublicKeyRing ring = new ProviderHelper(Robolectric.application)
+ CachedPublicKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCachedPublicKeyRing(mStaticRing.getMasterKeyId());
Assert.assertTrue("key must have a secret now", ring.hasAnySecret());
@@ -126,8 +131,8 @@ public class PromoteKeyOperationTest {
@Test
public void testPromoteDivert() throws Exception {
- PromoteKeyOperation op = new PromoteKeyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ PromoteKeyOperation op = new PromoteKeyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
byte[] aid = Hex.decode("D2760001240102000000012345670000");
@@ -136,7 +141,7 @@ public class PromoteKeyOperationTest {
Assert.assertTrue("promotion must succeed", result.success());
{
- CanonicalizedSecretKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedSecretKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedSecretKeyRing(mStaticRing.getMasterKeyId());
for (CanonicalizedSecretKey key : ring.secretKeyIterator()) {
@@ -151,8 +156,8 @@ public class PromoteKeyOperationTest {
@Test
public void testPromoteDivertSpecific() throws Exception {
- PromoteKeyOperation op = new PromoteKeyOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null, null);
+ PromoteKeyOperation op = new PromoteKeyOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null, null);
byte[] aid = Hex.decode("D2760001240102000000012345670000");
@@ -166,7 +171,7 @@ public class PromoteKeyOperationTest {
Assert.assertTrue("promotion must succeed", result.success());
{
- CanonicalizedSecretKeyRing ring = new ProviderHelper(Robolectric.application)
+ CanonicalizedSecretKeyRing ring = new ProviderHelper(RuntimeEnvironment.application)
.getCanonicalizedSecretKeyRing(mStaticRing.getMasterKeyId());
for (CanonicalizedSecretKey key : ring.secretKeyIterator()) {
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java
index 6656c5131..64316b2a6 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/KeyRingTest.java
@@ -20,10 +20,14 @@ package org.sufficientlysecure.keychain.pgp;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class KeyRingTest {
@Test
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java
index c7ed9fb30..ce7414a3d 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpEncryptDecryptTest.java
@@ -25,10 +25,13 @@ import org.junit.runner.RunWith;
import org.openintents.openpgp.OpenPgpMetadata;
import org.openintents.openpgp.OpenPgpSignatureResult;
import org.robolectric.*;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.openpgp.PGPEncryptedData;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.operations.results.PgpSignEncryptResult;
@@ -52,8 +55,8 @@ import java.io.PrintStream;
import java.security.Security;
import java.util.HashSet;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class PgpEncryptDecryptTest {
static Passphrase mPassphrase = TestingUtils.genPassphrase(true);
@@ -112,7 +115,7 @@ public class PgpEncryptDecryptTest {
@Before
public void setUp() {
- ProviderHelper providerHelper = new ProviderHelper(Robolectric.application);
+ ProviderHelper providerHelper = new ProviderHelper(RuntimeEnvironment.application);
// don't log verbosely here, we're not here to test imports
ShadowLog.stream = oldShadowStream;
@@ -134,8 +137,8 @@ public class PgpEncryptDecryptTest {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(plaintext.getBytes());
- PgpSignEncryptOperation op = new PgpSignEncryptOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpSignEncryptOperation op = new PgpSignEncryptOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
InputData data = new InputData(in, in.available());
@@ -156,8 +159,8 @@ public class PgpEncryptDecryptTest {
ByteArrayInputStream in = new ByteArrayInputStream(ciphertext);
InputData data = new InputData(in, in.available());
- PgpDecryptVerify op = new PgpDecryptVerify(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpDecryptVerify op = new PgpDecryptVerify(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
PgpDecryptVerifyInputParcel input = new PgpDecryptVerifyInputParcel();
input.setAllowSymmetricDecryption(true);
DecryptVerifyResult result = op.execute(
@@ -179,8 +182,8 @@ public class PgpEncryptDecryptTest {
ByteArrayInputStream in = new ByteArrayInputStream(ciphertext);
InputData data = new InputData(in, in.available());
- PgpDecryptVerify op = new PgpDecryptVerify(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpDecryptVerify op = new PgpDecryptVerify(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
PgpDecryptVerifyInputParcel input = new PgpDecryptVerifyInputParcel();
input.setAllowSymmetricDecryption(true);
DecryptVerifyResult result = op.execute(input,
@@ -198,8 +201,8 @@ public class PgpEncryptDecryptTest {
ByteArrayInputStream in = new ByteArrayInputStream(ciphertext);
InputData data = new InputData(in, in.available());
- PgpDecryptVerify op = new PgpDecryptVerify(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpDecryptVerify op = new PgpDecryptVerify(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
PgpDecryptVerifyInputParcel input = new PgpDecryptVerifyInputParcel();
input.setAllowSymmetricDecryption(true);
DecryptVerifyResult result = op.execute(input,
@@ -216,8 +219,8 @@ public class PgpEncryptDecryptTest {
ByteArrayInputStream in = new ByteArrayInputStream(ciphertext);
InputData data = new InputData(in, in.available());
- PgpDecryptVerify op = new PgpDecryptVerify(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpDecryptVerify op = new PgpDecryptVerify(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
PgpDecryptVerifyInputParcel input = new PgpDecryptVerifyInputParcel();
input.setAllowSymmetricDecryption(false);
DecryptVerifyResult result = op.execute(input,
@@ -240,8 +243,8 @@ public class PgpEncryptDecryptTest {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(plaintext.getBytes());
- PgpSignEncryptOperation op = new PgpSignEncryptOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpSignEncryptOperation op = new PgpSignEncryptOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
InputData data = new InputData(in, in.available());
PgpSignEncryptInputParcel input = new PgpSignEncryptInputParcel();
@@ -321,8 +324,8 @@ public class PgpEncryptDecryptTest {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(plaintext.getBytes());
- PgpSignEncryptOperation op = new PgpSignEncryptOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpSignEncryptOperation op = new PgpSignEncryptOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
InputData data = new InputData(in, in.available());
@@ -406,7 +409,7 @@ public class PgpEncryptDecryptTest {
{ // decryption with passphrase cached should succeed for the other key if first is gone
// delete first key from database
- new ProviderHelper(Robolectric.application).getContentResolver().delete(
+ new ProviderHelper(RuntimeEnvironment.application).getContentResolver().delete(
KeyRingData.buildPublicKeyRingUri(mStaticRing1.getMasterKeyId()), null, null
);
@@ -437,8 +440,8 @@ public class PgpEncryptDecryptTest {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(plaintext.getBytes());
- PgpSignEncryptOperation op = new PgpSignEncryptOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpSignEncryptOperation op = new PgpSignEncryptOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
InputData data = new InputData(in, in.available());
PgpSignEncryptInputParcel b = new PgpSignEncryptInputParcel();
@@ -482,7 +485,7 @@ public class PgpEncryptDecryptTest {
{ // decryption with passphrase cached should succeed for the other key if first is gone
// delete first key from database
- new ProviderHelper(Robolectric.application).getContentResolver().delete(
+ new ProviderHelper(RuntimeEnvironment.application).getContentResolver().delete(
KeyRingData.buildPublicKeyRingUri(mStaticRing1.getMasterKeyId()), null, null
);
@@ -520,8 +523,8 @@ public class PgpEncryptDecryptTest {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(plaindata);
- PgpSignEncryptOperation op = new PgpSignEncryptOperation(Robolectric.application,
- new ProviderHelper(Robolectric.application), null);
+ PgpSignEncryptOperation op = new PgpSignEncryptOperation(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null);
InputData data = new InputData(in, in.available());
PgpSignEncryptInputParcel b = new PgpSignEncryptInputParcel();
@@ -562,8 +565,8 @@ public class PgpEncryptDecryptTest {
private PgpDecryptVerify operationWithFakePassphraseCache(
final Passphrase passphrase, final Long checkMasterKeyId, final Long checkSubKeyId) {
- return new PgpDecryptVerify(Robolectric.application,
- new ProviderHelper(Robolectric.application), null) {
+ return new PgpDecryptVerify(RuntimeEnvironment.application,
+ new ProviderHelper(RuntimeEnvironment.application), null) {
@Override
public Passphrase getCachedPassphrase(long masterKeyId, long subKeyId)
throws NoSecretKeyException {
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java
index e74b84dfb..d92e90d6a 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperationTest.java
@@ -26,6 +26,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.robolectric.*;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.BCPGInputStream;
import org.spongycastle.bcpg.Packet;
@@ -40,6 +41,8 @@ import org.spongycastle.bcpg.UserIDPacket;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.openpgp.PGPSignature;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
@@ -70,8 +73,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Random;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class PgpKeyOperationTest {
static UncachedKeyRing staticRing;
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java
index 2b184c075..0143ae289 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringCanonicalizeTest.java
@@ -23,7 +23,9 @@ import org.junit.runner.RunWith;
import org.junit.Assert;
import org.junit.Test;
import org.junit.Before;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.BCPGInputStream;
import org.spongycastle.bcpg.HashAlgorithmTags;
@@ -51,7 +53,9 @@ import org.spongycastle.openpgp.operator.jcajce.JcaPGPDigestCalculatorProviderBu
import org.spongycastle.openpgp.operator.jcajce.JcePBESecretKeyDecryptorBuilder;
import org.spongycastle.openpgp.operator.jcajce.JcePBESecretKeyEncryptorBuilder;
import org.spongycastle.util.Strings;
+import org.sufficientlysecure.keychain.BuildConfig;
import org.sufficientlysecure.keychain.Constants;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
@@ -78,8 +82,8 @@ import java.util.Iterator;
* Test cases are made for all its assertions.
*/
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class UncachedKeyringCanonicalizeTest {
static UncachedKeyRing staticRing;
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java
index 755a0b00d..cc5c487bd 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringMergeTest.java
@@ -23,7 +23,9 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.BCPGInputStream;
import org.spongycastle.bcpg.PacketTags;
@@ -32,6 +34,8 @@ import org.spongycastle.bcpg.SecretKeyPacket;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.util.Strings;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog;
@@ -77,8 +81,8 @@ import java.util.Random;
* packet will be copied regardless. Filtering out bad packets is done with canonicalization.
*
*/
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class UncachedKeyringMergeTest {
static UncachedKeyRing staticRingA, staticRingB;
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java
index a6159de4e..e946acf01 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/pgp/UncachedKeyringTest.java
@@ -23,9 +23,13 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.operations.results.PgpEditKeyResult;
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing.IteratorWithIOThrow;
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
@@ -40,8 +44,8 @@ import java.io.IOException;
import java.util.Iterator;
import java.util.Random;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class UncachedKeyringTest {
static UncachedKeyRing staticRing, staticPubRing;
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java
index b0f47af29..6779784a2 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperKeyringTest.java
@@ -26,22 +26,25 @@ import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.*;
+import org.robolectric.annotation.Config;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.support.KeyringTestingHelper;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class ProviderHelperKeyringTest {
@Test
public void testSavePublicKeyring() throws Exception {
- Assert.assertTrue(new KeyringTestingHelper(Robolectric.application).addKeyring(Collections.singleton(
+ Assert.assertTrue(new KeyringTestingHelper(RuntimeEnvironment.application).addKeyring(Collections.singleton(
"/public-key-for-sample.blob"
)));
}
// @Test
public void testSavePublicKeyringRsa() throws Exception {
- Assert.assertTrue(new KeyringTestingHelper(Robolectric.application).addKeyring(prependResourcePath(Arrays.asList(
+ Assert.assertTrue(new KeyringTestingHelper(RuntimeEnvironment.application).addKeyring(prependResourcePath(Arrays.asList(
"000001-006.public_key",
"000002-013.user_id",
"000003-002.sig",
@@ -62,7 +65,7 @@ public class ProviderHelperKeyringTest {
// @Test
public void testSavePublicKeyringDsa() throws Exception {
- Assert.assertTrue(new KeyringTestingHelper(Robolectric.application).addKeyring(prependResourcePath(Arrays.asList(
+ Assert.assertTrue(new KeyringTestingHelper(RuntimeEnvironment.application).addKeyring(prependResourcePath(Arrays.asList(
"000016-006.public_key",
"000017-002.sig",
"000018-012.ring_trust",
@@ -79,7 +82,7 @@ public class ProviderHelperKeyringTest {
// @Test
public void testSavePublicKeyringDsa2() throws Exception {
- Assert.assertTrue(new KeyringTestingHelper(Robolectric.application).addKeyring(prependResourcePath(Arrays.asList(
+ Assert.assertTrue(new KeyringTestingHelper(RuntimeEnvironment.application).addKeyring(prependResourcePath(Arrays.asList(
"000027-006.public_key",
"000028-002.sig",
"000029-012.ring_trust",
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java
index 171ecc377..04851ebbb 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/provider/ProviderHelperSaveTest.java
@@ -23,10 +23,15 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.bcpg.sig.KeyFlags;
import org.spongycastle.util.encoders.Hex;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
@@ -40,11 +45,11 @@ import org.sufficientlysecure.keychain.util.ProgressScaler;
import java.util.Arrays;
import java.util.Iterator;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class ProviderHelperSaveTest {
- ProviderHelper mProviderHelper = new ProviderHelper(Robolectric.application);
+ ProviderHelper mProviderHelper = new ProviderHelper(RuntimeEnvironment.application);
@BeforeClass
public static void setUpOnce() throws Exception {
@@ -62,17 +67,17 @@ public class ProviderHelperSaveTest {
SaveKeyringResult result;
// insert both keys, second should fail
- result = new ProviderHelper(Robolectric.application).savePublicKeyRing(first);
+ result = new ProviderHelper(RuntimeEnvironment.application).savePublicKeyRing(first);
Assert.assertTrue("first keyring import should succeed", result.success());
- result = new ProviderHelper(Robolectric.application).savePublicKeyRing(second);
+ result = new ProviderHelper(RuntimeEnvironment.application).savePublicKeyRing(second);
Assert.assertFalse("second keyring import should fail", result.success());
- new KeychainDatabase(Robolectric.application).clearDatabase();
+ new KeychainDatabase(RuntimeEnvironment.application).clearDatabase();
// and the other way around
- result = new ProviderHelper(Robolectric.application).savePublicKeyRing(second);
+ result = new ProviderHelper(RuntimeEnvironment.application).savePublicKeyRing(second);
Assert.assertTrue("first keyring import should succeed", result.success());
- result = new ProviderHelper(Robolectric.application).savePublicKeyRing(first);
+ result = new ProviderHelper(RuntimeEnvironment.application).savePublicKeyRing(first);
Assert.assertFalse("second keyring import should fail", result.success());
}
@@ -91,13 +96,13 @@ public class ProviderHelperSaveTest {
SaveKeyringResult result;
// insert secret, this should fail because of missing self-cert
- result = new ProviderHelper(Robolectric.application).saveSecretKeyRing(seckey, new ProgressScaler());
+ result = new ProviderHelper(RuntimeEnvironment.application).saveSecretKeyRing(seckey, new ProgressScaler());
Assert.assertFalse("secret keyring import before pubring import should fail", result.success());
// insert pubkey, then seckey - both should succeed
- result = new ProviderHelper(Robolectric.application).savePublicKeyRing(pubkey);
+ result = new ProviderHelper(RuntimeEnvironment.application).savePublicKeyRing(pubkey);
Assert.assertTrue("public keyring import should succeed", result.success());
- result = new ProviderHelper(Robolectric.application).saveSecretKeyRing(seckey, new ProgressScaler());
+ result = new ProviderHelper(RuntimeEnvironment.application).saveSecretKeyRing(seckey, new ProgressScaler());
Assert.assertTrue("secret keyring import after pubring import should succeed", result.success());
}
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java
index 94193bbcb..94193bbcb 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringBuilder.java
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java
index 4ac994c99..4ac994c99 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/KeyringTestingHelper.java
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java
index 0573f07fb..0573f07fb 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/ProviderHelperStub.java
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java
index f2b3c0996..f2b3c0996 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/support/TestDataUtil.java
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java
index fccecc3cc..f6888588e 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/Iso7816TLVTest.java
@@ -19,13 +19,17 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.spongycastle.util.encoders.Hex;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.util.Iso7816TLV.Iso7816CompositeTLV;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class Iso7816TLVTest {
@Before
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java
index 7a48d226f..7b97ebdae 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/ParcelableFileCacheTest.java
@@ -25,16 +25,21 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
+import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
+import org.sufficientlysecure.keychain.BuildConfig;
+import org.sufficientlysecure.keychain.WorkaroundBuildConfig;
import org.sufficientlysecure.keychain.util.ParcelableFileCache.IteratorWithSize;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
-@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = WorkaroundBuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")
public class ParcelableFileCacheTest {
@Before
@@ -45,7 +50,7 @@ public class ParcelableFileCacheTest {
@Test
public void testInputOutput() throws Exception {
- ParcelableFileCache<Bundle> cache = new ParcelableFileCache<Bundle>(Robolectric.application, "test.pcl");
+ ParcelableFileCache<Bundle> cache = new ParcelableFileCache<Bundle>(RuntimeEnvironment.application, "test.pcl");
ArrayList<Bundle> list = new ArrayList<Bundle>();
diff --git a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java
index 1d7952464..1d7952464 100644
--- a/OpenKeychain-Test/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java
+++ b/OpenKeychain/src/test/java/org/sufficientlysecure/keychain/util/TestingUtils.java
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/COPYING b/OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING
index 55234e7a0..55234e7a0 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/COPYING
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/COPYING
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/README b/OpenKeychain/src/test/resources/OpenPGP-Haskell/README
index cff696c83..cff696c83 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/README
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/README
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key
index 7cbab1782..7cbab1782 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000001-006.public_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id
index 759449bb4..759449bb4 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000002-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig
index 1e0656d27..1e0656d27 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000003-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000004-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig
index 108b99842..108b99842 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000005-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000006-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig
index 14276d0a5..14276d0a5 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000007-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000008-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig
index 4a282dd68..4a282dd68 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000009-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000010-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig
index cae1b7391..cae1b7391 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000011-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000012-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey
index 08676d067..08676d067 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000013-014.public_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig
index dd601807f..dd601807f 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000014-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000015-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key
index c9dccbf1e..c9dccbf1e 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000016-006.public_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig
index e734505a7..e734505a7 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000017-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000018-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id
index ab3f51d91..ab3f51d91 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000019-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig
index 8588489a7..8588489a7 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000020-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000021-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig
index fefcb5fea..fefcb5fea 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000022-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000023-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey
index 2e8deea28..2e8deea28 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000024-014.public_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig
index a3eea0a20..a3eea0a20 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000025-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000026-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key
index 5817e0037..5817e0037 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000027-006.public_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig
index 5194b7840..5194b7840 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000028-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000029-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id
index fb3f49e0d..fb3f49e0d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000030-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig
index f69f6875b..f69f6875b 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000031-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000032-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig
index 2bb55d4fe..2bb55d4fe 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000033-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000034-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key
index 5980638c4..5980638c4 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000035-006.public_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id
index 5d0d46e5d..5d0d46e5d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000036-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig
index 833b563b2..833b563b2 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000037-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000038-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig
index 89c34fa5d..89c34fa5d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000039-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000040-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute
index a21a82fb1..a21a82fb1 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000041-017.attribute
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig
index fc6267fd0..fc6267fd0 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000042-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000043-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey
index 06bf50e4f..06bf50e4f 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000044-014.public_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig
index 336eb0f24..336eb0f24 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000045-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust
index ffa57e57a..ffa57e57a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000046-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key
index 77b5d428a..77b5d428a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000047-005.secret_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id
index 759449bb4..759449bb4 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000048-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig
index 14276d0a5..14276d0a5 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000049-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000050-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey
index b4e65c92f..b4e65c92f 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000051-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig
index dd601807f..dd601807f 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000052-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000053-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key
index f153e5932..f153e5932 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000054-005.secret_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig
index e734505a7..e734505a7 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000055-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000056-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id
index ab3f51d91..ab3f51d91 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000057-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig
index 8588489a7..8588489a7 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000058-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000059-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey
index 9df45f395..9df45f395 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000060-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig
index 639494223..639494223 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000061-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000062-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key
index 2f4268ee1..2f4268ee1 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000063-005.secret_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig
index 5194b7840..5194b7840 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000064-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000065-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id
index fb3f49e0d..fb3f49e0d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000066-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig
index d354e79df..d354e79df 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000067-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000068-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key
index 17a2c354d..17a2c354d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000069-005.secret_key
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id
index 5d0d46e5d..5d0d46e5d 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000070-013.user_id
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig
index 833b563b2..833b563b2 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000071-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000072-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute
index a21a82fb1..a21a82fb1 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000073-017.attribute
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig
index fc6267fd0..fc6267fd0 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000074-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000075-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey
index b380339a4..b380339a4 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000076-007.secret_subkey
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig
index 336eb0f24..336eb0f24 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000077-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust
index b1eeabb95..b1eeabb95 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/000078-012.ring_trust
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig
index 2bc6679f4..2bc6679f4 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/002182-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig
index 94055af66..94055af66 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000005-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig
index b22f23b91..b22f23b91 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/3F5BBA0B0694BEB6000017-002.sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg
index 87539dbe8..87539dbe8 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-bzip2.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg
index 4da4dfa99..4da4dfa99 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig-zlib.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg
index dd617de13..dd617de13 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/compressedsig.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig
index 87b2895ea..87b2895ea 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/onepass_sig
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg
index a1519ee74..a1519ee74 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/pubring.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg
index 13598756a..13598756a 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/secring.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted
index 129155aa2..129155aa2 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/symmetrically_encrypted
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg
index 39828fcae..39828fcae 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa-sha384.txt.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg
index 97e7a267b..97e7a267b 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-dsa.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg
index 7ae453da6..7ae453da6 100644
--- a/OpenKeychain-Test/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg
+++ b/OpenKeychain/src/test/resources/OpenPGP-Haskell/tests/data/uncompressed-ops-rsa.gpg
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/public-key-canonicalize.blob b/OpenKeychain/src/test/resources/public-key-canonicalize.blob
index 3450824c1..3450824c1 100644
--- a/OpenKeychain-Test/src/test/resources/public-key-canonicalize.blob
+++ b/OpenKeychain/src/test/resources/public-key-canonicalize.blob
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/public-key-for-sample.blob b/OpenKeychain/src/test/resources/public-key-for-sample.blob
index 4aa91510b..4aa91510b 100644
--- a/OpenKeychain-Test/src/test/resources/public-key-for-sample.blob
+++ b/OpenKeychain/src/test/resources/public-key-for-sample.blob
Binary files differ
diff --git a/OpenKeychain-Test/src/test/resources/sample-altered.txt b/OpenKeychain/src/test/resources/sample-altered.txt
index 458821f81..458821f81 100644
--- a/OpenKeychain-Test/src/test/resources/sample-altered.txt
+++ b/OpenKeychain/src/test/resources/sample-altered.txt
diff --git a/OpenKeychain-Test/src/test/resources/sample.txt b/OpenKeychain/src/test/resources/sample.txt
index c0065f78d..c0065f78d 100644
--- a/OpenKeychain-Test/src/test/resources/sample.txt
+++ b/OpenKeychain/src/test/resources/sample.txt
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/bad_user_id_encoding.asc b/OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc
index 332747f84..332747f84 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/bad_user_id_encoding.asc
+++ b/OpenKeychain/src/test/resources/test-keys/bad_user_id_encoding.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/broken_cert_version.asc b/OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc
index e2d2abd8e..e2d2abd8e 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/broken_cert_version.asc
+++ b/OpenKeychain/src/test/resources/test-keys/broken_cert_version.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc b/OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc
index 4f51252da..4f51252da 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc b/OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc
index 549bc51a2..549bc51a2 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/A55120427374F3F7AA5F1166DDA252EBB8EBE1AF.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/readme b/OpenKeychain/src/test/resources/test-keys/cooperpair/readme
index fecb372d9..fecb372d9 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/cooperpair/readme
+++ b/OpenKeychain/src/test/resources/test-keys/cooperpair/readme
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/divert_to_card_sec.asc b/OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc
index 3c3bbebe4..3c3bbebe4 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/divert_to_card_sec.asc
+++ b/OpenKeychain/src/test/resources/test-keys/divert_to_card_sec.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc b/OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc
index 30e6b85e1..30e6b85e1 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc
+++ b/OpenKeychain/src/test/resources/test-keys/mailvelope_07_no_key_flags.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/stripped_flags.asc b/OpenKeychain/src/test/resources/test-keys/stripped_flags.asc
index 0f4728297..0f4728297 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/stripped_flags.asc
+++ b/OpenKeychain/src/test/resources/test-keys/stripped_flags.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/symantec_public.asc b/OpenKeychain/src/test/resources/test-keys/symantec_public.asc
index f4148935c..f4148935c 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/symantec_public.asc
+++ b/OpenKeychain/src/test/resources/test-keys/symantec_public.asc
diff --git a/OpenKeychain-Test/src/test/resources/test-keys/symantec_secret.asc b/OpenKeychain/src/test/resources/test-keys/symantec_secret.asc
index 94451c1bf..94451c1bf 100644
--- a/OpenKeychain-Test/src/test/resources/test-keys/symantec_secret.asc
+++ b/OpenKeychain/src/test/resources/test-keys/symantec_secret.asc
diff --git a/README.md b/README.md
index c48a146db..7520f06c2 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,12 @@ Select everything for the newest SDK Platform, API 22, and also API 21
### Run Tests
1. Use OpenJDK instead of Oracle JDK
-2. Execute ``./gradlew test``
+2. Execute ``./gradlew clean testDebug --continue``
+
+### Run Jacoco Test Coverage
+1. Use OpenJDK instead of Oracle JDK
+2. Execute ``./gradlew clean testDebug jacocoTestReport``
+3. Report is here: OpenKeychain/build/reports/jacoco/jacocoTestReport/html/index.html
### Development with Android Studio
diff --git a/build.gradle b/build.gradle
index 538fb17f9..f1d71b18f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,10 +5,12 @@ buildscript {
dependencies {
// NOTE: Always use fixed version codes not dynamic ones, e.g. 0.7.3 instead of 0.7.+, see README for more information
- classpath 'com.android.tools.build:gradle:1.1.3'
+ classpath 'com.android.tools.build:gradle:1.2.3'
classpath files('gradle-witness.jar')
// bintray dependency to satisfy dependency of openpgp-api lib
classpath 'com.novoda:bintray-release:0.2.7'
+
+ classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1'
}
}
@@ -19,7 +21,7 @@ allprojects {
}
task wrapper(type: Wrapper) {
- gradleVersion = '2.3'
+ gradleVersion = '2.4'
}
subprojects {
@@ -28,7 +30,7 @@ subprojects {
}
}
-// Ignore tests for external dependency
+// Ignore tests for external spongycastle
project(':extern:spongycastle') {
subprojects {
// Need to re-apply the plugin here otherwise the test property below can't be set.
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 6e00d9230..49cf64134 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
-distributionSha256Sum=010dd9f31849abc3d5644e282943b1c1c355f8e2635c5789833979ce590a3774 \ No newline at end of file
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip
+distributionSha256Sum=c4eaecc621a81f567ded1aede4a5ddb281cc02a03a6a87c4f5502add8fc2f16f \ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 1b9038344..baf7e0e64 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -8,4 +8,3 @@ include ':extern:spongycastle:prov'
include ':extern:minidns'
include ':extern:KeybaseLib:Lib'
include ':extern:safeslinger-exchange'
-include ':OpenKeychain-Test'