Skip to content
Snippets Groups Projects
Unverified Commit e60e21c5 authored by Mohamed's avatar Mohamed Committed by GitHub
Browse files

Pre-Authorise TEK history in QR - Code Scan [Only] (EXPOSUREAPP-5254) #2495

* Don't check for pre-auth

* Update DefaultTEKHistoryProviderTest.kt

* Checking for enfversion here is not needed
parent cd278162
No related branches found
No related tags found
No related merge requests found
...@@ -130,29 +130,16 @@ class DefaultTEKHistoryProvider @Inject constructor( ...@@ -130,29 +130,16 @@ class DefaultTEKHistoryProvider @Inject constructor(
} }
private suspend fun getPreAuthTEKHistoryOnV18(): List<TemporaryExposureKey> { private suspend fun getPreAuthTEKHistoryOnV18(): List<TemporaryExposureKey> {
val isPreAuthorized = try { return try {
preAuthorizeExposureKeyHistory() Timber.d("Pre-Auth retrieving TEK.")
getPreAuthorizedExposureKeys().also {
Timber.d("Pre-Auth TEK: %s", it.joinToString("\n"))
}
} catch (exception: Exception) { } catch (exception: Exception) {
Timber.d(exception, "Requesting Pre-Auth history failed") Timber.d(exception, "Pre-Auth retrieving TEK failed")
if (exception.isResolvable) throw exception if (exception.isResolvable) throw exception
false
}
return if (isPreAuthorized) {
try {
Timber.d("Pre-Auth retrieving TEK.")
getPreAuthorizedExposureKeys().also {
Timber.d("Pre-Auth TEK: %s", it.joinToString("\n"))
}
} catch (exception: Exception) {
Timber.d(exception, "Pre-Auth retrieving TEK failed")
if (exception.isResolvable) throw exception
Timber.d("Fallback: Retrieving TEK on pre v1.8") Timber.d("Fallback: Retrieving TEK on pre v1.8")
getTEKHistoryOnPreV18()
}
} else {
Timber.d("Retrieving TEK on pre v1.8")
getTEKHistoryOnPreV18() getTEKHistoryOnPreV18()
} }
} }
......
...@@ -185,7 +185,7 @@ class DefaultTEKHistoryProviderTest : BaseTest() { ...@@ -185,7 +185,7 @@ class DefaultTEKHistoryProviderTest : BaseTest() {
every { status.hasResolution() } returns true every { status.hasResolution() } returns true
every { printStackTrace(any<PrintWriter>()) } just Runs every { printStackTrace(any<PrintWriter>()) } just Runs
} }
every { client.requestPreAuthorizedTemporaryExposureKeyHistory() } answers { MockGMSTask.forError(error) } every { client.requestPreAuthorizedTemporaryExposureKeyRelease() } answers { MockGMSTask.forError(error) }
shouldThrow<ApiException> { shouldThrow<ApiException> {
createInstance().getTEKHistory() createInstance().getTEKHistory()
...@@ -195,13 +195,25 @@ class DefaultTEKHistoryProviderTest : BaseTest() { ...@@ -195,13 +195,25 @@ class DefaultTEKHistoryProviderTest : BaseTest() {
@Test @Test
fun `ENFV1_8 getTEKHistory request keys from new Api fallback to old Api on error`() = runBlockingTest { fun `ENFV1_8 getTEKHistory request keys from new Api fallback to old Api on error`() = runBlockingTest {
coEvery { enfVersion.isAtLeast(ENFVersion.V1_8) } returns true coEvery { enfVersion.isAtLeast(ENFVersion.V1_8) } returns true
every { client.requestPreAuthorizedTemporaryExposureKeyHistory() } answers { MockGMSTask.forError(Exception()) } every { client.requestPreAuthorizedTemporaryExposureKeyRelease() } answers { MockGMSTask.forError(Exception()) }
val mockTEK = mockk<TemporaryExposureKey>() val mockTEK = mockk<TemporaryExposureKey>()
every { client.temporaryExposureKeyHistory } answers { MockGMSTask.forValue(listOf(mockTEK)) } every { client.temporaryExposureKeyHistory } answers { MockGMSTask.forValue(listOf(mockTEK)) }
createInstance().getTEKHistory() shouldBe listOf(mockTEK) createInstance().getTEKHistory() shouldBe listOf(mockTEK)
verify(exactly = 1) { client.temporaryExposureKeyHistory } verify(exactly = 1) { client.temporaryExposureKeyHistory }
verify { client.requestPreAuthorizedTemporaryExposureKeyHistory() wasNot Called }
}
@Test
fun `ENFV1_8 getTEKHistory request keys from new Api does not check for preAuth`() = runBlockingTest {
coEvery { enfVersion.isAtLeast(ENFVersion.V1_8) } returns true
every { client.requestPreAuthorizedTemporaryExposureKeyRelease() } answers { MockGMSTask.forValue(null) }
createInstance().getTEKHistory()
verify(exactly = 1) { client.requestPreAuthorizedTemporaryExposureKeyRelease() }
verify { client.requestPreAuthorizedTemporaryExposureKeyHistory() wasNot Called }
} }
@Test @Test
...@@ -265,7 +277,7 @@ class DefaultTEKHistoryProviderTest : BaseTest() { ...@@ -265,7 +277,7 @@ class DefaultTEKHistoryProviderTest : BaseTest() {
@Test @Test
fun `ENFV1_8 getTEKHistoryOrRequestPermission - if not preauthorized and no resolution then use the old API`() { fun `ENFV1_8 getTEKHistoryOrRequestPermission - if not preauthorized and no resolution then use the old API`() {
coEvery { enfVersion.isAtLeast(ENFVersion.V1_8) } returns true coEvery { enfVersion.isAtLeast(ENFVersion.V1_8) } returns true
every { client.requestPreAuthorizedTemporaryExposureKeyHistory() } returns MockGMSTask.forError(Exception()) every { client.requestPreAuthorizedTemporaryExposureKeyRelease() } returns MockGMSTask.forError(Exception())
val onTEKHistoryAvailable = mockk<(List<TemporaryExposureKey>) -> Unit>(relaxed = true) val onTEKHistoryAvailable = mockk<(List<TemporaryExposureKey>) -> Unit>(relaxed = true)
val onPermissionRequired = mockk<(Status) -> Unit>(relaxed = true) val onPermissionRequired = mockk<(Status) -> Unit>(relaxed = true)
...@@ -320,7 +332,6 @@ class DefaultTEKHistoryProviderTest : BaseTest() { ...@@ -320,7 +332,6 @@ class DefaultTEKHistoryProviderTest : BaseTest() {
onPermissionRequired wasNot Called onPermissionRequired wasNot Called
} }
verifyOrder { verifyOrder {
client.requestPreAuthorizedTemporaryExposureKeyHistory()
client.requestPreAuthorizedTemporaryExposureKeyRelease() client.requestPreAuthorizedTemporaryExposureKeyRelease()
client.temporaryExposureKeyHistory client.temporaryExposureKeyHistory
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment