Add host document providers for file failure tests

This commit is contained in:
evgeny committed 2026-10-28 11:36:13 +01:00
1 parent 84e4667f5c
commit 529237dfc8
3 files changed
+34

No files matched your search

@@ -9,6 +9,7 @@ import android.hardware.SensorManager
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import com.utun.chat.data.HostConfigProvider
import java.io.File
/** Только host-тест: управляемые Android managers, без устройств/разрешений ОС. */
class Context {
@@ -17,6 +18,8 @@ class Context {
const val POWER_SERVICE = "power"
}
val packageName = "com.utun.chat"
var cacheDir = File(System.getProperty("java.io.tmpdir"), "utun-router-host-cache")
val contentResolver = ContentResolver()
var vibrator: Vibrator? = Vibrator()
var powerManager: PowerManager? = PowerManager()
var notificationManager: NotificationManager? = NotificationManager()
@@ -0,0 +1,24 @@
package android.content
import android.net.Uri
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.InputStream
import java.io.OutputStream
/** Управляемые URI без Android provider; ошибки чтения/записи задаёт конкретный тест. */
class ContentResolver {
var displayName = "document.bin"
var input: (Uri) -> InputStream? = { ByteArrayInputStream(byteArrayOf(1, 2, 3)) }
var output: (Uri) -> OutputStream? = { ByteArrayOutputStream() }
var delete: (Uri) -> Boolean = { true }
fun query(uri: Uri, projection: Array<String>, selection: String?, args: Array<String>?, order: String?) = Cursor(displayName)
fun openInputStream(uri: Uri) = input(uri)
fun openOutputStream(uri: Uri, mode: String) = output(uri)
}
class Cursor(private val name: String) : AutoCloseable {
fun moveToFirst() = true
fun getString(column: Int) = name
override fun close() {}
}
@@ -0,0 +1,7 @@
package android.provider
import android.content.ContentResolver
import android.net.Uri
object OpenableColumns { const val DISPLAY_NAME = "_display_name" }
object DocumentsContract { fun deleteDocument(resolver: ContentResolver, uri: Uri) = resolver.delete(uri) }