mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-26 12:44:38 +00:00
Isolate and add unit testing to new link logic.
Co-Authored-By: ylpoonlg <56300571+ylpoonlg@users.noreply.github.com>
This commit is contained in:
committed by
Cody Henthorne
parent
0ac5782f1f
commit
8b806a8ac5
@@ -0,0 +1,44 @@
|
||||
package org.thoughtcrime.securesms.conversation
|
||||
|
||||
import android.app.Application
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.style.URLSpan
|
||||
import android.text.util.Linkify
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
import org.thoughtcrime.securesms.util.UrlClickHandler
|
||||
|
||||
@Suppress("ClassName")
|
||||
@RunWith(ParameterizedRobolectricTestRunner::class)
|
||||
@Config(application = Application::class)
|
||||
class ConversationItemTest_linkifyUrlLinks(private val input: String, private val expectedUrl: String) {
|
||||
|
||||
@Test
|
||||
fun test1() {
|
||||
val spannableStringBuilder = SpannableStringBuilder(input)
|
||||
Linkify.addLinks(spannableStringBuilder, Linkify.WEB_URLS)
|
||||
ConversationItem.linkifyUrlLinks(spannableStringBuilder, true, UrlHandler)
|
||||
val spans = spannableStringBuilder.getSpans(0, expectedUrl.length, URLSpan::class.java)
|
||||
assertEquals(2, spans.size)
|
||||
}
|
||||
|
||||
private object UrlHandler : UrlClickHandler {
|
||||
override fun handleOnClick(url: String): Boolean = true
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@ParameterizedRobolectricTestRunner.Parameters(name = "Input: {0}, {1}")
|
||||
fun params() = listOf(
|
||||
arrayOf("https://www.google.com", "https://www.google.com"),
|
||||
arrayOf("https://www.google.com%d332", "https://www.google.com"),
|
||||
arrayOf("https://www.instagram.com/tv/CfImYdngccQ/?igshid=YmMyMTA2M2Y= ", "https://www.instagram.com/tv/CfImYdngccQ/?igshid=YmMyMTA2M2Y="),
|
||||
arrayOf("https://www.instagram.com/tv/CfImYdngccQ/?igshid=YmMyMTA2M2Y=\n", "https://www.instagram.com/tv/CfImYdngccQ/?igshid=YmMyMTA2M2Y="),
|
||||
arrayOf("https://fr.ulule.com/sapins-barbus-la-bd-/ ", "https://fr.ulule.com/sapins-barbus-la-bd-/"),
|
||||
arrayOf("https://fr.ulule.com/sapins-barbus-la-bd-/\n", "https://fr.ulule.com/sapins-barbus-la-bd-/")
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user