mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-26 03:40:56 +01:00
Add support for resending badly-encrypted stories.
This commit is contained in:
committed by
Alex Hart
parent
7873ec2b67
commit
c6be427883
@@ -0,0 +1,85 @@
|
||||
package org.thoughtcrime.securesms.jobmanager.migrations;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.thoughtcrime.securesms.database.GroupDatabase;
|
||||
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||
import org.thoughtcrime.securesms.jobmanager.JobMigration;
|
||||
import org.thoughtcrime.securesms.jobs.FailingJob;
|
||||
import org.thoughtcrime.securesms.jobs.SendReadReceiptJob;
|
||||
import org.thoughtcrime.securesms.jobs.SenderKeyDistributionSendJob;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class SenderKeyDistributionSendJobRecipientMigrationTest {
|
||||
|
||||
private final GroupDatabase mockDatabase = mock(GroupDatabase.class);
|
||||
private final SenderKeyDistributionSendJobRecipientMigration testSubject = new SenderKeyDistributionSendJobRecipientMigration(mockDatabase);
|
||||
|
||||
private static final GroupId GROUP_ID = GroupId.pushOrThrow(Util.getSecretBytes(32));
|
||||
|
||||
@Test
|
||||
public void normalMigration() {
|
||||
// GIVEN
|
||||
JobMigration.JobData jobData = new JobMigration.JobData(SenderKeyDistributionSendJob.KEY,
|
||||
"asdf",
|
||||
new Data.Builder()
|
||||
.putString("recipient_id", RecipientId.from(1).serialize())
|
||||
.putBlobAsString("group_id", GROUP_ID.getDecodedId())
|
||||
.build());
|
||||
|
||||
GroupDatabase.GroupRecord mockGroup = mock(GroupDatabase.GroupRecord.class);
|
||||
when(mockGroup.getRecipientId()).thenReturn(RecipientId.from(2));
|
||||
when(mockDatabase.getGroup(GROUP_ID)).thenReturn(Optional.of(mockGroup));
|
||||
|
||||
// WHEN
|
||||
JobMigration.JobData result = testSubject.migrate(jobData);
|
||||
|
||||
// THEN
|
||||
assertEquals(RecipientId.from(1).serialize(), result.getData().getString("recipient_id"));
|
||||
assertEquals(RecipientId.from(2).serialize(), result.getData().getString("thread_recipient_id"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cannotFindGroup() {
|
||||
// GIVEN
|
||||
JobMigration.JobData jobData = new JobMigration.JobData(SenderKeyDistributionSendJob.KEY,
|
||||
"asdf",
|
||||
new Data.Builder()
|
||||
.putString("recipient_id", RecipientId.from(1).serialize())
|
||||
.putBlobAsString("group_id", GROUP_ID.getDecodedId())
|
||||
.build());
|
||||
|
||||
// WHEN
|
||||
JobMigration.JobData result = testSubject.migrate(jobData);
|
||||
|
||||
// THEN
|
||||
assertEquals(FailingJob.KEY, result.getFactoryKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void missingGroupId() {
|
||||
// GIVEN
|
||||
JobMigration.JobData jobData = new JobMigration.JobData(SenderKeyDistributionSendJob.KEY,
|
||||
"asdf",
|
||||
new Data.Builder()
|
||||
.putString("recipient_id", RecipientId.from(1).serialize())
|
||||
.build());
|
||||
|
||||
// WHEN
|
||||
JobMigration.JobData result = testSubject.migrate(jobData);
|
||||
|
||||
// THEN
|
||||
assertEquals(FailingJob.KEY, result.getFactoryKey());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user