add ktlint plugin to project and apply default code style (#2209)
* add ktlint plugin to project and apply default code style * some manual adjustments, fix wildcard imports * update CONTRIBUTING.md * fix formatting
This commit is contained in:
parent
955267199e
commit
16ffcca748
227 changed files with 3933 additions and 3371 deletions
|
@ -23,7 +23,6 @@ class SpannableString(private val text: CharSequence) : Spannable {
|
|||
override val length: Int
|
||||
get() = text.length
|
||||
|
||||
|
||||
override fun nextSpanTransition(start: Int, limit: Int, type: Class<*>?): Int {
|
||||
throw NotImplementedError()
|
||||
}
|
||||
|
@ -47,4 +46,4 @@ class SpannableString(private val text: CharSequence) : Spannable {
|
|||
override fun getSpanStart(tag: Any?): Int {
|
||||
throw NotImplementedError()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -34,17 +34,20 @@ import org.junit.Test
|
|||
import org.junit.runner.RunWith
|
||||
import org.junit.runners.Parameterized
|
||||
import org.mockito.ArgumentMatchers
|
||||
import org.mockito.Mockito.*
|
||||
import java.util.*
|
||||
import org.mockito.Mockito.`when`
|
||||
import org.mockito.Mockito.eq
|
||||
import org.mockito.Mockito.mock
|
||||
import java.util.ArrayList
|
||||
import java.util.Collections
|
||||
import java.util.Date
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
|
||||
class BottomSheetActivityTest {
|
||||
|
||||
@get:Rule
|
||||
val instantTaskExecutorRule: InstantTaskExecutorRule = InstantTaskExecutorRule()
|
||||
|
||||
private lateinit var activity : FakeBottomSheetActivity
|
||||
private lateinit var activity: FakeBottomSheetActivity
|
||||
private lateinit var apiMock: MastodonApi
|
||||
private val accountQuery = "http://mastodon.foo.bar/@User"
|
||||
private val statusQuery = "http://mastodon.foo.bar/@User/345678"
|
||||
|
@ -52,51 +55,51 @@ class BottomSheetActivityTest {
|
|||
private val emptyCallback = Single.just(SearchResult(emptyList(), emptyList(), emptyList()))
|
||||
private val testScheduler = TestScheduler()
|
||||
|
||||
private val account = Account (
|
||||
"1",
|
||||
"admin",
|
||||
"admin",
|
||||
"Ad Min",
|
||||
SpannedString(""),
|
||||
"http://mastodon.foo.bar",
|
||||
"",
|
||||
"",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
false,
|
||||
emptyList(),
|
||||
emptyList()
|
||||
private val account = Account(
|
||||
"1",
|
||||
"admin",
|
||||
"admin",
|
||||
"Ad Min",
|
||||
SpannedString(""),
|
||||
"http://mastodon.foo.bar",
|
||||
"",
|
||||
"",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
false,
|
||||
emptyList(),
|
||||
emptyList()
|
||||
)
|
||||
private val accountSingle = Single.just(SearchResult(listOf(account), emptyList(), emptyList()))
|
||||
|
||||
private val status = Status(
|
||||
"1",
|
||||
statusQuery,
|
||||
account,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
SpannedString("omgwat"),
|
||||
Date(),
|
||||
Collections.emptyList(),
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
"",
|
||||
Status.Visibility.PUBLIC,
|
||||
ArrayList(),
|
||||
listOf(),
|
||||
null,
|
||||
pinned = false,
|
||||
muted = false,
|
||||
poll = null,
|
||||
card = null
|
||||
"1",
|
||||
statusQuery,
|
||||
account,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
SpannedString("omgwat"),
|
||||
Date(),
|
||||
Collections.emptyList(),
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
"",
|
||||
Status.Visibility.PUBLIC,
|
||||
ArrayList(),
|
||||
listOf(),
|
||||
null,
|
||||
pinned = false,
|
||||
muted = false,
|
||||
poll = null,
|
||||
card = null
|
||||
)
|
||||
private val statusSingle = Single.just(SearchResult(emptyList(), listOf(status), emptyList()))
|
||||
|
||||
|
@ -119,7 +122,7 @@ class BottomSheetActivityTest {
|
|||
companion object {
|
||||
@Parameterized.Parameters(name = "match_{0}")
|
||||
@JvmStatic
|
||||
fun data() : Iterable<Any> {
|
||||
fun data(): Iterable<Any> {
|
||||
return listOf(
|
||||
arrayOf("https://mastodon.foo.bar/@User", true),
|
||||
arrayOf("http://mastodon.foo.bar/@abc123", true),
|
||||
|
|
|
@ -25,7 +25,11 @@ import com.keylesspalace.tusky.components.compose.ComposeViewModel
|
|||
import com.keylesspalace.tusky.components.compose.DEFAULT_CHARACTER_LIMIT
|
||||
import com.keylesspalace.tusky.components.compose.MediaUploader
|
||||
import com.keylesspalace.tusky.components.drafts.DraftHelper
|
||||
import com.keylesspalace.tusky.db.*
|
||||
import com.keylesspalace.tusky.db.AccountEntity
|
||||
import com.keylesspalace.tusky.db.AccountManager
|
||||
import com.keylesspalace.tusky.db.AppDatabase
|
||||
import com.keylesspalace.tusky.db.InstanceDao
|
||||
import com.keylesspalace.tusky.db.InstanceEntity
|
||||
import com.keylesspalace.tusky.di.ViewModelFactory
|
||||
import com.keylesspalace.tusky.entity.Account
|
||||
import com.keylesspalace.tusky.entity.Instance
|
||||
|
@ -34,7 +38,9 @@ import com.keylesspalace.tusky.service.ServiceClient
|
|||
import com.nhaarman.mockitokotlin2.any
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.core.SingleObserver
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
@ -59,25 +65,25 @@ class ComposeActivityTest {
|
|||
private val instanceDomain = "example.domain"
|
||||
|
||||
private val account = AccountEntity(
|
||||
id = 1,
|
||||
domain = instanceDomain,
|
||||
accessToken = "token",
|
||||
isActive = true,
|
||||
accountId = "1",
|
||||
username = "username",
|
||||
displayName = "Display Name",
|
||||
profilePictureUrl = "",
|
||||
notificationsEnabled = true,
|
||||
notificationsMentioned = true,
|
||||
notificationsFollowed = true,
|
||||
notificationsFollowRequested = false,
|
||||
notificationsReblogged = true,
|
||||
notificationsFavorited = true,
|
||||
notificationSound = true,
|
||||
notificationVibration = true,
|
||||
notificationLight = true
|
||||
id = 1,
|
||||
domain = instanceDomain,
|
||||
accessToken = "token",
|
||||
isActive = true,
|
||||
accountId = "1",
|
||||
username = "username",
|
||||
displayName = "Display Name",
|
||||
profilePictureUrl = "",
|
||||
notificationsEnabled = true,
|
||||
notificationsMentioned = true,
|
||||
notificationsFollowed = true,
|
||||
notificationsFollowRequested = false,
|
||||
notificationsReblogged = true,
|
||||
notificationsFavorited = true,
|
||||
notificationSound = true,
|
||||
notificationVibration = true,
|
||||
notificationLight = true
|
||||
)
|
||||
private var instanceResponseCallback: (()->Instance)? = null
|
||||
private var instanceResponseCallback: (() -> Instance)? = null
|
||||
private var composeOptions: ComposeActivity.ComposeOptions? = null
|
||||
|
||||
@Before
|
||||
|
@ -90,7 +96,7 @@ class ComposeActivityTest {
|
|||
|
||||
apiMock = mock(MastodonApi::class.java)
|
||||
`when`(apiMock.getCustomEmojis()).thenReturn(Single.just(emptyList()))
|
||||
`when`(apiMock.getInstance()).thenReturn(object: Single<Instance>() {
|
||||
`when`(apiMock.getInstance()).thenReturn(object : Single<Instance>() {
|
||||
override fun subscribeActual(observer: SingleObserver<in Instance>) {
|
||||
val instance = instanceResponseCallback?.invoke()
|
||||
if (instance == null) {
|
||||
|
@ -103,19 +109,19 @@ class ComposeActivityTest {
|
|||
|
||||
val instanceDaoMock = mock(InstanceDao::class.java)
|
||||
`when`(instanceDaoMock.loadMetadataForInstance(any())).thenReturn(
|
||||
Single.just(InstanceEntity(instanceDomain, emptyList(),null, null, null, null))
|
||||
Single.just(InstanceEntity(instanceDomain, emptyList(), null, null, null, null))
|
||||
)
|
||||
|
||||
val dbMock = mock(AppDatabase::class.java)
|
||||
`when`(dbMock.instanceDao()).thenReturn(instanceDaoMock)
|
||||
|
||||
val viewModel = ComposeViewModel(
|
||||
apiMock,
|
||||
accountManagerMock,
|
||||
mock(MediaUploader::class.java),
|
||||
mock(ServiceClient::class.java),
|
||||
mock(DraftHelper::class.java),
|
||||
dbMock
|
||||
apiMock,
|
||||
accountManagerMock,
|
||||
mock(MediaUploader::class.java),
|
||||
mock(ServiceClient::class.java),
|
||||
mock(DraftHelper::class.java),
|
||||
dbMock
|
||||
)
|
||||
activity.intent = Intent(activity, ComposeActivity::class.java).apply {
|
||||
putExtra(ComposeActivity.COMPOSE_OPTIONS_EXTRA, composeOptions)
|
||||
|
@ -381,41 +387,38 @@ class ComposeActivityTest {
|
|||
activity.findViewById<EditText>(R.id.composeEditField).setText(text ?: "Some text")
|
||||
}
|
||||
|
||||
private fun getInstanceWithMaximumTootCharacters(maximumTootCharacters: Int?): Instance
|
||||
{
|
||||
private fun getInstanceWithMaximumTootCharacters(maximumTootCharacters: Int?): Instance {
|
||||
return Instance(
|
||||
"https://example.token",
|
||||
"Example dot Token",
|
||||
"Example instance for testing",
|
||||
"admin@example.token",
|
||||
"2.6.3",
|
||||
HashMap(),
|
||||
null,
|
||||
null,
|
||||
listOf("en"),
|
||||
Account(
|
||||
"1",
|
||||
"admin",
|
||||
"admin",
|
||||
"admin",
|
||||
SpannedString(""),
|
||||
"https://example.token",
|
||||
"Example dot Token",
|
||||
"Example instance for testing",
|
||||
"admin@example.token",
|
||||
"2.6.3",
|
||||
HashMap(),
|
||||
"",
|
||||
"",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
listOf("en"),
|
||||
Account(
|
||||
"1",
|
||||
"admin",
|
||||
"admin",
|
||||
"admin",
|
||||
SpannedString(""),
|
||||
"https://example.token",
|
||||
"",
|
||||
"",
|
||||
false,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
null,
|
||||
false,
|
||||
emptyList(),
|
||||
emptyList()
|
||||
),
|
||||
maximumTootCharacters,
|
||||
null,
|
||||
null
|
||||
false,
|
||||
emptyList(),
|
||||
emptyList()
|
||||
),
|
||||
maximumTootCharacters,
|
||||
null,
|
||||
null
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -22,64 +22,66 @@ import org.junit.runner.RunWith
|
|||
import org.junit.runners.Parameterized
|
||||
|
||||
@RunWith(Parameterized::class)
|
||||
class ComposeTokenizerTest(private val text: CharSequence,
|
||||
private val expectedStartIndex: Int,
|
||||
private val expectedEndIndex: Int) {
|
||||
class ComposeTokenizerTest(
|
||||
private val text: CharSequence,
|
||||
private val expectedStartIndex: Int,
|
||||
private val expectedEndIndex: Int
|
||||
) {
|
||||
|
||||
companion object {
|
||||
@Parameterized.Parameters(name = "{0}")
|
||||
@JvmStatic
|
||||
fun data(): Iterable<Any> {
|
||||
return listOf(
|
||||
arrayOf("@mention", 0, 8),
|
||||
arrayOf("@ment10n", 0, 8),
|
||||
arrayOf("@ment10n_", 0, 9),
|
||||
arrayOf("@ment10n_n", 0, 10),
|
||||
arrayOf("@ment10n_9", 0, 10),
|
||||
arrayOf(" @mention", 1, 9),
|
||||
arrayOf(" @ment10n", 1, 9),
|
||||
arrayOf(" @ment10n_", 1, 10),
|
||||
arrayOf(" @ment10n_ @", 11, 12),
|
||||
arrayOf(" @ment10n_ @ment20n", 11, 19),
|
||||
arrayOf(" @ment10n_ @ment20n_", 11, 20),
|
||||
arrayOf(" @ment10n_ @ment20n_n", 11, 21),
|
||||
arrayOf(" @ment10n_ @ment20n_9", 11, 21),
|
||||
arrayOf(" @ment10n-", 1, 10),
|
||||
arrayOf(" @ment10n- @", 11, 12),
|
||||
arrayOf(" @ment10n- @ment20n", 11, 19),
|
||||
arrayOf(" @ment10n- @ment20n-", 11, 20),
|
||||
arrayOf(" @ment10n- @ment20n-n", 11, 21),
|
||||
arrayOf(" @ment10n- @ment20n-9", 11, 21),
|
||||
arrayOf("@ment10n@l0calhost", 0, 18),
|
||||
arrayOf(" @ment10n@l0calhost", 1, 19),
|
||||
arrayOf(" @ment10n_@l0calhost", 1, 20),
|
||||
arrayOf(" @ment10n-@l0calhost", 1, 20),
|
||||
arrayOf(" @ment10n_@l0calhost @ment20n@husky", 21, 35),
|
||||
arrayOf(" @ment10n_@l0calhost @ment20n_@husky", 21, 36),
|
||||
arrayOf(" @ment10n-@l0calhost @ment20n-@husky", 21, 36),
|
||||
arrayOf(" @m@localhost", 1, 13),
|
||||
arrayOf(" @m@localhost @a@localhost", 14, 26),
|
||||
arrayOf("@m@", 0, 3),
|
||||
arrayOf(" @m@ @a@asdf", 5, 12),
|
||||
arrayOf(" @m@ @a@", 5, 8),
|
||||
arrayOf(" @m@ @a@a", 5, 9),
|
||||
arrayOf(" @m@a @a@m", 6, 10),
|
||||
arrayOf("@m@m@", 5, 5),
|
||||
arrayOf("#tusky@husky", 12, 12),
|
||||
arrayOf(":tusky@husky", 12, 12),
|
||||
arrayOf("mention", 7, 7),
|
||||
arrayOf("ment10n", 7, 7),
|
||||
arrayOf("mentio_", 7, 7),
|
||||
arrayOf("#tusky", 0, 6),
|
||||
arrayOf("#@tusky", 7, 7),
|
||||
arrayOf("@#tusky", 7, 7),
|
||||
arrayOf(" @#tusky", 8, 8),
|
||||
arrayOf(":mastodon", 0, 9),
|
||||
arrayOf(":@mastodon", 10, 10),
|
||||
arrayOf("@:mastodon", 10, 10),
|
||||
arrayOf(" @:mastodon", 11, 11),
|
||||
arrayOf("#@:mastodon", 11, 11),
|
||||
arrayOf(" #@:mastodon", 12, 12)
|
||||
arrayOf("@mention", 0, 8),
|
||||
arrayOf("@ment10n", 0, 8),
|
||||
arrayOf("@ment10n_", 0, 9),
|
||||
arrayOf("@ment10n_n", 0, 10),
|
||||
arrayOf("@ment10n_9", 0, 10),
|
||||
arrayOf(" @mention", 1, 9),
|
||||
arrayOf(" @ment10n", 1, 9),
|
||||
arrayOf(" @ment10n_", 1, 10),
|
||||
arrayOf(" @ment10n_ @", 11, 12),
|
||||
arrayOf(" @ment10n_ @ment20n", 11, 19),
|
||||
arrayOf(" @ment10n_ @ment20n_", 11, 20),
|
||||
arrayOf(" @ment10n_ @ment20n_n", 11, 21),
|
||||
arrayOf(" @ment10n_ @ment20n_9", 11, 21),
|
||||
arrayOf(" @ment10n-", 1, 10),
|
||||
arrayOf(" @ment10n- @", 11, 12),
|
||||
arrayOf(" @ment10n- @ment20n", 11, 19),
|
||||
arrayOf(" @ment10n- @ment20n-", 11, 20),
|
||||
arrayOf(" @ment10n- @ment20n-n", 11, 21),
|
||||
arrayOf(" @ment10n- @ment20n-9", 11, 21),
|
||||
arrayOf("@ment10n@l0calhost", 0, 18),
|
||||
arrayOf(" @ment10n@l0calhost", 1, 19),
|
||||
arrayOf(" @ment10n_@l0calhost", 1, 20),
|
||||
arrayOf(" @ment10n-@l0calhost", 1, 20),
|
||||
arrayOf(" @ment10n_@l0calhost @ment20n@husky", 21, 35),
|
||||
arrayOf(" @ment10n_@l0calhost @ment20n_@husky", 21, 36),
|
||||
arrayOf(" @ment10n-@l0calhost @ment20n-@husky", 21, 36),
|
||||
arrayOf(" @m@localhost", 1, 13),
|
||||
arrayOf(" @m@localhost @a@localhost", 14, 26),
|
||||
arrayOf("@m@", 0, 3),
|
||||
arrayOf(" @m@ @a@asdf", 5, 12),
|
||||
arrayOf(" @m@ @a@", 5, 8),
|
||||
arrayOf(" @m@ @a@a", 5, 9),
|
||||
arrayOf(" @m@a @a@m", 6, 10),
|
||||
arrayOf("@m@m@", 5, 5),
|
||||
arrayOf("#tusky@husky", 12, 12),
|
||||
arrayOf(":tusky@husky", 12, 12),
|
||||
arrayOf("mention", 7, 7),
|
||||
arrayOf("ment10n", 7, 7),
|
||||
arrayOf("mentio_", 7, 7),
|
||||
arrayOf("#tusky", 0, 6),
|
||||
arrayOf("#@tusky", 7, 7),
|
||||
arrayOf("@#tusky", 7, 7),
|
||||
arrayOf(" @#tusky", 8, 8),
|
||||
arrayOf(":mastodon", 0, 9),
|
||||
arrayOf(":@mastodon", 10, 10),
|
||||
arrayOf("@:mastodon", 10, 10),
|
||||
arrayOf(" @:mastodon", 11, 11),
|
||||
arrayOf("#@:mastodon", 11, 11),
|
||||
arrayOf(" #@:mastodon", 12, 12)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -91,4 +93,4 @@ class ComposeTokenizerTest(private val text: CharSequence,
|
|||
Assert.assertEquals(expectedStartIndex, tokenizer.findTokenStart(text, text.length))
|
||||
Assert.assertEquals(expectedEndIndex, tokenizer.findTokenEnd(text, text.length))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,17 +7,14 @@ import com.keylesspalace.tusky.entity.Poll
|
|||
import com.keylesspalace.tusky.entity.PollOption
|
||||
import com.keylesspalace.tusky.entity.Status
|
||||
import com.keylesspalace.tusky.network.FilterModel
|
||||
import com.keylesspalace.tusky.network.MastodonApi
|
||||
import com.nhaarman.mockitokotlin2.doReturn
|
||||
import com.nhaarman.mockitokotlin2.mock
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.annotation.Config
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
|
||||
@Config(sdk = [28])
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
|
@ -182,5 +179,4 @@ class FilterTest {
|
|||
card = null
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@ package com.keylesspalace.tusky
|
|||
|
||||
import com.keylesspalace.tusky.util.FocalPointUtil
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class FocalPointUtilTest {
|
||||
|
@ -45,66 +45,112 @@ class FocalPointUtilTest {
|
|||
// isVerticalCrop tests
|
||||
@Test
|
||||
fun isVerticalCropTest() {
|
||||
assertTrue(FocalPointUtil.isVerticalCrop(2f, 1f,
|
||||
1f, 2f))
|
||||
assertTrue(
|
||||
FocalPointUtil.isVerticalCrop(
|
||||
2f, 1f,
|
||||
1f, 2f
|
||||
)
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun isHorizontalCropTest() {
|
||||
assertFalse(FocalPointUtil.isVerticalCrop(1f, 2f,
|
||||
2f,1f))
|
||||
assertFalse(
|
||||
FocalPointUtil.isVerticalCrop(
|
||||
1f, 2f,
|
||||
2f, 1f
|
||||
)
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun isPerfectFitTest() { // Doesn't matter what it returns, just check it doesn't crash
|
||||
FocalPointUtil.isVerticalCrop(3f, 1f,
|
||||
6f, 2f)
|
||||
FocalPointUtil.isVerticalCrop(
|
||||
3f, 1f,
|
||||
6f, 2f
|
||||
)
|
||||
}
|
||||
|
||||
// calculateScaling tests
|
||||
@Test
|
||||
fun perfectFitScaleDownTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(2f, 5f,
|
||||
5f, 12.5f), 0.4f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
2f, 5f,
|
||||
5f, 12.5f
|
||||
),
|
||||
0.4f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun perfectFitScaleUpTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(2f, 5f,
|
||||
1f, 2.5f), 2f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
2f, 5f,
|
||||
1f, 2.5f
|
||||
),
|
||||
2f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun verticalCropScaleUpTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(2f, 1f,
|
||||
1f, 2f), 2f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
2f, 1f,
|
||||
1f, 2f
|
||||
),
|
||||
2f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun verticalCropScaleDownTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(4f, 3f,
|
||||
8f, 24f), 0.5f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
4f, 3f,
|
||||
8f, 24f
|
||||
),
|
||||
0.5f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun horizontalCropScaleUpTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(1f, 2f,
|
||||
2f, 1f), 2f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
1f, 2f,
|
||||
2f, 1f
|
||||
),
|
||||
2f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun horizontalCropScaleDownTest() {
|
||||
assertEquals(FocalPointUtil.calculateScaling(3f, 4f,
|
||||
24f, 8f), 0.5f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.calculateScaling(
|
||||
3f, 4f,
|
||||
24f, 8f
|
||||
),
|
||||
0.5f, eps
|
||||
)
|
||||
}
|
||||
|
||||
// focalOffset tests
|
||||
@Test
|
||||
fun toLowFocalOffsetTest() {
|
||||
assertEquals(FocalPointUtil.focalOffset(2f, 8f, 1f, 0.05f),
|
||||
0f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.focalOffset(2f, 8f, 1f, 0.05f),
|
||||
0f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun toHighFocalOffsetTest() {
|
||||
assertEquals(FocalPointUtil.focalOffset(2f, 4f, 2f,0.95f),
|
||||
-6f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.focalOffset(2f, 4f, 2f, 0.95f),
|
||||
-6f, eps
|
||||
)
|
||||
}
|
||||
@Test
|
||||
fun possibleFocalOffsetTest() {
|
||||
assertEquals(FocalPointUtil.focalOffset(2f, 4f, 2f,0.7f),
|
||||
-4.6f, eps)
|
||||
assertEquals(
|
||||
FocalPointUtil.focalOffset(2f, 4f, 2f, 0.7f),
|
||||
-4.6f, eps
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,10 +36,10 @@ class SpanUtilsTest {
|
|||
@JvmStatic
|
||||
fun data(): Iterable<Any> {
|
||||
return listOf(
|
||||
"@mention",
|
||||
"#tag",
|
||||
"https://thr.ee/meh?foo=bar&wat=@at#hmm",
|
||||
"http://thr.ee/meh?foo=bar&wat=@at#hmm"
|
||||
"@mention",
|
||||
"#tag",
|
||||
"https://thr.ee/meh?foo=bar&wat=@at#hmm",
|
||||
"http://thr.ee/meh?foo=bar&wat=@at#hmm"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -94,21 +94,23 @@ class SpanUtilsTest {
|
|||
}
|
||||
|
||||
@RunWith(Parameterized::class)
|
||||
class HighlightingTestsForTag(private val text: String,
|
||||
private val expectedStartIndex: Int,
|
||||
private val expectedEndIndex: Int) {
|
||||
class HighlightingTestsForTag(
|
||||
private val text: String,
|
||||
private val expectedStartIndex: Int,
|
||||
private val expectedEndIndex: Int
|
||||
) {
|
||||
companion object {
|
||||
@Parameterized.Parameters(name = "{0}")
|
||||
@JvmStatic
|
||||
fun data(): Iterable<Any> {
|
||||
return listOf(
|
||||
arrayOf("#test", 0, 5),
|
||||
arrayOf(" #AfterSpace", 1, 12),
|
||||
arrayOf("#BeforeSpace ", 0, 12),
|
||||
arrayOf("@#after_at", 1, 10),
|
||||
arrayOf("あいうえお#after_hiragana", 5, 20),
|
||||
arrayOf("##DoubleHash", 1, 12),
|
||||
arrayOf("###TripleHash", 2, 13)
|
||||
arrayOf("#test", 0, 5),
|
||||
arrayOf(" #AfterSpace", 1, 12),
|
||||
arrayOf("#BeforeSpace ", 0, 12),
|
||||
arrayOf("@#after_at", 1, 10),
|
||||
arrayOf("あいうえお#after_hiragana", 5, 20),
|
||||
arrayOf("##DoubleHash", 1, 12),
|
||||
arrayOf("###TripleHash", 2, 13)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -133,13 +135,13 @@ class SpanUtilsTest {
|
|||
}
|
||||
|
||||
override fun <T : Any> getSpans(start: Int, end: Int, type: Class<T>): Array<T> {
|
||||
return spans.filter { it.start >= start && it.end <= end && type.isInstance(it)}
|
||||
.map { it.span }
|
||||
.toTypedArray() as Array<T>
|
||||
return spans.filter { it.start >= start && it.end <= end && type.isInstance(it) }
|
||||
.map { it.span }
|
||||
.toTypedArray() as Array<T>
|
||||
}
|
||||
|
||||
override fun removeSpan(what: Any?) {
|
||||
spans.removeIf { span -> span.span == what}
|
||||
spans.removeIf { span -> span.span == what }
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
|
@ -175,4 +177,4 @@ class SpanUtilsTest {
|
|||
throw NotImplementedError()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,21 +3,23 @@ package com.keylesspalace.tusky
|
|||
import com.keylesspalace.tusky.util.dec
|
||||
import com.keylesspalace.tusky.util.inc
|
||||
import com.keylesspalace.tusky.util.isLessThan
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class StringUtilsTest {
|
||||
@Test
|
||||
fun isLessThan() {
|
||||
val lessList = listOf(
|
||||
"abc" to "bcd",
|
||||
"ab" to "abc",
|
||||
"cb" to "abc",
|
||||
"1" to "2"
|
||||
"abc" to "bcd",
|
||||
"ab" to "abc",
|
||||
"cb" to "abc",
|
||||
"1" to "2"
|
||||
)
|
||||
lessList.forEach { (l, r) -> assertTrue("$l < $r", l.isLessThan(r)) }
|
||||
val notLessList = lessList.map { (l, r) -> r to l } + listOf(
|
||||
"abc" to "abc"
|
||||
"abc" to "abc"
|
||||
)
|
||||
notLessList.forEach { (l, r) -> assertFalse("not $l < $r", l.isLessThan(r)) }
|
||||
}
|
||||
|
@ -25,22 +27,22 @@ class StringUtilsTest {
|
|||
@Test
|
||||
fun inc() {
|
||||
listOf(
|
||||
"122" to "123",
|
||||
"12A" to "12B",
|
||||
"1" to "2"
|
||||
"122" to "123",
|
||||
"12A" to "12B",
|
||||
"1" to "2"
|
||||
).forEach { (l, r) -> assertEquals("$l + 1 = $r", r, l.inc()) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun dec() {
|
||||
listOf(
|
||||
"123" to "122",
|
||||
"12B" to "12A",
|
||||
"120" to "11z",
|
||||
"100" to "zz",
|
||||
"0" to "",
|
||||
"" to "",
|
||||
"2" to "1"
|
||||
"123" to "122",
|
||||
"12B" to "12A",
|
||||
"120" to "11z",
|
||||
"100" to "zz",
|
||||
"0" to "",
|
||||
"" to "",
|
||||
"2" to "1"
|
||||
).forEach { (l, r) -> assertEquals("$l - 1 = $r", r, l.dec()) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,4 +44,4 @@ class TuskyApplication : Application() {
|
|||
@JvmStatic
|
||||
lateinit var localeManager: LocaleManager
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,14 +23,15 @@ import org.junit.Assert.assertEquals
|
|||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.ArgumentMatchers.*
|
||||
import org.mockito.ArgumentMatchers.any
|
||||
import org.mockito.ArgumentMatchers.anyInt
|
||||
import org.mockito.ArgumentMatchers.anyLong
|
||||
import org.mockito.Mock
|
||||
import org.mockito.MockitoAnnotations
|
||||
import org.robolectric.annotation.Config
|
||||
import retrofit2.Response
|
||||
import java.util.*
|
||||
import java.util.Date
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
@Config(sdk = [28])
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
|
@ -50,7 +51,6 @@ class TimelineRepositoryTest {
|
|||
|
||||
private lateinit var testScheduler: TestScheduler
|
||||
|
||||
|
||||
private val limit = 30
|
||||
private val account = AccountEntity(
|
||||
id = 2,
|
||||
|
|
|
@ -14,14 +14,24 @@ import com.keylesspalace.tusky.network.TimelineCases
|
|||
import com.keylesspalace.tusky.util.Either
|
||||
import com.keylesspalace.tusky.util.toViewData
|
||||
import com.keylesspalace.tusky.viewdata.StatusViewData
|
||||
import com.nhaarman.mockitokotlin2.*
|
||||
import com.nhaarman.mockitokotlin2.clearInvocations
|
||||
import com.nhaarman.mockitokotlin2.doReturn
|
||||
import com.nhaarman.mockitokotlin2.eq
|
||||
import com.nhaarman.mockitokotlin2.isNull
|
||||
import com.nhaarman.mockitokotlin2.mock
|
||||
import com.nhaarman.mockitokotlin2.times
|
||||
import com.nhaarman.mockitokotlin2.verify
|
||||
import com.nhaarman.mockitokotlin2.whenever
|
||||
import io.reactivex.rxjava3.annotations.NonNull
|
||||
import io.reactivex.rxjava3.core.Observable
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.observers.TestObserver
|
||||
import io.reactivex.rxjava3.subjects.PublishSubject
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertNull
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.robolectric.annotation.Config
|
||||
|
@ -29,7 +39,6 @@ import org.robolectric.shadows.ShadowLog
|
|||
import retrofit2.Response
|
||||
import java.io.IOException
|
||||
|
||||
|
||||
@Config(sdk = [29])
|
||||
class TimelineViewModelTest {
|
||||
lateinit var timelineRepository: TimelineRepository
|
||||
|
@ -727,7 +736,6 @@ class TimelineViewModelTest {
|
|||
).thenReturn(Single.just(items))
|
||||
}
|
||||
|
||||
|
||||
private fun assertHasList(aList: List<StatusViewData>) {
|
||||
assertEquals(
|
||||
aList,
|
||||
|
@ -780,4 +788,4 @@ class TimelineViewModelTest {
|
|||
}
|
||||
|
||||
private fun List<Status>.toEitherList() = map { Either.Right<Placeholder, Status>(it) }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.keylesspalace.tusky.util
|
||||
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
|
||||
class EmojiCompatFontTest {
|
||||
|
@ -9,39 +9,39 @@ class EmojiCompatFontTest {
|
|||
fun testCompareVersions() {
|
||||
|
||||
assertEquals(
|
||||
-1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(0),
|
||||
listOf(1, 2, 3)
|
||||
)
|
||||
-1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(0),
|
||||
listOf(1, 2, 3)
|
||||
)
|
||||
)
|
||||
assertEquals(
|
||||
1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(1, 2, 3),
|
||||
listOf(0, 0, 0)
|
||||
)
|
||||
1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(1, 2, 3),
|
||||
listOf(0, 0, 0)
|
||||
)
|
||||
)
|
||||
assertEquals(
|
||||
-1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(1, 0, 1),
|
||||
listOf(1, 1, 0)
|
||||
)
|
||||
-1,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(1, 0, 1),
|
||||
listOf(1, 1, 0)
|
||||
)
|
||||
)
|
||||
assertEquals(
|
||||
0,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(4, 5, 6),
|
||||
listOf(4, 5, 6)
|
||||
)
|
||||
0,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(4, 5, 6),
|
||||
listOf(4, 5, 6)
|
||||
)
|
||||
)
|
||||
assertEquals(
|
||||
0,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(0, 0),
|
||||
listOf(0)
|
||||
)
|
||||
0,
|
||||
EmojiCompatFont.compareVersions(
|
||||
listOf(0, 0),
|
||||
listOf(0)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,11 +23,13 @@ class RickRollTest {
|
|||
@Test
|
||||
fun testShouldRickRoll() {
|
||||
listOf("gab.Com", "social.gab.ai", "whatever.GAB.com").forEach {
|
||||
rollableDomain -> assertTrue(shouldRickRoll(activity, rollableDomain))
|
||||
rollableDomain ->
|
||||
assertTrue(shouldRickRoll(activity, rollableDomain))
|
||||
}
|
||||
|
||||
listOf("chaos.social", "notgab.com").forEach {
|
||||
notRollableDomain -> assertFalse(shouldRickRoll(activity, notRollableDomain))
|
||||
notRollableDomain ->
|
||||
assertFalse(shouldRickRoll(activity, notRollableDomain))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ import org.robolectric.annotation.Config
|
|||
@RunWith(AndroidJUnit4::class)
|
||||
class SmartLengthInputFilterTest {
|
||||
|
||||
|
||||
@Test
|
||||
fun shouldNotTrimStatusWithLength0() {
|
||||
assertFalse(shouldTrimStatus(SpannableStringBuilder("")))
|
||||
|
@ -25,56 +24,80 @@ class SmartLengthInputFilterTest {
|
|||
|
||||
@Test
|
||||
fun shouldNotTrimStatusWithLength500() {
|
||||
assertFalse(shouldTrimStatus(SpannableStringBuilder("u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4")))
|
||||
assertFalse(
|
||||
shouldTrimStatus(
|
||||
SpannableStringBuilder(
|
||||
"u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldNotTrimStatusWithLength666() {
|
||||
assertFalse(shouldTrimStatus(SpannableStringBuilder("hIAXqY7DYynQGcr3zxcjCjNZFcdwAzwnWv" +
|
||||
"NHONtT55rO3r2faeMRZLTG3JlOshq8M1mtLRn0Ca8M9w82nIjJDm1jspxhFc4uLFpOjb9Gm2BokgRftA8ih" +
|
||||
"pv6wvMwF5Fg8V4qa8GcXcqt1q7S9g09S3PszCXG4wnrR6dp8GGc9TqVArgmoLSc9EVREIRcLPdzkhV1WWM9" +
|
||||
"ZWw7josT27BfBdMWk0ckQkClHAyqLtlKZ84WamxK2q3NtHR5gr7ohIjU8CZoKDjv1bA8ZI8wBesyOhqbmHf" +
|
||||
"0Ltypq39WKZ63VTGSf5Dd9kuTEjlXJtxZD1DXH4FFplY45DH5WuQ61Ih5dGx0WFEEVb1L3aku3Ht8rKG7YU" +
|
||||
"bOPeanGMBmeI9YRdiD4MmuTUkJfVLkA9rrpRtiEYw8RS3Jf9iqDkTpES9aLQODMip5xTsT4liIcUbLo0Z1d" +
|
||||
"NhHk7YKubigNQIm1mmh2iU3Q0ZEm8TraDpKu2o27gIwSKbAnTllrOokprPxWQWDVrN9bIliwGHzgTKPI5z8" +
|
||||
"gUybaqewxUYe12GvxnzqpfPFvvHricyZAC9i6Fkil5VmFdae75tLFWRBfE8Wfep0dSjL751m2yzvzZTc6uZ" +
|
||||
"RTcUiipvl42DaY8Z5eG2b6xPVhvXshMORvHzwhJhPkHSbnwXX5K")))
|
||||
assertFalse(
|
||||
shouldTrimStatus(
|
||||
SpannableStringBuilder(
|
||||
"hIAXqY7DYynQGcr3zxcjCjNZFcdwAzwnWv" +
|
||||
"NHONtT55rO3r2faeMRZLTG3JlOshq8M1mtLRn0Ca8M9w82nIjJDm1jspxhFc4uLFpOjb9Gm2BokgRftA8ih" +
|
||||
"pv6wvMwF5Fg8V4qa8GcXcqt1q7S9g09S3PszCXG4wnrR6dp8GGc9TqVArgmoLSc9EVREIRcLPdzkhV1WWM9" +
|
||||
"ZWw7josT27BfBdMWk0ckQkClHAyqLtlKZ84WamxK2q3NtHR5gr7ohIjU8CZoKDjv1bA8ZI8wBesyOhqbmHf" +
|
||||
"0Ltypq39WKZ63VTGSf5Dd9kuTEjlXJtxZD1DXH4FFplY45DH5WuQ61Ih5dGx0WFEEVb1L3aku3Ht8rKG7YU" +
|
||||
"bOPeanGMBmeI9YRdiD4MmuTUkJfVLkA9rrpRtiEYw8RS3Jf9iqDkTpES9aLQODMip5xTsT4liIcUbLo0Z1d" +
|
||||
"NhHk7YKubigNQIm1mmh2iU3Q0ZEm8TraDpKu2o27gIwSKbAnTllrOokprPxWQWDVrN9bIliwGHzgTKPI5z8" +
|
||||
"gUybaqewxUYe12GvxnzqpfPFvvHricyZAC9i6Fkil5VmFdae75tLFWRBfE8Wfep0dSjL751m2yzvzZTc6uZ" +
|
||||
"RTcUiipvl42DaY8Z5eG2b6xPVhvXshMORvHzwhJhPkHSbnwXX5K"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldTrimStatusWithLength667() {
|
||||
assertTrue(shouldTrimStatus(SpannableStringBuilder("hIAXqY7DYynQGcr3zxcjCjNZFcdwAzwnWv" +
|
||||
"NHONtT55rO3r2faeMRZLTG3JlOshq8M1mtLRn0Ca8M9w82nIjJDm1jspxhFc4uLFpOjb9Gm2BokgRftA8ih" +
|
||||
"pv6wvMwF5Fg8V4qa8GcXcqt1q7S9g09S3PszCXG4wnrR6dp8GGc9TqVArgmoLSc9EVREIRcLPdzkhV1WWM9" +
|
||||
"ZWw7josT27BfBdMWk0ckQkClHAyqLtlKZ84WamxK2q3NtHR5gr7ohIjU8CZoKDjv1bA8ZI8wBesyOhqbmHf" +
|
||||
"0Ltypq39WKZ63VTGSf5Dd9kuTEjlXJtxZD1DXH4FFplY45DH5WuQ61Ih5dGx0WFEEVb1L3aku3Ht8rKG7YU" +
|
||||
"bOPeanGMBmeI9YRdiD4MmuTUkJfVLkA9rrpRtiEYw8RS3Jf9iqDkTpES9aLQODMip5xTsT4liIcUbLo0Z1d" +
|
||||
"NhHk7YKubigNQIm1mmh2iU3Q0ZEm8TraDpKu2o27gIwSKbAnTllrOokprPxWQWDVrN9bIliwGHzgTKPI5z8" +
|
||||
"gUybaqewxUYe12GvxnzqpfPFvvHricyZAC9i6Fkil5VmFdae75tLFWRBfE8Wfep0dSjL751m2yzvzZTc6uZ" +
|
||||
"RTcUiipvl42DaY8Z5eG2b6xPVhvXshMORvHzwhJhPkHSbnwXX5K1")))
|
||||
assertTrue(
|
||||
shouldTrimStatus(
|
||||
SpannableStringBuilder(
|
||||
"hIAXqY7DYynQGcr3zxcjCjNZFcdwAzwnWv" +
|
||||
"NHONtT55rO3r2faeMRZLTG3JlOshq8M1mtLRn0Ca8M9w82nIjJDm1jspxhFc4uLFpOjb9Gm2BokgRftA8ih" +
|
||||
"pv6wvMwF5Fg8V4qa8GcXcqt1q7S9g09S3PszCXG4wnrR6dp8GGc9TqVArgmoLSc9EVREIRcLPdzkhV1WWM9" +
|
||||
"ZWw7josT27BfBdMWk0ckQkClHAyqLtlKZ84WamxK2q3NtHR5gr7ohIjU8CZoKDjv1bA8ZI8wBesyOhqbmHf" +
|
||||
"0Ltypq39WKZ63VTGSf5Dd9kuTEjlXJtxZD1DXH4FFplY45DH5WuQ61Ih5dGx0WFEEVb1L3aku3Ht8rKG7YU" +
|
||||
"bOPeanGMBmeI9YRdiD4MmuTUkJfVLkA9rrpRtiEYw8RS3Jf9iqDkTpES9aLQODMip5xTsT4liIcUbLo0Z1d" +
|
||||
"NhHk7YKubigNQIm1mmh2iU3Q0ZEm8TraDpKu2o27gIwSKbAnTllrOokprPxWQWDVrN9bIliwGHzgTKPI5z8" +
|
||||
"gUybaqewxUYe12GvxnzqpfPFvvHricyZAC9i6Fkil5VmFdae75tLFWRBfE8Wfep0dSjL751m2yzvzZTc6uZ" +
|
||||
"RTcUiipvl42DaY8Z5eG2b6xPVhvXshMORvHzwhJhPkHSbnwXX5K1"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun shouldTrimStatusWithLength1000() {
|
||||
assertTrue(shouldTrimStatus(SpannableStringBuilder("u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4"+
|
||||
"u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4")))
|
||||
assertTrue(
|
||||
shouldTrimStatus(
|
||||
SpannableStringBuilder(
|
||||
"u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4" +
|
||||
"u1Pc5TbDVYFnzIdqlQkb3xuZ2S61fFD1K4u" +
|
||||
"cb3q40dnELjAsWxnSH59jqly249Spr0Vod029zfwFHYQ0PkBCNQ7tuk90h6aY661RFC7vhIKJna4yDYOBFj" +
|
||||
"RR9u0CsUa6vlgEE5yUrk5LKn3bmnnzRCXmU6HyT2bFu256qoUWbmMQ6GFXUXjO28tru8Q3UiXKLgrotKdSH" +
|
||||
"mmqPwQgtatbMykTW4RZdKTE46nzlbD3mXHdWQkf4uVPYhVT1CMvVbCPMaimfQ0xuU8CpxyVqA8a6lCL3YX9" +
|
||||
"pNnZjD7DoCg2FCejANnjXsTF6vuqPSHjQZDjy696nSAFy95p9kBeJkc70fHzX5TcfUqSaNtvx3LUtpIkwh4" +
|
||||
"q2EYmKISPsxlANaspEMPuX6r9fSACiEwmHsitZkp4RMKZq5NqRsGPCiAXcNIN3jj9fCYVGxUwVxVeCescDG" +
|
||||
"5naEEszIR3FT1RO4MSn9c2ZZi0UdLizd8ciJAIuwwmcVyYyyM4"
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,24 +7,24 @@ import org.junit.runners.Parameterized
|
|||
|
||||
@RunWith(Parameterized::class)
|
||||
class VersionUtilsTest(
|
||||
private val versionString: String,
|
||||
private val supportsScheduledToots: Boolean
|
||||
private val versionString: String,
|
||||
private val supportsScheduledToots: Boolean
|
||||
) {
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@Parameterized.Parameters
|
||||
fun data() = listOf(
|
||||
arrayOf("2.0.0", false),
|
||||
arrayOf("2a9a0", false),
|
||||
arrayOf("1.0", false),
|
||||
arrayOf("error", false),
|
||||
arrayOf("", false),
|
||||
arrayOf("2.6.9", false),
|
||||
arrayOf("2.7.0", true),
|
||||
arrayOf("2.00008.0", true),
|
||||
arrayOf("2.7.2 (compatible; Pleroma 1.0.0-1168-ge18c7866-pleroma-dot-site)", true),
|
||||
arrayOf("3.0.1", true)
|
||||
arrayOf("2.0.0", false),
|
||||
arrayOf("2a9a0", false),
|
||||
arrayOf("1.0", false),
|
||||
arrayOf("error", false),
|
||||
arrayOf("", false),
|
||||
arrayOf("2.6.9", false),
|
||||
arrayOf("2.7.0", true),
|
||||
arrayOf("2.00008.0", true),
|
||||
arrayOf("2.7.2 (compatible; Pleroma 1.0.0-1168-ge18c7866-pleroma-dot-site)", true),
|
||||
arrayOf("3.0.1", true)
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -32,5 +32,4 @@ class VersionUtilsTest(
|
|||
fun testVersionUtils() {
|
||||
assertEquals(VersionUtils(versionString).supportsScheduledToots(), supportsScheduledToots)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue