Add test for DefaultBugReporter

This commit is contained in:
Benoit Marty 2023-11-24 16:10:41 +01:00
parent 124e708160
commit b5b14d38a0
8 changed files with 285 additions and 1 deletions

View file

@ -0,0 +1,23 @@
/*
* Copyright (c) 2023 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.element.android.features.rageshake.impl.reporter
import okhttp3.HttpUrl
fun interface BugReporterUrlProvider {
fun provide(): HttpUrl
}

View file

@ -75,6 +75,7 @@ class DefaultBugReporter @Inject constructor(
private val userAgentProvider: UserAgentProvider,
private val sessionStore: SessionStore,
private val buildMeta: BuildMeta,
private val bugReporterUrlProvider: BugReporterUrlProvider,
) : BugReporter {
companion object {
// filenames
@ -223,7 +224,7 @@ class DefaultBugReporter @Inject constructor(
// build the request
val request = Request.Builder()
.url(context.getString(R.string.bug_report_url))
.url(bugReporterUrlProvider.provide())
.post(requestBody)
.build()

View file

@ -0,0 +1,34 @@
/*
* Copyright (c) 2023 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.element.android.features.rageshake.impl.reporter
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.features.rageshake.impl.R
import io.element.android.libraries.di.AppScope
import io.element.android.services.toolbox.api.strings.StringProvider
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl
import javax.inject.Inject
@ContributesBinding(AppScope::class)
class DefaultBugReporterUrlProvider @Inject constructor(
private val stringProvider: StringProvider
) : BugReporterUrlProvider {
override fun provide(): HttpUrl {
return stringProvider.getString(R.string.bug_report_url).toHttpUrl()
}
}