From b424d6f98eea744e159fdd291c8b138d7d638db5 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Wed, 28 Sep 2022 16:18:08 +0100
Subject: [PATCH] Add test for snowflake parameters.

---
 .../plugin/tor/CircumventionProviderImpl.java |  4 +++-
 ...ava => CircumventionProviderImplTest.java} | 24 +++++++++++++++++--
 2 files changed, 25 insertions(+), 3 deletions(-)
 rename bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/{CircumventionProviderTest.java => CircumventionProviderImplTest.java} (79%)

diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImpl.java
index 1f79ab0746..8ad07f8d86 100644
--- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImpl.java
+++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImpl.java
@@ -94,7 +94,9 @@ class CircumventionProviderImpl implements CircumventionProvider {
 		return bridges;
 	}
 
-	private String getSnowflakeParams(String countryCode, boolean letsEncrypt) {
+	// Package access for testing
+	@SuppressWarnings("WeakerAccess")
+	String getSnowflakeParams(String countryCode, boolean letsEncrypt) {
 		Map<String, String> params = loadSnowflakeParams();
 		if (countryCode.isEmpty()) countryCode = DEFAULT_COUNTRY_CODE;
 		// If we have parameters for this country code, return them
diff --git a/bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderTest.java b/bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImplTest.java
similarity index 79%
rename from bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderTest.java
rename to bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImplTest.java
index 310ec6eb00..564efcdedc 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/plugin/tor/CircumventionProviderImplTest.java
@@ -18,11 +18,13 @@ import static org.briarproject.bramble.plugin.tor.CircumventionProvider.DEFAULT_
 import static org.briarproject.bramble.plugin.tor.CircumventionProvider.DPI_BRIDGES;
 import static org.briarproject.bramble.plugin.tor.CircumventionProvider.NON_DEFAULT_BRIDGES;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
 
-public class CircumventionProviderTest extends BrambleTestCase {
+public class CircumventionProviderImplTest extends BrambleTestCase {
 
-	private final CircumventionProvider provider =
+	private final CircumventionProviderImpl provider =
 			new CircumventionProviderImpl();
 
 	@Test
@@ -64,6 +66,24 @@ public class CircumventionProviderTest extends BrambleTestCase {
 				provider.getSuitableBridgeTypes("ZZ"));
 	}
 
+	@Test
+	public void testHasSnowflakeParamsWithLetsEncrypt() {
+		testHasSnowflakeParams(true);
+	}
+
+	@Test
+	public void testHasSnowflakeParamsWithoutLetsEncrypt() {
+		testHasSnowflakeParams(false);
+	}
+
+	private void testHasSnowflakeParams(boolean letsEncrypt) {
+		String tmParams = provider.getSnowflakeParams("TM", letsEncrypt);
+		String defaultParams = provider.getSnowflakeParams("ZZ", letsEncrypt);
+		assertFalse(tmParams.isEmpty());
+		assertFalse(defaultParams.isEmpty());
+		assertNotEquals(defaultParams, tmParams);
+	}
+
 	private <T> void assertEmptyIntersection(Set<T> a, Set<T> b) {
 		Set<T> intersection = new HashSet<>(a);
 		intersection.retainAll(b);
-- 
GitLab