mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-25 05:27:42 +00:00
53 lines
1.9 KiB
Kotlin
53 lines
1.9 KiB
Kotlin
package org.thoughtcrime.securesms
|
|
|
|
import org.signal.core.util.concurrent.SignalExecutors
|
|
import org.signal.core.util.logging.AndroidLogger
|
|
import org.signal.core.util.logging.Log
|
|
import org.signal.libsignal.protocol.logging.SignalProtocolLoggerProvider
|
|
import org.thoughtcrime.securesms.database.LogDatabase
|
|
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider
|
|
import org.thoughtcrime.securesms.dependencies.InstrumentationApplicationDependencyProvider
|
|
import org.thoughtcrime.securesms.logging.CustomSignalProtocolLogger
|
|
import org.thoughtcrime.securesms.logging.PersistentLogger
|
|
import org.thoughtcrime.securesms.testing.InMemoryLogger
|
|
|
|
/**
|
|
* Application context for running instrumentation tests (aka androidTests).
|
|
*/
|
|
class SignalInstrumentationApplicationContext : ApplicationContext() {
|
|
|
|
val inMemoryLogger: InMemoryLogger = InMemoryLogger()
|
|
|
|
override fun initializeAppDependencies() {
|
|
val default = ApplicationDependencyProvider(this)
|
|
AppDependencies.init(this, InstrumentationApplicationDependencyProvider(this, default))
|
|
AppDependencies.deadlockDetector.start()
|
|
}
|
|
|
|
override fun initializeLogging() {
|
|
Log.initialize({ true }, AndroidLogger, PersistentLogger.getInstance(this), inMemoryLogger)
|
|
|
|
SignalProtocolLoggerProvider.setProvider(CustomSignalProtocolLogger())
|
|
|
|
SignalExecutors.UNBOUNDED.execute {
|
|
Log.blockUntilAllWritesFinished()
|
|
LogDatabase.getInstance(this).logs.trimToSize()
|
|
}
|
|
}
|
|
|
|
override fun beginJobLoop() = Unit
|
|
|
|
/**
|
|
* Some of the jobs can interfere with some of the instrumentation tests.
|
|
*
|
|
* For example, we may try to create a release channel recipient while doing
|
|
* an import/backup test.
|
|
*
|
|
* This can be used to start the job loop if needed for tests that rely on it.
|
|
*/
|
|
fun beginJobLoopForTests() {
|
|
super.beginJobLoop()
|
|
}
|
|
}
|