Add host document providers for file failure tests
This commit is contained in:
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) }
|
||||
Reference in new issue
Block a user