Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Felix Foertsch
Luca Android
Commits
55e89846
Commit
55e89846
authored
Jun 09, 2021
by
Ulrich Scheller
Browse files
Release 1.7.7
parent
cb02a246
Changes
4
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
55e89846
# Release 1.7.7
-
Bug fix
This update includes a bugfix related to the import of documents.
# Release 1.7.6
-
Add children to check-in
...
...
Luca/app/build.gradle
View file @
55e89846
...
...
@@ -8,8 +8,8 @@ android {
applicationId
"de.culture4life.luca"
minSdkVersion
21
targetSdkVersion
30
versionCode
6
6
versionName
"1.7.
6
"
versionCode
6
7
versionName
"1.7.
7
"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs
{
...
...
Luca/app/src/main/java/de/culture4life/luca/testing/provider/opentestcheck/OpenTestCheckTestResultProvider.java
View file @
55e89846
...
...
@@ -30,7 +30,7 @@ import static de.culture4life.luca.testing.TestResultVerificationException.Reaso
public
class
OpenTestCheckTestResultProvider
extends
TestResultProvider
<
OpenTestCheckTestResult
>
{
private
static
final
String
URL_PREFIX_TESTVERIFY_IO
=
"https://testverify.io/v1#"
;
pr
ivate
static
final
RxHashProvider
HASH_PROVIDER
=
new
Sha256HashProvider
(
new
RxKeyStore
());
pr
otected
static
final
RxHashProvider
HASH_PROVIDER
=
new
Sha256HashProvider
(
new
RxKeyStore
());
private
static
final
OpenTestCheckPublicKey
[]
PUBLIC_KEYS
=
new
OpenTestCheckPublicKey
[]{
new
OpenTestCheckPublicKey
(
"ticket.io"
,
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqImfTl5rpFHeCM/cjAgeMS8mfhxGxO3+dss+1jidKRJ7ta2fOIQ6k1wPLtqh8U2HHIITXY8Atrlh81s9bSGeJIL9VY/QDeJgqwU147eDLqpO/iF4LvKa13bats+WzN2vXU9vPtk3WNRXh5SktbdMnmK49l20TgjzPac1ES3tv7MSExeF6Bq9zPrG47mUJW+Fm8AH7nID5kBYFosMcsRNVmY4PNYCYM7q17Cc/S/MjFZD+f4mzYLRnMbZs7IjLBGlrood21XHTNt1G6/1f4peA6EWCgKbCgbwdCIHl/wn/ktWOjxoAogX3oRcKOhhCcgt+7ReY8mj2exrTypmN3TscQIDAQAB"
),
...
...
@@ -95,12 +95,11 @@ public class OpenTestCheckTestResultProvider extends TestResultProvider<OpenTest
})).
onErrorResumeNext
(
throwable
->
Completable
.
error
(
new
TestResultVerificationException
(
NAME_MISMATCH
,
throwable
)));
}
pr
ivate
Single
<
String
>
generateNameHash
(
@NonNull
RegistrationData
registrationData
)
{
pr
otected
Single
<
String
>
generateNameHash
(
@NonNull
RegistrationData
registrationData
)
{
return
Single
.
fromCallable
(()
->
{
String
name
=
registrationData
.
getFirstName
()
+
registrationData
.
getLastName
();
name
=
name
.
toUpperCase
();
name
=
name
.
replaceAll
(
"[^\\x00-\\x7F]"
,
""
);
name
=
name
.
replaceAll
(
"/[^\\x41-\\x5A]/"
,
""
);
name
=
name
.
replaceAll
(
"[^\\x41-\\x5A]"
,
""
);
return
name
.
getBytes
(
StandardCharsets
.
US_ASCII
);
}).
flatMap
(
HASH_PROVIDER:
:
hash
).
map
(
Hex:
:
bytesToStringLowercase
);
}
...
...
Luca/app/src/test/java/de/culture4life/luca/testing/provider/opentestcheck/OpenTestCheckTestResultProviderTest.java
View file @
55e89846
package
de.culture4life.luca.testing.provider.opentestcheck
;
import
com.google.android.gms.common.util.Hex
;
import
de.culture4life.luca.registration.RegistrationData
;
import
de.culture4life.luca.testing.TestResult
;
import
de.culture4life.luca.testing.TestResultParsingException
;
import
de.culture4life.luca.testing.TestResultVerificationException
;
import
org.junit.Before
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.robolectric.annotation.Config
;
import
java.nio.charset.StandardCharsets
;
import
androidx.test.runner.AndroidJUnit4
;
import
io.reactivex.rxjava3.core.Single
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
...
...
@@ -27,6 +33,7 @@ public class OpenTestCheckTestResultProviderTest {
public
static
final
String
VALID_TEST_RESULT_TEST_NOW
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiMDIwMjA4MTg1MzAwYjMyMWVjZWEzNGIwN2YxZmFhYjRjMjRjYmE0MDYzMDk3NDUxMTZjOWM5YmEwNmRiOWYzMyIsInQiOjE2MjAzMzQ5NDMsImMiOiJvIiwiciI6Im4iLCJsIjoiVGVzdCBOT1chIEdtYkgiLCJkIjoiTWF4IE11c3Rlcm1hbm4ifQ.CS33_ocJeaPmReVPZ13I4QXyp2iXzd9uAcHKWT48Y2yXTUiiU2jUTGkuBCt71_0bAPK0e1HfEgOWWR5_L54PqOI9_YIaN-Bm-jgCpHw9ukgeFVhYFIBvk6hLniL5NIey0gVcNd9cO2YrvXeqVy6COHkf7P04qJqxPAD-dv9GWa4_B692qXPI4EvWu49GduFnQtrxMe_HZjnluobaRejC0UJQSjyio1mX4m8SFpQ_Xg0HBaNaMu-t396d6ICHOv5Mv4sL1u_FKTyDT-LsrCQpCmLvSzVdq8JLLPHLH1UapVdytu1DkMn2ehJz7PjTFjV3kG4V9lSrbW_TuloF9uenuX0DCA8iS__PMyY0EVDMH1UldtxUob41-Nb9ZIqgxWyhiUjet0i6siwi6wK3BmGqOxn0mb4JaNWNC3yovSLpAe_IHjuXiYTw86ZajR5LlmKewbFJno1lqmL7JWTAd5AeZPa44hcfMG0dcUl-6Qfv1yUsYAY_hA2JCO16cEuUSV67om7ENyE1a_zh-EgVtX_iuTgocZsnQsdKhzfUawIuKTWYd54wvsM44U-EGu1pqNaarZQOdputlkZCTEklkTPLH8PUl6t6TKtyzW7TseYeP7xCWg7WCQ6EMj_lJi46VNYc-_K30fBL9yWy-cGurt3_EY6Kin_QGvrVpgUO5xRk3tc"
;
public
static
final
String
VALID_TEST_RESULT_COSIAMA
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiNmUwYzhhYzNhNzFmNGM3OWQwM2RlZGEyOTE1ODMzOGMxMzhkZjhkN2ExMGUzOTUyYmU5NTNkYWUyZWMxMjRiNyIsInQiOjE2MjIxMjExNDMsImMiOiJwIiwiciI6Im4iLCJsIjoiVGVzdHplbnRydW0gQXVnc2J1cmciLCJkIjoiVGhvbWFzIEh1YmVyIn0.ZcECEHuI0LQSObX8tUK0igJ1j9DTKoVKtTwYoRPrrmUsta1lol-eXg7YYZAHvf4CJc_y_Ros8CpbMFmZSuykOTnGE4mVm_7lv7brYQBABQf8GStrfGuGb9ZOsrHKTNzpbn1g9Qjt0cLTn5Cuw56ZbcohZuLcLHBpYB9OVClLR-z47BUwuJGNxPKNjec5rqoQJAOPj2evk6FtPHAyP9aFzFAEv-K0BGB9bOAkU3bZgZ0t64BqS_ZiA4l1Dp7q4yOdCxz8fTIEyruiotRpngFsQM05n6ey2DS6zPXyCL5mePVeM08MKlvAJqRBxCl5tOruF5OeTWZuWF3Ot2AKKDS7dPGYiJeqEV4ROM3IXpqz36ZHX9fzPT_L2DXqmChkkTq-g7yKXisQA4us1EXohHZB0LjgoQIMY7eWCnL_bW1Zv_2lluFf39XP3bcuS6nEkzbvMaSHSbwdwOkbJ2bFmIFhbJYL1iQV5rE8cEhefL198s4y08soh4qFXP2283jc1PvfWYMbE40epxvhFsWgVJ57WL540etXgmzt_F9JP8LvTZES-tqxFPdOWRypeR8xIE_DwzO5zSM4DidiZ5IUPSvovb-rIJACZKnteptAMt4draCHGLDulS6osVZH073cbiv_y7lo72_0i-GbI44I_CUGJ0x6hOoXDEQ_p3ha6pesypA"
;
public
static
final
String
VALID_TEST_RESULT_COSIAMA_2
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiM2VlMTAxNWU1ZjQzOTZlN2ZjZmZiMDllZTk1ZjIyY2Q3NThiZDIzMDcyMDE0MzM1ZDNkZTk5MmU4OTIzYWQ4ZiIsInQiOjE2MjIxMjExNDMsImMiOiJmIiwiciI6Im4iLCJsIjoiIiwiZCI6IiJ9.gve_uSqkUOOboq6LB9B0e0okm1Vpw1Hrt1aqFLD7GJSt4U_sLT9OriMezlAIzhVH9tWwg9vS8O-wFWzT7Ig0oTAoLovHh--UA2DASTCEXaMsxrXMfUYoOAG0l4NRE0desA2oBVfpT4shlRFWRNrrNBGFB9ULnS61vNHBvbSk5adJMMHgq7nuBNY2CthzjaAdgZW-uE3hL4_c_KsCkziI44dpXwtnSxnqUIgCjC2nPuHMYNIlRfgV4yEaj6ie2_HvFAGMVd4hgewi2QRJdgTMzxoUc3_qTK06A9GQFiped6DxWHsYPCiMw1h4rXjpyZU7vd-EFmoJPSnEpiqOOPT1bqjvLnqmMhTVnrNA1LLGaop30Nb8dq3FpilpqYmlSfNbAyPD1ROPyH0KnqBCkWoBoMzDjfFRFHG4VxXW6lHy0a-C7gr85_Bw_h8MjVykaotCc2Z9V4u6Tq80W8p7rjR79twE5lNxl6cQlxuGJYLR3x3LRaxu2FNlgYj0a3SkvYC_3niSY3lj83mn3jPJD1ZfCWKbaIoJ8x0ZD9_NyKkuBnhgFsbp1uKyaZbYEZwhD7Etnx2xjv5n_vtNVwUDZN9OlOPgYFJMwjN2FLm2Jb6PdLn9URJk1tk7-VB2kLziYwu_iGckbZeh7D0uCWl7n4MnETPt0mWcFz2deYyCUaMsUAA"
;
public
static
final
String
VALID_TEST_RESULT_COSIAMA_3
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiY2Q1ZDMzZjRiNmIzNzcwNTk2Y2Y5MDAzNzFjYWQzMTZiOGIyZmIzM2VjZDQ2ZjEzNjQ4NzE0ZTRiNTZiNjFjYyIsInQiOjE2MjIxMjExNDMsImMiOiJwIiwiciI6InAiLCJsIjoiIiwiZCI6IiJ9.oIchBuclrpt_rfgmWGoPtaGaxro38ggzi6eNd-iJTJZvL6myk8s2aZdiASgT6Fr6Nn_-hfLKpGNMyGBvOgLlFqYYZjtQKrakHqU06phUIf9iaN55IQIINMxZ-7AtUDD3mGvfTs8LGTjJpDdChBShFXQlHdy_Me5SV8f2H8igI7-S_-0mT2RB-cJd0qO1mLDCrTfYEhiPPfJM5DvK3al4i-nyoiDc2zFN9VErOEem5jY4qu7wJ4WTPxKhpmWdGAT8LEIIXhwoH5aTWr6Txnsu0tft-sNtjgnhrXLMaZhHN-ZLpceD9RX4kFabvyM2AZxlxKMGCCYIWoapDNqinp59oJ7bU-nnS48f6M5DkITn4CKnPZV_NRbueZWldeem8xgxtiE7WbTUo2cQwvrLsd6qp9bU1ECmqVoVr7s2V1ZNZ1-WIPO-S9EV_FVxpWzkwUo4QscFttVp3BXhjDYoi7CyO2UCVOTOio9mQmT3ebUKfAgsIEn5qI_xd30VybVToT-YZmpcB_Vi1VuF1RV1SCwstp7W1IPhQRz3yxOHNsN-aOHmRJg4tV-8-ClBjPR-dCgHkQ0fTvIoal4JIaXBmyFqRRgxR2BhxP5Ocwk3v2x24gwcBH4HSCyiWPYJrJVDIEBm1HEeAwhYsOOtUm1K8HjHJZPUe6_h8HuGwxIZzNbt3fo"
;
public
static
final
String
VALID_TEST_RESULT_DRK_HANNOVER
=
"eyJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiZDRkMzBkYjZkMTM4M2YzOTgzOTE5MmIwNGQ5ZWVmM2ZjYzg0OTkxNGRhYjUxMzNiMjllNDdkNjU3MTBkMDQ2ZCIsInQiOjE2MjIxOTE0NTEsImMiOiJmIiwiciI6Im4iLCJsIjoiRFJLLVJlZ2lvbiBIYW5ub3ZlciBlLlYuIiwiZCI6Ik1vYmlsZXMgVGVzdHRlYW0iLCJlZCI6Ik9UcEI4YThENS8xNGludERLckppSllwa3gyZnJTa2NTTnREeS9CZElTUm90Zzc1Y3NkNWpuYjlCc29jZEo4UDFiYmlqNzZ1OGVzd01wTHhiRUsrbHJnR3lCanMxS1YwTU9yd0tzSlg4L0pMNWI5SU1LVjFCanFldklVaTl0c1JFUmZFUXlQUnFEWTd2QjVWOXM1dlZReXl4YkdIc3E2cGt0MGp3bmtGQ0FwRnBJWXNqNkJFTm9ZY0doenNQWEdRNnFLbGhyZHJhUHJhM2NaQ1NReTdwK0dJYTZxM21mUnEzc2RuUzZ4VTNsSWZKcHNGSUgzR1BQMk83WnBYblZLZkVneFVTM2dPU3RJa1hDUUhXWkFNaFVPUTU0M0NMTlA0eWVUVzRVdkdDdTdEdHMrd25nMzJNZGs5L2FkMGtSWFZhZ0oySnVtbUxITjFzUTM2MEJSSUpNZz09In0.idNYuZkhN_zR_sYbmtoctZDy_p5AIEmDczEi-J4MKdej--21yLzX9VK1TJiqb3NSMTwAGhIFCu7h400xL4hW3I9F1DKt8ukWs-fPlY-mNc0n9HcIUr07M__3X7i2xBkZkFPWkrHcOmXEm15ukImN-O_MLwKWNVdONrw5Dl5QkqJFkEK0Siwq6NIVuzEvsOAy-3orzzSkEg46dqH_RAWm3B7CVdv9cPpvLQNSuIaCp110aBDVtDKld9BXNPoMzZg8VgyWaqLPg4Np9ah1u1GJIxEY_LUDZHND4XjzsB-TqJ3fGYeKkY4Zd93QDK6CnC7LdHmEC0BxHH55zhj0lt-apQ"
;
public
static
final
String
VALID_TEST_RESULT_PROBATIX
=
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiZjg0MGEyYjAwNGJhZjVlZTU5NTAxOGQ1YjA1MTZmNDRmM2ViYjUyNDcyNmNlOTAxYWJkYjE3ZDA2NTg5YjBjNyIsInQiOjE2MjI0Nzg1ODEsImMiOiJmIiwiciI6Im4iLCJsIjoiUHJvYmF0aXggVGVzdGNlbnRlciIsImQiOiJEci4gTWFyaXNhIiwiZWQiOiI5YjE3MDVkNWM5MWE4ZWFjZmQzNmQxMGU5NDI3MmYwNjpVVnMrYjZ0SnZhclBtK3VhYVhyamtyTHlxa1hYXC83ZFNONk1BaWlJRlwvXC9uUDRsc0QxWVdnN2Fvak55RjBXSHdHQW5icFdzQlwvSGExaW5EbDFJWDNtODNSOGhFdkl4cFwvakNBNzVMNWZwUW04PSJ9.rimSUbVQDCVr8kZD7E8U6ZFD9hiV5eFBDZTPTOohIHYFZXB2pjwTWMWd1FxFsNS7XpCvuRijiEJpXEV6K896M1H_9Ik_KiB2mP4i3wVRnIX7L2CcFW_pYlJzCT6y_IZ5i1X8FAFRz55oduYlEux6zX1SsYaeDO1Fuz7KiLpMhdYGg1pjZmvzxbAakbWzQmr2F0req4dGDZRNCgfBJuZlHuCULpdQXuDyAaKREiHa-x7FSne97KXnqwcgBvP6azwvnBpwlDcy7LK6-2p_DVHn4j1H-SeLlQaxP6_rW6pbC4G6SP5APO-4_chSCp1tEiPPgY3SccRV20DPjdWbdQQpPGftLxEcnmlc3NKND5OFG-22xnmrUMXGJP1YbwbEL249saXXGYBg7uHokrAaipNYETzWpfdyUXPztQk0oJd0XjbohI36mUuuHV2mvKRYEy7y2cs2HrCaD-2wtqGw1LvY9CZ1iob0Bi90Z0yJziu4D6LIdXJzcnvwyJUflvzejAToznf-rywUMSud2SthjescHOJYS_Kw3or7XWb5g8HUG-oX-Tetf-NtVscrnbl0WOSw9jXQbpSnOnXnxmPBLOpdI-o1WEsBnPCRtL7Rd6BezESay2uhtQShBhgzzEo4mMz3o5zGtK9eUiHzpgRjboZDijyHfnKK6vXg5jXUvmqwuZk"
;
public
static
final
String
VALID_TEST_RESULT_NOQ
=
"eyJhbGciOiJSUzI1NiJ9.eyJ2IjoyLCJuIjoiYTc4ZmJlMzY1YWI2NmM1ZWNjNzk1MWUwODJiZTRkY2QzMjIwZmFmNjQzN2M1OTBlYjY4OWY2ZDYxYTkzMjBiNSIsInQiOjE2MjIyMDQzNTMsImMiOiJmIiwiciI6InAiLCJsIjoiTGp1YmxqYW5hIiwiZCI6IkRyLiBaZHJhdmtvIn0.F4dO2zvBP_SmO0OYc48WsY2aHqZswycQ-miYWTVTL1JlaCi-RS_rmrHtoLa61RAhiswLWQi2hTKnpdIzKUfbshF9epZsno9LTjxrxhmlJPltSFXLFJKWh7OcAqzDvXR8qvYB5FCoxezcKBYFp_4ugLi1zNoTxzFM0gQw37oRg9jN1b21mBC5EcGfdeQ0vw6iqTcEmOIvs22Rri_EQLPzf25nJlaoKkG9Ms7lvwBQmgkbR13i3rpLc_oPeD1I5rGqDVZIpTkPFKRrcRpYfNTs0jQjBdprzx5yPBS1PopuSUo9CbcgjhYzfwn72PgqoppGRuAlnVrReJ9BEelKih_J5Q"
;
...
...
@@ -156,10 +163,17 @@ public class OpenTestCheckTestResultProviderTest {
}
@Test
@Ignore
(
"There is an issue in the Cosiama name hash calculation. Change with a valid QR Code and re-enable this test."
)
public
void
verify_validDataCosiama2_completes
()
{
check
(
"Agustín"
,
"Gutiérrez Ureña"
,
VALID_TEST_RESULT_COSIAMA_2
);
}
@Test
@Ignore
(
"There is an issue in the Cosiama name hash calculation. Change with a valid QR Code and re-enable this test."
)
public
void
verify_validDataCosiama3_completes
()
{
check
(
"Max Josef"
,
"Müller"
,
VALID_TEST_RESULT_COSIAMA_3
);
}
@Test
public
void
verify_validDataDrkHannover_completes
()
{
check
(
"Max"
,
"Mustermann"
,
VALID_TEST_RESULT_DRK_HANNOVER
);
...
...
@@ -212,4 +226,13 @@ public class OpenTestCheckTestResultProviderTest {
.
test
().
assertError
(
TestResultVerificationException
.
class
);
}
@Test
public
void
generateNameHash_nameWithMultipleSpaces_removesChars
()
{
registrationData
.
setFirstName
(
"Rene"
);
registrationData
.
setLastName
(
"de Candido"
);
Single
<
byte
[]>
hash
=
testResultProvider
.
HASH_PROVIDER
.
hash
(
"RENEDECANDIDO"
.
getBytes
(
StandardCharsets
.
US_ASCII
));
testResultProvider
.
generateNameHash
(
registrationData
)
.
test
().
assertValue
(
Hex
.
bytesToStringLowercase
(
hash
.
blockingGet
()));
}
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment