2020-12-11 22:25:45 +01:00
|
|
|
package jp.juggler.subwaytooter
|
|
|
|
|
2021-10-27 22:58:19 +02:00
|
|
|
import androidx.test.platform.app.InstrumentationRegistry
|
2021-10-28 01:37:39 +02:00
|
|
|
import androidx.test.runner.AndroidJUnit4
|
2020-12-11 22:25:45 +01:00
|
|
|
import jp.juggler.subwaytooter.api.TootApiCallback
|
|
|
|
import jp.juggler.subwaytooter.api.TootApiClient
|
|
|
|
import jp.juggler.subwaytooter.api.entity.Host
|
|
|
|
import jp.juggler.subwaytooter.api.entity.TootInstance
|
|
|
|
import jp.juggler.subwaytooter.table.SavedAccount
|
|
|
|
import jp.juggler.subwaytooter.util.SimpleHttpClientImpl
|
|
|
|
import jp.juggler.util.LogCategory
|
|
|
|
import jp.juggler.util.MySslSocketFactory
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
import kotlinx.coroutines.runBlocking
|
|
|
|
import kotlinx.coroutines.withContext
|
|
|
|
import okhttp3.ConnectionSpec
|
|
|
|
import okhttp3.OkHttpClient
|
2021-10-27 22:58:19 +02:00
|
|
|
import org.junit.Assert.assertNotNull
|
|
|
|
import org.junit.Assert.assertNull
|
2020-12-11 22:25:45 +01:00
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
import java.util.*
|
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
|
|
|
@RunWith(AndroidJUnit4::class)
|
|
|
|
class TestTootInstance {
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
private val log = LogCategory("TestTootInstance")
|
|
|
|
|
|
|
|
// val cookieJar = JavaNetCookieJar(CookieManager().apply {
|
|
|
|
// setCookiePolicy(CookiePolicy.ACCEPT_ALL)
|
|
|
|
// CookieHandler.setDefault(this)
|
|
|
|
// })
|
|
|
|
|
|
|
|
private val okHttp = OkHttpClient.Builder()
|
|
|
|
.connectTimeout(60.toLong(), TimeUnit.SECONDS)
|
|
|
|
.readTimeout(60.toLong(), TimeUnit.SECONDS)
|
|
|
|
.writeTimeout(60.toLong(), TimeUnit.SECONDS)
|
|
|
|
.pingInterval(10, TimeUnit.SECONDS)
|
2021-10-27 22:58:19 +02:00
|
|
|
.connectionSpecs(
|
|
|
|
Collections.singletonList(
|
|
|
|
ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
|
|
|
|
.allEnabledCipherSuites()
|
|
|
|
.allEnabledTlsVersions()
|
|
|
|
.build()
|
|
|
|
)
|
|
|
|
)
|
2020-12-11 22:25:45 +01:00
|
|
|
.sslSocketFactory(MySslSocketFactory, MySslSocketFactory.trustManager)
|
|
|
|
.build()
|
|
|
|
|
|
|
|
private val dummyClientCallback = object : TootApiCallback {
|
|
|
|
override val isApiCancelled: Boolean = false
|
|
|
|
override suspend fun publishApiProgress(s: String) {
|
|
|
|
log.d("apiProgress: $s")
|
|
|
|
}
|
|
|
|
|
|
|
|
override suspend fun publishApiProgressRatio(value: Int, max: Int) {
|
|
|
|
log.d("apiProgressRatio: $value/$max")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-27 22:58:19 +02:00
|
|
|
private val appContext = InstrumentationRegistry.getInstrumentation().targetContext!!
|
2020-12-11 22:25:45 +01:00
|
|
|
|
|
|
|
val client = TootApiClient(
|
|
|
|
context = appContext,
|
2021-10-27 22:58:19 +02:00
|
|
|
httpClient = SimpleHttpClientImpl(appContext, okHttp),
|
2020-12-11 22:25:45 +01:00
|
|
|
callback = dummyClientCallback
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
TootInstance.get() はアカウントを指定する場合とホストを指定する場合がある
|
|
|
|
ホスト指定とアカウント指定、 MastodonとMisskey で試す
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun testWithoutAccount() {
|
|
|
|
runBlocking {
|
2021-10-27 22:58:19 +02:00
|
|
|
withContext(Dispatchers.IO) {
|
|
|
|
suspend fun a(host: Host) {
|
|
|
|
val (ti, ri) = TootInstance.getEx(client, hostArg = host)
|
2020-12-11 22:25:45 +01:00
|
|
|
assertNotNull(ti)
|
|
|
|
assertNull(ri?.error)
|
2021-10-27 22:58:19 +02:00
|
|
|
ti!!.run { log.d("$instanceType $uri $version") }
|
2020-12-11 22:25:45 +01:00
|
|
|
|
|
|
|
}
|
|
|
|
a(Host.parse("mastodon.juggler.jp"))
|
|
|
|
a(Host.parse("misskey.io"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun testWithAccount() {
|
|
|
|
runBlocking {
|
2021-10-27 22:58:19 +02:00
|
|
|
withContext(Dispatchers.IO) {
|
|
|
|
suspend fun a(account: SavedAccount) {
|
|
|
|
val (ti, ri) = TootInstance.getEx(client, account = account)
|
2020-12-11 22:25:45 +01:00
|
|
|
assertNull(ri?.error)
|
|
|
|
assertNotNull(ti)
|
2021-10-27 22:58:19 +02:00
|
|
|
ti!!.run { log.d("${account.acct} $instanceType $uri $version") }
|
2020-12-11 22:25:45 +01:00
|
|
|
}
|
2021-10-27 22:58:19 +02:00
|
|
|
a(SavedAccount(45, "tateisu@mastodon.juggler.jp"))
|
|
|
|
a(SavedAccount(45, "tateisu@misskey.io", misskeyVersion = 12))
|
2020-12-11 22:25:45 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|