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 @@ -555,7 +555,7 @@ class DataStoreTest {
fun dataStore_getLibdigidocppVersion_success() {
val result = dataStore.getLibdigidocppVersion()

assertEquals("4.3.0.40", result)
assertEquals("4.5.0.52", result)
}

@Test
Expand Down
Binary file modified libdigidoc-lib/libs/libdigidocpp.jar
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,15 @@ import android.content.res.Resources
import android.content.res.Resources.NotFoundException
import androidx.test.platform.app.InstrumentationRegistry
import ee.ria.DigiDoc.common.Constant.Defaults.DEFAULT_UUID_VALUE
import ee.ria.DigiDoc.common.testfiles.asset.AssetFile.Companion.getResourceFileAsFile
import ee.ria.DigiDoc.configuration.provider.ConfigurationProvider
import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository
import ee.ria.DigiDoc.libdigidoclib.SignedContainer.Companion.openOrCreate
import ee.ria.DigiDoc.libdigidoclib.exceptions.AlreadyInitializedException
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertEquals
import org.junit.Assert.assertThrows
import org.junit.Assert.assertTrue
import org.junit.Assert.fail
import org.junit.Before
import org.junit.Test
Expand Down Expand Up @@ -104,6 +108,18 @@ class InitializationTest {
field.isAccessible = true
field.setBoolean(initialization, false)
}

@Throws(
SecurityException::class,
NoSuchFieldException::class,
java.lang.IllegalArgumentException::class,
IllegalAccessException::class,
)
private fun isInitializedFlag(): Boolean {
val field: Field = Initialization::class.java.getDeclaredField("isInitialized")
field.isAccessible = true
return field.getBoolean(initialization)
}
}

@Before
Expand All @@ -116,14 +132,36 @@ class InitializationTest {
}

@Test
fun initialization_init_success() {
fun initialization_init_doesNotThrowWhenTslUnreachable() {
try {
`when`(configurationRepository.getConfiguration()).thenReturn(configurationProvider)
val configuration = configurationProvider.copy(tslUrl = "http://127.0.0.1:1/eu-lotl.xml")
`when`(configurationRepository.getConfiguration()).thenReturn(configuration)
runTest {
initialization.init(context)
}
} catch (_: Exception) {
fail("No exceptions should be thrown")
} catch (e: Exception) {
fail("Failing to download the list must not be fatal, but init threw: $e")
}

assertTrue(
"The library should still be marked as initialized when the list cannot be downloaded",
isInitializedFlag(),
)
}

@Test
fun initialization_init_containerRemainsUsableWhenTslUnreachable() {
val configuration = configurationProvider.copy(tslUrl = "http://127.0.0.1:1/eu-lotl.xml")
`when`(configurationRepository.getConfiguration()).thenReturn(configuration)

runTest {
initialization.init(context)

val containerFile =
getResourceFileAsFile(context, "example.asice", ee.ria.DigiDoc.common.R.raw.example)
val signedContainer = openOrCreate(context, containerFile, listOf(containerFile), false)

assertEquals(2, signedContainer.getSignatures().size)
}
}

Expand Down Expand Up @@ -159,6 +197,8 @@ class InitializationTest {

@Test
fun initialization_init_throwsAlreadyInitializedExceptionWhenInitTwice() {
`when`(configurationRepository.getConfiguration())
.thenReturn(configurationProvider.copy(tslUrl = "http://127.0.0.1:1/eu-lotl.xml"))
assertThrows(AlreadyInitializedException::class.java) {
runTest {
initialization.init(context)
Expand Down
Binary file modified libdigidoc-lib/src/debug/jniLibs/arm64-v8a/libdigidoc_java.so
Binary file not shown.
Binary file modified libdigidoc-lib/src/debug/jniLibs/armeabi-v7a/libdigidoc_java.so
Binary file not shown.
Binary file modified libdigidoc-lib/src/debug/jniLibs/x86_64/libdigidoc_java.so
Binary file not shown.
Binary file modified libdigidoc-lib/src/main/jniLibs/arm64-v8a/libdigidoc_java.so
Binary file not shown.
Binary file modified libdigidoc-lib/src/main/jniLibs/armeabi-v7a/libdigidoc_java.so
Binary file not shown.
Binary file modified libdigidoc-lib/src/main/jniLibs/x86_64/libdigidoc_java.so
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,18 @@ class Initialization
context,
isLoggingEnabled,
)
digidoc.initializeLib(UserAgentUtil.getAppInfo(context), path)

val appInfo = UserAgentUtil.getAppInfo(context)

try {
digidoc.initializeLib(appInfo, path)
} catch (e: RuntimeException) {
errorLog(libdigidocInitLogTag, "Unable to initialize TSL: ${e.message}", e)
} catch (e: Exception) {
errorLog(libdigidocInitLogTag, "Unable to initialize Libdigidocpp: ${e.message}", e)
throw e
}

UserAgentUtil.setLibdigidocppVersion(digidoc.version())
debugLog(libdigidocInitLogTag, "Initialized libdigidocpp ${digidoc.version()} (TSL cache: $path)")
isInitialized = true
Expand Down
Binary file modified libdigidoc-lib/src/main/res/raw/schema.zip
Binary file not shown.
Loading