Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class FileOpeningRepositoryImplTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class SivaServiceTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class DiagnosticsViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class FileOpeningViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class MobileIdViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class RecentDocumentsViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ class SigningViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ class SmartIdViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ class SharedContainerViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class SharedSettingsViewModelTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
7 changes: 0 additions & 7 deletions app/src/main/kotlin/ee/ria/DigiDoc/di/AppModules.kt
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ import ee.ria.DigiDoc.libdigidoclib.domain.model.ContainerWrapper
import ee.ria.DigiDoc.libdigidoclib.init.Initialization
import ee.ria.DigiDoc.manager.ActivityManager
import ee.ria.DigiDoc.manager.ActivityManagerImpl
import ee.ria.DigiDoc.network.utils.UserAgentUtil
import ee.ria.DigiDoc.root.RootChecker
import ee.ria.DigiDoc.root.RootCheckerImpl
import ee.ria.DigiDoc.smartcardreader.nfc.NfcSmartCardReaderManager
Expand Down Expand Up @@ -134,12 +133,6 @@ class AppModules {
@Provides
fun provideBuildVersionProvider(): BuildVersionProvider = BuildVersionProviderImpl()

@Provides
fun provideUserAgent(
@ApplicationContext context: Context,
buildVersionProvider: BuildVersionProvider,
): String = UserAgentUtil.getUserAgent(context, buildVersionProvider)

@Provides
@Singleton
fun provideActivityManager(): ActivityManager = ActivityManagerImpl()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ class NFCViewModel

val signer = ExternalSigner(signerCert)
signer.setProfile(SIGNATURE_PROFILE_TS)
signer.setUserAgent(UserAgentUtil.getUserAgent(context, SendDiagnostics.NFC))
signer.setUserAgent(UserAgentUtil.getAppInfo(context, SendDiagnostics.NFC))

val dataToSignBytes =
containerWrapper.prepareSignature(signer, container, signerCert, roleData)
Expand Down
5 changes: 5 additions & 0 deletions config-lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,12 @@ dependencies {
implementation(libs.androidx.hilt)

testImplementation(libs.junit)
testImplementation(libs.mockito.core)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.okhttp3)
testImplementation(libs.okhttp3.tls)
testImplementation(libs.okhttp3.mockwebserver)

androidTestImplementation(libs.junit)
androidTestImplementation(libs.byte.buddy)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,7 @@ class ConfigModules {
): CentralConfigurationRepository = CentralConfigurationRepositoryImpl(centralConfigurationService)

@Provides
fun provideCentralConfigurationService(
userAgent: String,
configurationProperty: ConfigurationProperty,
): CentralConfigurationService = CentralConfigurationServiceImpl(userAgent, configurationProperty)
fun provideCentralConfigurationService(impl: CentralConfigurationServiceImpl): CentralConfigurationService = impl

@Singleton
@Provides
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

package ee.ria.DigiDoc.configuration.service

import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import ee.ria.DigiDoc.configuration.ConfigurationProperty
import ee.ria.DigiDoc.configuration.repository.CentralConfigurationRepository
import ee.ria.DigiDoc.network.configuration.interceptors.NetworkInterceptor
Expand All @@ -29,6 +31,7 @@ import ee.ria.DigiDoc.network.proxy.ManualProxy
import ee.ria.DigiDoc.network.proxy.ProxyConfig
import ee.ria.DigiDoc.network.proxy.ProxySetting
import ee.ria.DigiDoc.network.utils.ProxyUtil
import ee.ria.DigiDoc.network.utils.UserAgentUtil
import okhttp3.Authenticator
import okhttp3.ConnectionPool
import okhttp3.OkHttpClient
Expand Down Expand Up @@ -70,7 +73,7 @@ interface CentralConfigurationService {
open class CentralConfigurationServiceImpl
@Inject
constructor(
private val userAgent: String,
@param:ApplicationContext private val context: Context,
private val configurationProperty: ConfigurationProperty,
) : CentralConfigurationService {
private val defaultTimeout = 5L
Expand Down Expand Up @@ -132,7 +135,7 @@ open class CentralConfigurationServiceImpl
HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BODY
},
).addInterceptor(UserAgentInterceptor(userAgent))
).addInterceptor(UserAgentInterceptor(UserAgentUtil.getUserAgent(context)))
.addInterceptor(NetworkInterceptor())
.hostnameVerifier(OkHostnameVerifier)
.connectTimeout(defaultTimeout, TimeUnit.SECONDS)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@

package ee.ria.DigiDoc.configuration.service

import android.content.Context
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import ee.ria.DigiDoc.configuration.ConfigurationProperty
import ee.ria.DigiDoc.configuration.repository.CentralConfigurationRepository
import ee.ria.DigiDoc.network.proxy.ManualProxy
Expand All @@ -41,6 +44,10 @@ import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.Test
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.anyString
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`

@ExperimentalCoroutinesApi
class CentralConfigurationServiceImplTest {
Expand All @@ -52,15 +59,21 @@ class CentralConfigurationServiceImplTest {

private lateinit var expectedBaseUrl: String

private lateinit var context: Context
private lateinit var property: ConfigurationProperty

private val userAgent = "test-agent"

@Before
fun setup() {
val packageManager = mock(PackageManager::class.java)
context = mock(Context::class.java)
`when`(context.packageManager).thenReturn(packageManager)
`when`(context.packageName).thenReturn("test")
val packageInfo = mock(PackageInfo::class.java)
`when`(packageInfo.longVersionCode).thenReturn(0L)
`when`(packageManager.getPackageInfo(anyString(), anyInt())).thenReturn(packageInfo)

Dispatchers.setMain(testDispatcher)

// Create a self-signed certificate for localhost
val localhostCert =
HeldCertificate
.Builder()
Expand All @@ -84,12 +97,12 @@ class CentralConfigurationServiceImplTest {
OkHttpClient
.Builder()
.sslSocketFactory(clientCertificates.sslSocketFactory(), clientCertificates.trustManager)
.hostnameVerifier { _, _ -> true } // Accept "localhost" for testing
.hostnameVerifier { _, _ -> true }
.build()

mockWebServer = MockWebServer()
mockWebServer.useHttps(serverCertificates.sslSocketFactory(), false)
mockWebServer.start(0) // Automatically chooses a free port
mockWebServer.start(0)

expectedBaseUrl = mockWebServer.url("/").toString().removeSuffix("/")

Expand All @@ -99,7 +112,7 @@ class CentralConfigurationServiceImplTest {
)

service =
object : CentralConfigurationServiceImpl(userAgent, property) {
object : CentralConfigurationServiceImpl(context, property) {
override fun constructHttpClient(
defaultTimeout: Long,
proxySetting: ProxySetting?,
Expand Down Expand Up @@ -158,7 +171,7 @@ class CentralConfigurationServiceImplTest {

@Test
fun centralConfigurationServiceImpl_constructHttpClient_createsClientWithProxy() {
val service = CentralConfigurationServiceImpl(userAgent, property)
val service = CentralConfigurationServiceImpl(context, property)
val proxySetting = ProxySetting.MANUAL_PROXY
val manualProxy = ManualProxy("localhost", 8888, "user", "pass")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class CryptoContainerTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class IdCardServiceImplTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ class IdCardServiceImpl

val signer = ExternalSigner(signCertificateData)
signer.setProfile(SIGNATURE_PROFILE_TS)
signer.setUserAgent(UserAgentUtil.getUserAgent(context, SendDiagnostics.Devices))
signer.setUserAgent(UserAgentUtil.getAppInfo(context, SendDiagnostics.Devices))

dataToSign =
containerWrapper.prepareSignature(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class SignedContainerTest {
ConfigurationLoaderImpl(
Gson(),
CentralConfigurationRepositoryImpl(
CentralConfigurationServiceImpl("Tests", ConfigurationProperty()),
CentralConfigurationServiceImpl(context, ConfigurationProperty()),
),
ConfigurationProperty(),
ConfigurationPropertiesImpl(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ class Initialization
context,
isLoggingEnabled,
)
digidoc.initializeLib(UserAgentUtil.getUserAgent(context), path)
digidoc.initializeLib(UserAgentUtil.getAppInfo(context), path)
UserAgentUtil.setLibdigidocppVersion(digidoc.version())
isInitialized = true
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ class MobileSignServiceImpl
val signerCert = getCertificate(response.cert)
val signer = ExternalSigner(signerCert)
signer.setProfile(SIGNATURE_PROFILE_TS)
signer.setUserAgent(UserAgentUtil.getUserAgent(context))
signer.setUserAgent(UserAgentUtil.getAppInfo(context))

val dataToSignBytes =
Base64.getEncoder().encode(
Expand Down
Loading
Loading