mirror of
https://github.com/xtclovver/RKNHardering.git
synced 2026-04-28 12:39:55 +00:00
fix: UI недоработки
This commit is contained in:
parent
f31ca5491d
commit
5285a6c18c
2 changed files with 35 additions and 0 deletions
|
|
@ -7,6 +7,7 @@ import android.widget.LinearLayout
|
|||
import android.widget.TextView
|
||||
import androidx.test.core.app.ApplicationProvider
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import com.notcvnt.rknhardering.checker.CheckSettings
|
||||
import com.notcvnt.rknhardering.model.CategoryResult
|
||||
import com.notcvnt.rknhardering.model.CdnPullingResponse
|
||||
import com.notcvnt.rknhardering.model.Finding
|
||||
|
|
@ -108,6 +109,24 @@ class MainActivityUiRenderingTest {
|
|||
assertFalse(collectText(findings).contains("Socket timeout to 203.0.113.64"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `prepare check session shows loading hint for call transport tile when probe enabled`() {
|
||||
val activity = Robolectric.buildActivity(MainActivity::class.java).setup().get()
|
||||
|
||||
invokePrivate<Unit>(
|
||||
activity,
|
||||
"prepareCheckSessionUi",
|
||||
CheckSettings(callTransportProbeEnabled = true),
|
||||
false,
|
||||
)
|
||||
|
||||
val tiles = getPrivateField<Map<String, Any>>(activity, "tiles")
|
||||
val callTransportTile = tiles.getValue("stn")
|
||||
val hint = getPrivateField<TextView>(callTransportTile, "hint")
|
||||
|
||||
assertEquals(activity.getString(R.string.tile_hint_loading), hint.text.toString())
|
||||
}
|
||||
|
||||
private fun collectText(view: View): String {
|
||||
if (view is TextView) return view.text.toString()
|
||||
if (view !is ViewGroup) return ""
|
||||
|
|
@ -125,6 +144,13 @@ class MainActivityUiRenderingTest {
|
|||
assertFalse("Expected text to contain <$expected>, got <$text>", !text.contains(expected))
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
private fun <T> getPrivateField(target: Any, name: String): T {
|
||||
val field = target::class.java.getDeclaredField(name)
|
||||
field.isAccessible = true
|
||||
return field.get(target) as T
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
private fun <T> invokePrivate(target: Any, name: String, vararg args: Any?): T {
|
||||
val method = target::class.java.declaredMethods.first { candidate ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue