return KeychainExternalProvider as MatrixCursor
This commit is contained in:
@@ -18,19 +18,18 @@ import org.robolectric.shadows.ShadowBinder;
|
||||
import org.robolectric.shadows.ShadowLog;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
import org.sufficientlysecure.keychain.KeychainTestRunner;
|
||||
import org.sufficientlysecure.keychain.daos.ApiAppDao;
|
||||
import org.sufficientlysecure.keychain.daos.AutocryptPeerDao;
|
||||
import org.sufficientlysecure.keychain.daos.KeyWritableRepository;
|
||||
import org.sufficientlysecure.keychain.model.ApiApp;
|
||||
import org.sufficientlysecure.keychain.model.AutocryptPeer.GossipOrigin;
|
||||
import org.sufficientlysecure.keychain.operations.CertifyOperation;
|
||||
import org.sufficientlysecure.keychain.operations.results.CertifyResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.SaveKeyringResult;
|
||||
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
|
||||
import org.sufficientlysecure.keychain.daos.ApiAppDao;
|
||||
import org.sufficientlysecure.keychain.daos.AutocryptPeerDao;
|
||||
import org.sufficientlysecure.keychain.provider.KeyRepositorySaveTest;
|
||||
import org.sufficientlysecure.keychain.daos.KeyWritableRepository;
|
||||
import org.sufficientlysecure.keychain.provider.KeychainExternalContract;
|
||||
import org.sufficientlysecure.keychain.provider.KeychainExternalContract.AutocryptStatus;
|
||||
import org.sufficientlysecure.keychain.provider.KeychainExternalContract.EmailStatus;
|
||||
import org.sufficientlysecure.keychain.service.CertifyActionsParcel;
|
||||
import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction;
|
||||
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
|
||||
@@ -49,10 +48,7 @@ public class KeychainExternalProviderTest {
|
||||
static final String PACKAGE_NAME = "test.package";
|
||||
static final byte[] PACKAGE_SIGNATURE = new byte[] { 1, 2, 3 };
|
||||
static final String MAIL_ADDRESS_1 = "twi@openkeychain.org";
|
||||
static final String MAIL_ADDRESS_2 = "pink@openkeychain.org";
|
||||
static final String MAIL_ADDRESS_SEC_1 = "twi-sec@openkeychain.org";
|
||||
static final String USER_ID_1 = "twi <twi@openkeychain.org>";
|
||||
static final String USER_ID_SEC_1 = "twi <twi-sec@openkeychain.org>";
|
||||
static final long KEY_ID_SECRET = 0x5D4DA4423C39122FL;
|
||||
static final long KEY_ID_PUBLIC = 0x9A282CE2AB44A382L;
|
||||
public static final String AUTOCRYPT_PEER = "tid";
|
||||
@@ -92,8 +88,8 @@ public class KeychainExternalProviderTest {
|
||||
apiAppDao.deleteApiApp(PACKAGE_NAME);
|
||||
|
||||
contentResolver.query(
|
||||
EmailStatus.CONTENT_URI,
|
||||
new String[] { EmailStatus.EMAIL_ADDRESS, EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID },
|
||||
AutocryptStatus.CONTENT_URI,
|
||||
new String[] { AutocryptStatus.ADDRESS },
|
||||
null, new String [] { }, null
|
||||
);
|
||||
}
|
||||
@@ -104,106 +100,12 @@ public class KeychainExternalProviderTest {
|
||||
apiAppDao.insertApiApp(ApiApp.create(PACKAGE_NAME, new byte[] { 1, 2, 4 }));
|
||||
|
||||
contentResolver.query(
|
||||
EmailStatus.CONTENT_URI,
|
||||
new String[] { EmailStatus.EMAIL_ADDRESS, EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID },
|
||||
AutocryptStatus.CONTENT_URI,
|
||||
new String[] { AutocryptStatus.ADDRESS },
|
||||
null, new String [] { }, null
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailStatus_withNonExistentAddress() throws Exception {
|
||||
Cursor cursor = contentResolver.query(
|
||||
EmailStatus.CONTENT_URI, new String[] {
|
||||
EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID_STATUS, EmailStatus.USER_ID },
|
||||
null, new String [] { MAIL_ADDRESS_1 }, null
|
||||
);
|
||||
|
||||
assertNotNull(cursor);
|
||||
assertTrue(cursor.moveToFirst());
|
||||
assertEquals(MAIL_ADDRESS_1, cursor.getString(0));
|
||||
assertEquals(KeychainExternalContract.KEY_STATUS_UNAVAILABLE, cursor.getInt(1));
|
||||
assertTrue(cursor.isNull(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailStatus() throws Exception {
|
||||
insertPublicKeyringFrom("/test-keys/testring.pub");
|
||||
|
||||
Cursor cursor = contentResolver.query(
|
||||
EmailStatus.CONTENT_URI, new String[] {
|
||||
EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID_STATUS, EmailStatus.USER_ID },
|
||||
null, new String [] { MAIL_ADDRESS_1 }, null
|
||||
);
|
||||
|
||||
assertNotNull(cursor);
|
||||
assertTrue(cursor.moveToFirst());
|
||||
assertEquals(MAIL_ADDRESS_1, cursor.getString(0));
|
||||
assertEquals(KeychainExternalContract.KEY_STATUS_UNVERIFIED, cursor.getInt(1));
|
||||
assertEquals("twi <twi@openkeychain.org>", cursor.getString(2));
|
||||
assertFalse(cursor.moveToNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailStatus_multiple() throws Exception {
|
||||
insertPublicKeyringFrom("/test-keys/testring.pub");
|
||||
|
||||
Cursor cursor = contentResolver.query(
|
||||
EmailStatus.CONTENT_URI, new String[] {
|
||||
EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID_STATUS, EmailStatus.USER_ID },
|
||||
null, new String [] { MAIL_ADDRESS_1, MAIL_ADDRESS_2 }, null
|
||||
);
|
||||
|
||||
assertNotNull(cursor);
|
||||
assertTrue(cursor.moveToNext());
|
||||
assertEquals(MAIL_ADDRESS_2, cursor.getString(0));
|
||||
assertEquals(KeychainExternalContract.KEY_STATUS_UNAVAILABLE, cursor.getInt(1));
|
||||
assertTrue(cursor.isNull(2));
|
||||
assertTrue(cursor.moveToNext());
|
||||
assertEquals(MAIL_ADDRESS_1, cursor.getString(0));
|
||||
assertEquals(KeychainExternalContract.KEY_STATUS_UNVERIFIED, cursor.getInt(1));
|
||||
assertEquals("twi <twi@openkeychain.org>", cursor.getString(2));
|
||||
assertFalse(cursor.moveToNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailStatus_withSecretKey() throws Exception {
|
||||
insertSecretKeyringFrom("/test-keys/testring.sec");
|
||||
|
||||
Cursor cursor = contentResolver.query(
|
||||
EmailStatus.CONTENT_URI, new String[] {
|
||||
EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID_STATUS, EmailStatus.USER_ID },
|
||||
null, new String [] { MAIL_ADDRESS_SEC_1 }, null
|
||||
);
|
||||
|
||||
assertNotNull(cursor);
|
||||
assertTrue(cursor.moveToFirst());
|
||||
assertEquals(MAIL_ADDRESS_SEC_1, cursor.getString(0));
|
||||
assertEquals(USER_ID_SEC_1, cursor.getString(2));
|
||||
assertEquals(2, cursor.getInt(1));
|
||||
assertFalse(cursor.moveToNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailStatus_withConfirmedKey() throws Exception {
|
||||
insertSecretKeyringFrom("/test-keys/testring.sec");
|
||||
insertPublicKeyringFrom("/test-keys/testring.pub");
|
||||
|
||||
certifyKey(KEY_ID_SECRET, KEY_ID_PUBLIC, USER_ID_1);
|
||||
|
||||
Cursor cursor = contentResolver.query(
|
||||
EmailStatus.CONTENT_URI, new String[] {
|
||||
EmailStatus.EMAIL_ADDRESS, EmailStatus.USER_ID, EmailStatus.USER_ID_STATUS},
|
||||
null, new String [] { MAIL_ADDRESS_1 }, null
|
||||
);
|
||||
|
||||
assertNotNull(cursor);
|
||||
assertTrue(cursor.moveToFirst());
|
||||
assertEquals(MAIL_ADDRESS_1, cursor.getString(0));
|
||||
assertEquals(USER_ID_1, cursor.getString(1));
|
||||
assertEquals(KeychainExternalContract.KEY_STATUS_VERIFIED, cursor.getInt(2));
|
||||
assertFalse(cursor.moveToNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAutocryptStatus_autocryptPeer_withUnconfirmedKey() throws Exception {
|
||||
insertSecretKeyringFrom("/test-keys/testring.sec");
|
||||
|
||||
Reference in New Issue
Block a user