Convert OutgoingMediaMessage and it's couterparts to kotlin.

This commit is contained in:
Cody Henthorne
2022-12-09 09:48:16 -05:00
parent 8cd9a3cabe
commit c56e63d62f
33 changed files with 544 additions and 1029 deletions

View File

@@ -21,9 +21,9 @@ import org.thoughtcrime.securesms.jobs.AttachmentCompressionJob
import org.thoughtcrime.securesms.jobs.AttachmentCopyJob
import org.thoughtcrime.securesms.jobs.AttachmentUploadJob
import org.thoughtcrime.securesms.jobs.ResumableUploadSpecJob
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage
import org.thoughtcrime.securesms.mms.SentMediaQuality
import org.thoughtcrime.securesms.testutil.OutgoingMediaMessageBuilder
import org.thoughtcrime.securesms.testutil.OutgoingMediaMessageBuilder.secure
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.testutil.UriAttachmentBuilder
import org.thoughtcrime.securesms.util.JsonUtils
import org.thoughtcrime.securesms.util.MediaUtil
@@ -51,7 +51,7 @@ class UploadDependencyGraphTest {
fun `Given a list of Uri attachments and a list of Messages, when I get the dependencyMap, then I expect a times m results`() {
// GIVEN
val uriAttachments = (1..5).map { UriAttachmentBuilder.build(id = uniqueLong.getAndIncrement(), contentType = MediaUtil.IMAGE_JPEG) }
val messages = (1..5).map { OutgoingMediaMessageBuilder.create(attachments = uriAttachments).secure() }
val messages = (1..5).createMessages(uriAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -66,7 +66,7 @@ class UploadDependencyGraphTest {
fun `Given a list of Uri attachments and a list of Messages, when I consumeDeferredQueue, then I expect one upload chain and one copy job for each attachment`() {
// GIVEN
val uriAttachments = (1..5).map { UriAttachmentBuilder.build(id = uniqueLong.getAndIncrement(), contentType = MediaUtil.IMAGE_JPEG) }
val messages = (1..5).map { OutgoingMediaMessageBuilder.create(attachments = uriAttachments).secure() }
val messages = (1..5).createMessages(uriAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -88,7 +88,7 @@ class UploadDependencyGraphTest {
)
}
val messages = (1..5).map { OutgoingMediaMessageBuilder.create(attachments = uriAttachments).secure() }
val messages = (1..5).createMessages(uriAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -108,7 +108,7 @@ class UploadDependencyGraphTest {
)
}
val messages = (1..5).map { OutgoingMediaMessageBuilder.create(attachments = uriAttachments).secure() }
val messages = (1..5).createMessages(uriAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -130,7 +130,7 @@ class UploadDependencyGraphTest {
)
}
val messages = (1..8).map { OutgoingMediaMessageBuilder.create(attachments = uriAttachments).secure() }
val messages = (1..8).createMessages(uriAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -150,7 +150,7 @@ class UploadDependencyGraphTest {
getAttachmentForPreUpload(id, uriAttachment)
}
val messages = (1..5).map { OutgoingMediaMessageBuilder.create(attachments = databaseAttachments).secure() }
val messages = (1..5).createMessages(databaseAttachments)
val testSubject = UploadDependencyGraph.create(messages, jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -166,8 +166,8 @@ class UploadDependencyGraphTest {
// GIVEN
val attachment1 = UriAttachmentBuilder.build(uniqueLong.getAndIncrement(), contentType = MediaUtil.IMAGE_JPEG)
val attachment2 = UriAttachmentBuilder.build(uniqueLong.getAndIncrement(), contentType = MediaUtil.IMAGE_JPEG)
val message1 = OutgoingMediaMessageBuilder.create(attachments = listOf(attachment1))
val message2 = OutgoingMediaMessageBuilder.create(attachments = listOf(attachment2))
val message1 = OutgoingMediaMessage(recipient = Recipient.UNKNOWN, sentTimeMillis = System.currentTimeMillis(), attachments = listOf(attachment1))
val message2 = OutgoingMediaMessage(recipient = Recipient.UNKNOWN, sentTimeMillis = System.currentTimeMillis() + 1, attachments = listOf(attachment2))
val testSubject = UploadDependencyGraph.create(listOf(message1, message2), jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
// WHEN
@@ -190,7 +190,7 @@ class UploadDependencyGraphTest {
)
}
val message = OutgoingMediaMessageBuilder.create(attachments = uriAttachments)
val message = OutgoingMediaMessage(recipient = Recipient.UNKNOWN, sentTimeMillis = System.currentTimeMillis(), attachments = uriAttachments)
val testSubject = UploadDependencyGraph.create(listOf(message), jobManager) { getAttachmentForPreUpload(uniqueLong.getAndIncrement(), it) }
val result = testSubject.consumeDeferredQueue()
@@ -257,4 +257,15 @@ class UploadDependencyGraphTest {
attachment.uploadTimestamp
)
}
private fun Iterable<Int>.createMessages(uriAttachments: List<Attachment>): List<OutgoingMediaMessage> {
return mapIndexed { index, _ ->
OutgoingMediaMessage(
recipient = Recipient.UNKNOWN,
sentTimeMillis = System.currentTimeMillis() + index,
attachments = uriAttachments,
isSecure = true
)
}
}
}

View File

@@ -1,62 +0,0 @@
package org.thoughtcrime.securesms.testutil
import org.thoughtcrime.securesms.attachments.Attachment
import org.thoughtcrime.securesms.contactshare.Contact
import org.thoughtcrime.securesms.database.ThreadTable
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch
import org.thoughtcrime.securesms.database.documents.NetworkFailure
import org.thoughtcrime.securesms.database.model.Mention
import org.thoughtcrime.securesms.database.model.ParentStoryId
import org.thoughtcrime.securesms.database.model.StoryType
import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge
import org.thoughtcrime.securesms.linkpreview.LinkPreview
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage
import org.thoughtcrime.securesms.mms.OutgoingSecureMediaMessage
import org.thoughtcrime.securesms.mms.QuoteModel
import org.thoughtcrime.securesms.recipients.Recipient
object OutgoingMediaMessageBuilder {
fun create(
recipient: Recipient = Recipient.UNKNOWN,
message: String = "",
attachments: List<Attachment> = emptyList(),
sentTimeMillis: Long = System.currentTimeMillis(),
subscriptionId: Int = -1,
expiresIn: Long = -1,
viewOnce: Boolean = false,
distributionType: Int = ThreadTable.DistributionTypes.DEFAULT,
storyType: StoryType = StoryType.NONE,
parentStoryId: ParentStoryId? = null,
isStoryReaction: Boolean = false,
quoteModel: QuoteModel? = null,
contacts: List<Contact> = emptyList(),
linkPreviews: List<LinkPreview> = emptyList(),
mentions: List<Mention> = emptyList(),
networkFailures: Set<NetworkFailure> = emptySet(),
identityKeyMismatches: Set<IdentityKeyMismatch> = emptySet(),
giftBadge: GiftBadge? = null
): OutgoingMediaMessage {
return OutgoingMediaMessage(
recipient,
message,
attachments,
sentTimeMillis,
subscriptionId,
expiresIn,
viewOnce,
distributionType,
storyType,
parentStoryId,
isStoryReaction,
quoteModel,
contacts,
linkPreviews,
mentions,
networkFailures,
identityKeyMismatches,
giftBadge
)
}
fun OutgoingMediaMessage.secure(): OutgoingSecureMediaMessage = OutgoingSecureMediaMessage(this)
}