Fix tests
This commit is contained in:
parent
d71b639ada
commit
0c215f2d1e
3 changed files with 52 additions and 37 deletions
|
|
@ -53,6 +53,10 @@ class FakeBugReporter(val mode: Mode = Mode.Success) : BugReporter {
|
||||||
return File("fake")
|
return File("fake")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun setLogDirectorySubfolder(subfolderName: String?) {
|
||||||
|
// No op
|
||||||
|
}
|
||||||
|
|
||||||
override fun setCurrentTracingLogLevel(logLevel: String) {
|
override fun setCurrentTracingLogLevel(logLevel: String) {
|
||||||
// No op
|
// No op
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,19 @@ package io.element.android.features.rageshake.impl.reporter
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.appconfig.RageshakeConfig
|
import io.element.android.appconfig.RageshakeConfig
|
||||||
import io.element.android.features.rageshake.api.reporter.BugReporterListener
|
import io.element.android.features.rageshake.api.reporter.BugReporterListener
|
||||||
|
import io.element.android.features.rageshake.impl.crash.CrashDataStore
|
||||||
import io.element.android.features.rageshake.impl.crash.FakeCrashDataStore
|
import io.element.android.features.rageshake.impl.crash.FakeCrashDataStore
|
||||||
import io.element.android.features.rageshake.impl.screenshot.FakeScreenshotHolder
|
import io.element.android.features.rageshake.impl.screenshot.FakeScreenshotHolder
|
||||||
|
import io.element.android.libraries.matrix.api.MatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
|
||||||
import io.element.android.libraries.matrix.test.FakeSdkMetadata
|
import io.element.android.libraries.matrix.test.FakeSdkMetadata
|
||||||
|
import io.element.android.libraries.matrix.test.auth.FakeMatrixAuthenticationService
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
|
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
|
||||||
|
import io.element.android.libraries.matrix.test.tracing.FakeTracingService
|
||||||
import io.element.android.libraries.network.useragent.DefaultUserAgentProvider
|
import io.element.android.libraries.network.useragent.DefaultUserAgentProvider
|
||||||
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
import io.element.android.libraries.sessionstorage.impl.memory.InMemorySessionStore
|
import io.element.android.libraries.sessionstorage.impl.memory.InMemorySessionStore
|
||||||
import io.element.android.libraries.sessionstorage.test.aSessionData
|
import io.element.android.libraries.sessionstorage.test.aSessionData
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
|
|
@ -45,7 +50,7 @@ class DefaultBugReporterTest {
|
||||||
.setResponseCode(200)
|
.setResponseCode(200)
|
||||||
)
|
)
|
||||||
server.start()
|
server.start()
|
||||||
val sut = createDefaultBugReporter(server)
|
val sut = createDefaultBugReporter(server = server)
|
||||||
var onUploadCancelledCalled = false
|
var onUploadCancelledCalled = false
|
||||||
var onUploadFailedCalled = false
|
var onUploadFailedCalled = false
|
||||||
val progressValues = mutableListOf<Int>()
|
val progressValues = mutableListOf<Int>()
|
||||||
|
|
@ -97,22 +102,14 @@ class DefaultBugReporterTest {
|
||||||
storeData(aSessionData(sessionId = "@foo:example.com", deviceId = "ABCDEFGH"))
|
storeData(aSessionData(sessionId = "@foo:example.com", deviceId = "ABCDEFGH"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val buildMeta = aBuildMeta()
|
|
||||||
val fakeEncryptionService = FakeEncryptionService()
|
val fakeEncryptionService = FakeEncryptionService()
|
||||||
val matrixClient = FakeMatrixClient(encryptionService = fakeEncryptionService)
|
val matrixClient = FakeMatrixClient(encryptionService = fakeEncryptionService)
|
||||||
|
|
||||||
fakeEncryptionService.givenDeviceKeys("CURVECURVECURVE", "EDKEYEDKEYEDKY")
|
fakeEncryptionService.givenDeviceKeys("CURVECURVECURVE", "EDKEYEDKEYEDKY")
|
||||||
val sut = DefaultBugReporter(
|
val sut = createDefaultBugReporter(
|
||||||
context = RuntimeEnvironment.getApplication(),
|
server = server,
|
||||||
screenshotHolder = FakeScreenshotHolder(),
|
|
||||||
crashDataStore = FakeCrashDataStore(),
|
crashDataStore = FakeCrashDataStore(),
|
||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
|
||||||
okHttpClient = { OkHttpClient.Builder().build() },
|
|
||||||
userAgentProvider = DefaultUserAgentProvider(buildMeta, FakeSdkMetadata("123456789")),
|
|
||||||
sessionStore = mockSessionStore,
|
sessionStore = mockSessionStore,
|
||||||
buildMeta = buildMeta,
|
|
||||||
bugReporterUrlProvider = { server.url("/") },
|
|
||||||
sdkMetadata = FakeSdkMetadata("123456789"),
|
|
||||||
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -166,22 +163,13 @@ class DefaultBugReporterTest {
|
||||||
storeData(aSessionData("@foo:example.com", "ABCDEFGH"))
|
storeData(aSessionData("@foo:example.com", "ABCDEFGH"))
|
||||||
}
|
}
|
||||||
|
|
||||||
val buildMeta = aBuildMeta()
|
|
||||||
val fakeEncryptionService = FakeEncryptionService()
|
val fakeEncryptionService = FakeEncryptionService()
|
||||||
val matrixClient = FakeMatrixClient(encryptionService = fakeEncryptionService)
|
val matrixClient = FakeMatrixClient(encryptionService = fakeEncryptionService)
|
||||||
|
|
||||||
fakeEncryptionService.givenDeviceKeys(null, null)
|
fakeEncryptionService.givenDeviceKeys(null, null)
|
||||||
val sut = DefaultBugReporter(
|
val sut = createDefaultBugReporter(
|
||||||
context = RuntimeEnvironment.getApplication(),
|
server = server,
|
||||||
screenshotHolder = FakeScreenshotHolder(),
|
|
||||||
crashDataStore = FakeCrashDataStore(),
|
|
||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
|
||||||
okHttpClient = { OkHttpClient.Builder().build() },
|
|
||||||
userAgentProvider = DefaultUserAgentProvider(buildMeta, FakeSdkMetadata("123456789")),
|
|
||||||
sessionStore = mockSessionStore,
|
sessionStore = mockSessionStore,
|
||||||
buildMeta = buildMeta,
|
|
||||||
bugReporterUrlProvider = { server.url("/") },
|
|
||||||
sdkMetadata = FakeSdkMetadata("123456789"),
|
|
||||||
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.success(matrixClient) })
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -209,21 +197,13 @@ class DefaultBugReporterTest {
|
||||||
)
|
)
|
||||||
server.start()
|
server.start()
|
||||||
|
|
||||||
val buildMeta = aBuildMeta()
|
|
||||||
val fakeEncryptionService = FakeEncryptionService()
|
val fakeEncryptionService = FakeEncryptionService()
|
||||||
|
|
||||||
fakeEncryptionService.givenDeviceKeys(null, null)
|
fakeEncryptionService.givenDeviceKeys(null, null)
|
||||||
val sut = DefaultBugReporter(
|
val sut = createDefaultBugReporter(
|
||||||
context = RuntimeEnvironment.getApplication(),
|
server = server,
|
||||||
screenshotHolder = FakeScreenshotHolder(),
|
|
||||||
crashDataStore = FakeCrashDataStore("I did crash", true),
|
crashDataStore = FakeCrashDataStore("I did crash", true),
|
||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
|
||||||
okHttpClient = { OkHttpClient.Builder().build() },
|
|
||||||
userAgentProvider = DefaultUserAgentProvider(buildMeta, FakeSdkMetadata("123456789")),
|
|
||||||
sessionStore = InMemorySessionStore(),
|
sessionStore = InMemorySessionStore(),
|
||||||
buildMeta = buildMeta,
|
|
||||||
bugReporterUrlProvider = { server.url("/") },
|
|
||||||
sdkMetadata = FakeSdkMetadata("123456789"),
|
|
||||||
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.failure(Exception("Mock no client")) })
|
matrixClientProvider = FakeMatrixClientProvider(getClient = { Result.failure(Exception("Mock no client")) })
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -276,7 +256,7 @@ class DefaultBugReporterTest {
|
||||||
.setBody("""{"error": "An error body"}""")
|
.setBody("""{"error": "An error body"}""")
|
||||||
)
|
)
|
||||||
server.start()
|
server.start()
|
||||||
val sut = createDefaultBugReporter(server)
|
val sut = createDefaultBugReporter(server = server)
|
||||||
var onUploadCancelledCalled = false
|
var onUploadCancelledCalled = false
|
||||||
var onUploadFailedCalled = false
|
var onUploadFailedCalled = false
|
||||||
var onUploadFailedReason: String? = null
|
var onUploadFailedReason: String? = null
|
||||||
|
|
@ -319,21 +299,26 @@ class DefaultBugReporterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun TestScope.createDefaultBugReporter(
|
private fun TestScope.createDefaultBugReporter(
|
||||||
server: MockWebServer
|
sessionStore: SessionStore = InMemorySessionStore(),
|
||||||
|
matrixClientProvider: MatrixClientProvider = FakeMatrixClientProvider(),
|
||||||
|
crashDataStore: CrashDataStore = FakeCrashDataStore(),
|
||||||
|
server: MockWebServer = MockWebServer(),
|
||||||
): DefaultBugReporter {
|
): DefaultBugReporter {
|
||||||
val buildMeta = aBuildMeta()
|
val buildMeta = aBuildMeta()
|
||||||
return DefaultBugReporter(
|
return DefaultBugReporter(
|
||||||
context = RuntimeEnvironment.getApplication(),
|
context = RuntimeEnvironment.getApplication(),
|
||||||
screenshotHolder = FakeScreenshotHolder(),
|
screenshotHolder = FakeScreenshotHolder(),
|
||||||
crashDataStore = FakeCrashDataStore(),
|
crashDataStore = crashDataStore,
|
||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
coroutineDispatchers = testCoroutineDispatchers(),
|
||||||
okHttpClient = { OkHttpClient.Builder().build() },
|
okHttpClient = { OkHttpClient.Builder().build() },
|
||||||
userAgentProvider = DefaultUserAgentProvider(buildMeta, FakeSdkMetadata("123456789")),
|
userAgentProvider = DefaultUserAgentProvider(buildMeta, FakeSdkMetadata("123456789")),
|
||||||
sessionStore = InMemorySessionStore(),
|
sessionStore = sessionStore,
|
||||||
buildMeta = buildMeta,
|
buildMeta = buildMeta,
|
||||||
bugReporterUrlProvider = { server.url("/") },
|
bugReporterUrlProvider = { server.url("/") },
|
||||||
sdkMetadata = FakeSdkMetadata("123456789"),
|
sdkMetadata = FakeSdkMetadata("123456789"),
|
||||||
matrixClientProvider = FakeMatrixClientProvider()
|
matrixClientProvider = matrixClientProvider,
|
||||||
|
tracingService = FakeTracingService(),
|
||||||
|
matrixAuthenticationService = FakeMatrixAuthenticationService(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2025 New Vector Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
* Please see LICENSE files in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.matrix.test.tracing
|
||||||
|
|
||||||
|
import io.element.android.libraries.matrix.api.tracing.TracingService
|
||||||
|
import io.element.android.libraries.matrix.api.tracing.WriteToFilesConfiguration
|
||||||
|
import io.element.android.tests.testutils.lambda.lambdaError
|
||||||
|
import timber.log.Timber
|
||||||
|
|
||||||
|
class FakeTracingService(
|
||||||
|
private val createTimberTreeResult: (String) -> Timber.Tree = { lambdaError() },
|
||||||
|
private val updateWriteToFilesConfigurationResult: (WriteToFilesConfiguration) -> Unit = { lambdaError() }
|
||||||
|
) : TracingService {
|
||||||
|
override fun createTimberTree(target: String): Timber.Tree {
|
||||||
|
return createTimberTreeResult(target)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun updateWriteToFilesConfiguration(config: WriteToFilesConfiguration) {
|
||||||
|
updateWriteToFilesConfigurationResult(config)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue