From 0c84e267a41dbfc984c5e022f3adc73eaa7a7263 Mon Sep 17 00:00:00 2001 From: becothas <41289937+becothas@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:59:08 +0200 Subject: [PATCH] IDE-207 Fix TrustUserDomainsTest (#4882) --- .../catrobat/catroid/TrustedDomainManager.kt | 28 +++++++++++++------ .../test/utiltests/TrustedUserDomainsTest.kt | 22 +++++++++------ 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/catroid/src/main/java/org/catrobat/catroid/TrustedDomainManager.kt b/catroid/src/main/java/org/catrobat/catroid/TrustedDomainManager.kt index 6f22fc52086..4792d60d528 100644 --- a/catroid/src/main/java/org/catrobat/catroid/TrustedDomainManager.kt +++ b/catroid/src/main/java/org/catrobat/catroid/TrustedDomainManager.kt @@ -41,9 +41,7 @@ object TrustedDomainManager { private const val READ_ERROR_LOG = "Cannot read trusted domains" private const val PARSE_ERROR_LOG = "Cannot parse trusted domains" - private val trustListPattern: Pattern? by lazy { - initializeTrustListPattern() - } + private var trustListPattern: Pattern? = null var userTrustListPattern: Pattern? = null @Synchronized @@ -51,6 +49,9 @@ object TrustedDomainManager { if (userTrustListPattern == null) { userTrustListPattern = initializeUserTrustListPattern() } + if (trustListPattern == null) { + trustListPattern = initializeTrustListPattern() + } return trustListPattern?.matcher(url)?.matches() ?: false || userTrustListPattern?.matcher(url)?.matches() ?: false } @@ -61,9 +62,14 @@ object TrustedDomainManager { TRUSTED_USER_DOMAINS_FILE.exists() -> TRUSTED_USER_DOMAINS_FILE.inputStream().use { val trustList = Utils.getJsonObjectFromInputStream(it) - trustList.getJSONArray(TRUST_LIST_JSON_ARRAY_NAME).put(cleanUpUserInput(domain)) - } - TRUSTED_USER_DOMAINS_FILE.createNewFile() -> JSONArray(listOf(cleanUpUserInput(domain))) + trustList.getJSONArray(TRUST_LIST_JSON_ARRAY_NAME) + .put(cleanUpUserInput(domain)) + } + + TRUSTED_USER_DOMAINS_FILE.createNewFile() -> JSONArray( + listOf(cleanUpUserInput(domain)) + ) + else -> return false } userTrustListPattern = getTrustListPatternFromDomains(domains) @@ -108,6 +114,7 @@ object TrustedDomainManager { TRUSTED_USER_DOMAINS_FILE.writeText(trustList.toString(JSON_INDENTATION)) true } + else -> false } } catch (e: IOException) { @@ -177,9 +184,14 @@ object TrustedDomainManager { private fun cleanUpUserInput(string: String): String = string.replace("[ \"{}\\[\\]]|(\\n){2,}".toRegex(), "").removeSuffix("\n") - @VisibleForTesting - fun resetUserTrustList(): Boolean { + private fun resetUserTrustList(): Boolean { userTrustListPattern = null return TRUSTED_USER_DOMAINS_FILE.delete() } + + @VisibleForTesting + fun reset() { + resetUserTrustList() + trustListPattern = null + } } diff --git a/catroid/src/test/java/org/catrobat/catroid/test/utiltests/TrustedUserDomainsTest.kt b/catroid/src/test/java/org/catrobat/catroid/test/utiltests/TrustedUserDomainsTest.kt index dbd7010bdac..e51a82d5f4f 100644 --- a/catroid/src/test/java/org/catrobat/catroid/test/utiltests/TrustedUserDomainsTest.kt +++ b/catroid/src/test/java/org/catrobat/catroid/test/utiltests/TrustedUserDomainsTest.kt @@ -24,12 +24,14 @@ package org.catrobat.catroid.test.utiltests import android.content.Context import org.catrobat.catroid.CatroidApplication -import org.catrobat.catroid.TrustedDomainManager import org.catrobat.catroid.TrustedDomainManager.addToUserTrustList import org.catrobat.catroid.TrustedDomainManager.getUserTrustList import org.catrobat.catroid.TrustedDomainManager.isURLTrusted +import org.catrobat.catroid.TrustedDomainManager.reset import org.catrobat.catroid.TrustedDomainManager.setUserTrustList import org.catrobat.catroid.common.Constants +import org.catrobat.catroid.common.Constants.TRUSTED_USER_DOMAINS_FILE +import org.catrobat.catroid.common.Constants.TRUST_LIST_JSON_ARRAY_NAME import org.catrobat.catroid.common.FlavoredConstants import org.catrobat.catroid.utils.Utils import org.json.JSONArray @@ -96,9 +98,10 @@ class TrustedUserDomainsTest { @Test fun testAddToUserTrustList() { - Constants.TRUSTED_USER_DOMAINS_FILE.createNewFile() - given(Utils.getJsonObjectFromInputStream(any())) - .willReturn(constructTrustList(listOf("tugraz.at"))) + TRUSTED_USER_DOMAINS_FILE.createNewFile() + given(Utils.getJsonObjectFromInputStream(any())).willReturn( + constructTrustList(listOf("tugraz.at")) + ) addToUserTrustList("wikipedia.net") assertTrue(isURLTrusted("https://www.tugraz.at")) assertTrue(isURLTrusted("https://www.wikipedia.net/blabla")) @@ -107,17 +110,18 @@ class TrustedUserDomainsTest { @Test fun testGetUserTrustList() { - Constants.TRUSTED_USER_DOMAINS_FILE.createNewFile() - given(Utils.getJsonObjectFromInputStream(any())) - .willReturn(constructTrustList(listOf("tugraz.at", "wikipedia.net"))) + TRUSTED_USER_DOMAINS_FILE.createNewFile() + given(Utils.getJsonObjectFromInputStream(any())).willReturn( + constructTrustList(listOf("tugraz.at", "wikipedia.net")) + ) assertEquals("tugraz.at\nwikipedia.net", getUserTrustList()) } @After fun tearDown() { - TrustedDomainManager.resetUserTrustList() + reset() } private fun constructTrustList(domains: List): JSONObject = - JSONObject(mapOf(Constants.TRUST_LIST_JSON_ARRAY_NAME to JSONArray(domains))) + JSONObject(mapOf(TRUST_LIST_JSON_ARRAY_NAME to JSONArray(domains))) }