mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-22 18:55:12 +00:00
The rest of the storage service unwrapping.
This commit is contained in:
@@ -307,9 +307,9 @@ class ContactRecordProcessorTest {
|
||||
val result = subject.merge(remote, local, TestKeyGenerator(STORAGE_ID_C))
|
||||
|
||||
// THEN
|
||||
assertEquals(local.aci, result.aci)
|
||||
assertEquals(local.number.get(), result.number.get())
|
||||
assertEquals(local.pni.get(), result.pni.get())
|
||||
assertEquals(local.proto.aci, result.proto.aci)
|
||||
assertEquals(local.proto.e164, result.proto.e164)
|
||||
assertEquals(local.proto.pni, result.proto.pni)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -339,9 +339,9 @@ class ContactRecordProcessorTest {
|
||||
val result = subject.merge(remote, local, TestKeyGenerator(STORAGE_ID_C))
|
||||
|
||||
// THEN
|
||||
assertEquals(local.aci, result.aci)
|
||||
assertEquals(local.number.get(), result.number.get())
|
||||
assertEquals(local.pni.get(), result.pni.get())
|
||||
assertEquals(local.proto.aci, result.proto.aci)
|
||||
assertEquals(local.proto.e164, result.proto.e164)
|
||||
assertEquals(local.proto.pni, result.proto.pni)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -371,9 +371,9 @@ class ContactRecordProcessorTest {
|
||||
val result = subject.merge(remote, local, TestKeyGenerator(STORAGE_ID_C))
|
||||
|
||||
// THEN
|
||||
assertEquals(remote.aci, result.aci)
|
||||
assertEquals(remote.number.get(), result.number.get())
|
||||
assertEquals(remote.pni.get(), result.pni.get())
|
||||
assertEquals(remote.proto.aci, result.proto.aci)
|
||||
assertEquals(remote.proto.e164, result.proto.e164)
|
||||
assertEquals(remote.proto.pni, result.proto.pni)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -403,9 +403,9 @@ class ContactRecordProcessorTest {
|
||||
val result = subject.merge(remote, local, TestKeyGenerator(STORAGE_ID_C))
|
||||
|
||||
// THEN
|
||||
assertEquals("Ghost", result.nicknameGivenName.get())
|
||||
assertEquals("Spider", result.nicknameFamilyName.get())
|
||||
assertEquals("Spidey Friend", result.note.get())
|
||||
assertEquals("Ghost", result.proto.nickname?.given)
|
||||
assertEquals("Spider", result.proto.nickname?.family)
|
||||
assertEquals("Spidey Friend", result.proto.note)
|
||||
}
|
||||
|
||||
private fun buildRecord(id: StorageId = STORAGE_ID_A, record: ContactRecord): SignalContactRecord {
|
||||
|
||||
@@ -14,13 +14,10 @@ import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.storage.StorageSyncHelper.IdDifferenceResult;
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.ACI;
|
||||
import org.whispersystems.signalservice.api.storage.SignalAccountRecord;
|
||||
import org.whispersystems.signalservice.api.storage.SignalContactRecord;
|
||||
import org.whispersystems.signalservice.api.storage.SignalGroupV1Record;
|
||||
import org.whispersystems.signalservice.api.storage.SignalGroupV2Record;
|
||||
import org.whispersystems.signalservice.api.storage.SignalRecord;
|
||||
import org.whispersystems.signalservice.api.storage.SignalStorageRecord;
|
||||
import org.whispersystems.signalservice.api.storage.StorageId;
|
||||
import org.whispersystems.signalservice.internal.storage.protos.ContactRecord;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -28,6 +25,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import okio.ByteString;
|
||||
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
@@ -132,13 +131,16 @@ public final class StorageSyncHelperTest {
|
||||
byte[] profileKey = new byte[32];
|
||||
byte[] profileKeyCopy = profileKey.clone();
|
||||
|
||||
SignalContactRecord a = contactBuilder(1, ACI_A, E164_A, "a").setProfileKey(profileKey).build();
|
||||
SignalContactRecord b = contactBuilder(1, ACI_A, E164_A, "a").setProfileKey(profileKeyCopy).build();
|
||||
ContactRecord contactA = contactBuilder(ACI_A, E164_A, "a").profileKey(ByteString.of(profileKey)).build();
|
||||
ContactRecord contactB = contactBuilder(ACI_A, E164_A, "a").profileKey(ByteString.of(profileKeyCopy)).build();
|
||||
|
||||
assertEquals(a, b);
|
||||
assertEquals(a.hashCode(), b.hashCode());
|
||||
SignalContactRecord signalContactA = new SignalContactRecord(StorageId.forContact(byteArray(1)), contactA);
|
||||
SignalContactRecord signalContactB = new SignalContactRecord(StorageId.forContact(byteArray(1)), contactB);
|
||||
|
||||
assertFalse(StorageSyncHelper.profileKeyChanged(update(a, b)));
|
||||
assertEquals(signalContactA, signalContactB);
|
||||
assertEquals(signalContactA.hashCode(), signalContactB.hashCode());
|
||||
|
||||
assertFalse(StorageSyncHelper.profileKeyChanged(update(signalContactA, signalContactB)));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -147,23 +149,23 @@ public final class StorageSyncHelperTest {
|
||||
byte[] profileKeyCopy = profileKey.clone();
|
||||
profileKeyCopy[0] = 1;
|
||||
|
||||
SignalContactRecord a = contactBuilder(1, ACI_A, E164_A, "a").setProfileKey(profileKey).build();
|
||||
SignalContactRecord b = contactBuilder(1, ACI_A, E164_A, "a").setProfileKey(profileKeyCopy).build();
|
||||
ContactRecord contactA = contactBuilder(ACI_A, E164_A, "a").profileKey(ByteString.of(profileKey)).build();
|
||||
ContactRecord contactB = contactBuilder(ACI_A, E164_A, "a").profileKey(ByteString.of(profileKeyCopy)).build();
|
||||
|
||||
assertNotEquals(a, b);
|
||||
assertNotEquals(a.hashCode(), b.hashCode());
|
||||
SignalContactRecord signalContactA = new SignalContactRecord(StorageId.forContact(byteArray(1)), contactA);
|
||||
SignalContactRecord signalContactB = new SignalContactRecord(StorageId.forContact(byteArray(1)), contactB);
|
||||
|
||||
assertTrue(StorageSyncHelper.profileKeyChanged(update(a, b)));
|
||||
assertNotEquals(signalContactA, signalContactB);
|
||||
assertNotEquals(signalContactA.hashCode(), signalContactB.hashCode());
|
||||
|
||||
assertTrue(StorageSyncHelper.profileKeyChanged(update(signalContactA, signalContactB)));
|
||||
}
|
||||
|
||||
private static SignalContactRecord.Builder contactBuilder(int key,
|
||||
ACI aci,
|
||||
String e164,
|
||||
String profileName)
|
||||
{
|
||||
return new SignalContactRecord.Builder(byteArray(key), aci, null)
|
||||
.setE164(e164)
|
||||
.setProfileGivenName(profileName);
|
||||
private static ContactRecord.Builder contactBuilder(ACI aci, String e164, String profileName) {
|
||||
return new ContactRecord.Builder()
|
||||
.aci(aci.toString())
|
||||
.e164(e164)
|
||||
.givenName(profileName);
|
||||
}
|
||||
|
||||
private static <E extends SignalRecord<?>> StorageRecordUpdate<E> update(E oldRecord, E newRecord) {
|
||||
|
||||
Reference in New Issue
Block a user