add getSecretKeyType method to CachedPublicKeyRing

This commit is contained in:
Vincent Breitmoser
2014-09-03 01:22:31 +02:00
parent 35962cd254
commit e9b14585f5
3 changed files with 46 additions and 17 deletions

View File

@@ -29,7 +29,10 @@ import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing;
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
import org.sufficientlysecure.keychain.pgp.UncachedPublicKey;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.service.OperationResults.SaveKeyringResult;
import org.sufficientlysecure.keychain.support.KeyringTestingHelper;
import org.sufficientlysecure.keychain.util.ProgressScaler;
import java.io.IOException;
@@ -39,6 +42,8 @@ import java.util.Iterator;
@org.robolectric.annotation.Config(emulateSdk = 18) // Robolectric doesn't yet support 19
public class ProviderHelperSaveTest {
ProviderHelper mProviderHelper = new ProviderHelper(Robolectric.application);
@BeforeClass
public static void setUpOnce() throws Exception {
ShadowLog.stream = System.out;
@@ -81,28 +86,22 @@ public class ProviderHelperSaveTest {
SaveKeyringResult result;
// insert both keys, second should fail
result = new ProviderHelper(Robolectric.application).savePublicKeyRing(pub);
result = mProviderHelper.savePublicKeyRing(pub);
Assert.assertTrue("import of public keyring should succeed", result.success());
result = new ProviderHelper(Robolectric.application).saveSecretKeyRing(sec,
new ProgressScaler());
result = mProviderHelper.saveSecretKeyRing(sec, new ProgressScaler());
Assert.assertTrue("import of secret keyring should succeed", result.success());
CanonicalizedSecretKeyRing secRing =
new ProviderHelper(Robolectric.application).getCanonicalizedSecretKeyRing(keyId);
// make sure both the CanonicalizedSecretKeyRing as well as the CachedPublicKeyRing correctly
// indicate the secret key type
CachedPublicKeyRing cachedRing = mProviderHelper.getCachedPublicKeyRing(keyId);
CanonicalizedSecretKeyRing secRing = mProviderHelper.getCanonicalizedSecretKeyRing(keyId);
for (CanonicalizedSecretKey key : secRing.secretKeyIterator()) {
Assert.assertEquals("all subkeys should be divert-to-key",
Assert.assertEquals("all subkeys from CanonicalizedSecretKeyRing should be divert-to-key",
SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType());
Assert.assertEquals("all subkeys from CachedPublicKeyRing should be divert-to-key",
SecretKeyType.DIVERT_TO_CARD, cachedRing.getSecretKeyType(key.getKeyId()));
}
/*
CachedPublicKeyRing cachedRing =
new ProviderHelper(Robolectric.application).getCachedPublicKeyRing(keyId);
for (CanonicalizedSecretKey key : cachedRing.()) {
Assert.assertEquals("all subkeys should be divert-to-key",
SecretKeyType.DIVERT_TO_CARD, key.getSecretKeyType());
}
*/
}
UncachedKeyRing readRingFromResource(String name) throws Exception {