Remove BaseUnitTest.java

Resolves #13804
This commit is contained in:
Jameson Williams
2024-11-20 00:28:54 -06:00
committed by Greyson Parrelli
parent cf24b22de9
commit 040d05a0a6
6 changed files with 41 additions and 137 deletions

View File

@@ -1,87 +0,0 @@
package org.thoughtcrime.securesms;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Looper;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import org.junit.Before;
import org.junit.Rule;
import org.mockito.Mock;
import org.mockito.MockedConstruction;
import org.mockito.MockedStatic;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.mockito.stubbing.Answer;
import org.signal.core.util.logging.Log;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public abstract class BaseUnitTest {
@Rule
public MockitoRule rule = MockitoJUnit.rule();
@Mock
private MockedStatic<Looper> looperMockedStatic;
@Mock
private MockedStatic<Log> logMockedStatic;
@Mock
private MockedStatic<Handler> handlerMockedStatic;
@Mock
private MockedStatic<TextUtils> textUtilsMockedStatic;
@Mock
private MockedStatic<PreferenceManager> preferenceManagerMockedStatic;
@Mock
private MockedConstruction<Handler> handlerMockedConstruction;
protected Context context = mock(Context.class);
protected SharedPreferences sharedPreferences = mock(SharedPreferences.class);
@Before
public void setUp() throws Exception {
when(PreferenceManager.getDefaultSharedPreferences(any(Context.class))).thenReturn(sharedPreferences);
when(Looper.getMainLooper()).thenReturn(null);
Answer<?> logAnswer = (Answer<Void>) invocation -> {
final String tag = (String)invocation.getArguments()[0];
final String msg = (String)invocation.getArguments()[1];
System.out.println(invocation.getMethod().getName().toUpperCase() + "/[" + tag + "] " + msg);
return null;
};
logMockedStatic.when(() -> Log.d(anyString(), anyString())).thenAnswer(logAnswer);
logMockedStatic.when(() -> Log.i(anyString(), anyString())).thenAnswer(logAnswer);
logMockedStatic.when(() -> Log.w(anyString(), anyString())).thenAnswer(logAnswer);
logMockedStatic.when(() -> Log.e(anyString(), anyString())).thenAnswer(logAnswer);
Answer<Boolean> isEmptyAnswer = invocation -> {
final String s = (String)invocation.getArguments()[0];
return s == null || s.length() == 0;
};
textUtilsMockedStatic.when(() -> TextUtils.isEmpty(anyString())).thenAnswer(isEmptyAnswer);
when(sharedPreferences.getString(anyString(), anyString())).thenReturn("");
when(sharedPreferences.getLong(anyString(), anyLong())).thenReturn(0L);
when(sharedPreferences.getInt(anyString(), anyInt())).thenReturn(0);
when(sharedPreferences.getBoolean(anyString(), anyBoolean())).thenReturn(false);
when(sharedPreferences.getFloat(anyString(), anyFloat())).thenReturn(0f);
when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPreferences);
when(context.getPackageName()).thenReturn("org.thoughtcrime.securesms");
}
}

View File

@@ -5,9 +5,9 @@
package org.thoughtcrime.securesms.service
import org.junit.Assert
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.thoughtcrime.securesms.BaseUnitTest
import org.thoughtcrime.securesms.testutil.MockRandom
import java.time.Duration
import java.time.LocalDateTime
@@ -15,14 +15,14 @@ import java.util.concurrent.TimeUnit
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.minutes
class BackListenerTest : BaseUnitTest() {
class BackListenerTest {
@Test
fun testBackupJitterExactlyWithinJitterWindow() {
val jitterWindowSeconds = Math.toIntExact(TimeUnit.MINUTES.toSeconds(10))
val now = LocalDateTime.of(2024, 6, 7, 2, 55)
val next = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 3, 0, jitterWindowSeconds)
Assert.assertEquals(8, next.dayOfMonth)
assertEquals(8, next.dayOfMonth)
}
@Test
@@ -30,7 +30,7 @@ class BackListenerTest : BaseUnitTest() {
val jitterWindowSeconds = Math.toIntExact(TimeUnit.MINUTES.toSeconds(10))
val now = LocalDateTime.of(2024, 6, 7, 2, 58)
val next = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 3, 0, jitterWindowSeconds)
Assert.assertEquals(8, next.dayOfMonth)
assertEquals(8, next.dayOfMonth)
}
@Test
@@ -38,7 +38,7 @@ class BackListenerTest : BaseUnitTest() {
val jitterWindowSeconds = Math.toIntExact(TimeUnit.MINUTES.toSeconds(10))
val now = LocalDateTime.of(2024, 6, 7, 2, 54, 59)
val next = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 3, 0, jitterWindowSeconds)
Assert.assertEquals(7, next.dayOfMonth)
assertEquals(7, next.dayOfMonth)
}
@Test
@@ -46,7 +46,7 @@ class BackListenerTest : BaseUnitTest() {
val jitterWindowSeconds = Math.toIntExact(TimeUnit.MINUTES.toSeconds(10))
val now = LocalDateTime.of(2024, 6, 7, 3, 15, 0)
val next = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 3, 0, jitterWindowSeconds)
Assert.assertEquals(8, next.dayOfMonth)
assertEquals(8, next.dayOfMonth)
}
@Test
@@ -56,6 +56,6 @@ class BackListenerTest : BaseUnitTest() {
val now: LocalDateTime = LocalDateTime.of(2024, 6, 27, 23, 57, 0)
val next: LocalDateTime = MessageBackupListener.getNextDailyBackupTimeFromNowWithJitter(now, 0, 0, jitterWindowSeconds, mockRandom)
Assert.assertTrue(Duration.between(now, next).toSeconds() > (1.days.inWholeSeconds - jitterWindowSeconds))
assertTrue(Duration.between(now, next).toSeconds() > (1.days.inWholeSeconds - jitterWindowSeconds))
}
}

View File

@@ -5,9 +5,9 @@
package org.thoughtcrime.securesms.service;
import org.junit.Before;
import org.junit.Test;
import org.thoughtcrime.securesms.BaseUnitTest;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
@@ -15,15 +15,22 @@ import java.util.Optional;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.contains;
import static org.mockito.Mockito.when;
/**
* Tests {@link VerificationCodeParser}
*/
public class VerificationCodeParserTest extends BaseUnitTest {
@RunWith(Parameterized.class)
public class VerificationCodeParserTest {
private final String input;
private final String expectedOutput;
public VerificationCodeParserTest(String input, String expectedOutput) {
this.input = input;
this.expectedOutput = expectedOutput;
}
@Parameterized.Parameters(name = "{index}: test with input={0} and expectedOutput={1}")
public static Collection<String[]> challenges() {
return Arrays.asList(new String[][]{
{"Your TextSecure verification code: 337-337", "337337"},
@@ -95,19 +102,10 @@ public class VerificationCodeParserTest extends BaseUnitTest {
});
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
when(sharedPreferences.getBoolean(contains("pref_verifying"), anyBoolean())).thenReturn(true);
}
@Test
public void testChallenges() {
for (String[] challenge : challenges()) {
Optional<String> result = VerificationCodeParser.parse(challenge[0]);
assertTrue(result.isPresent());
assertEquals(challenge[1], result.get());
}
Optional<String> result = VerificationCodeParser.parse(input);
assertTrue(result.isPresent());
assertEquals(expectedOutput, result.get());
}
}

View File

@@ -1,14 +1,13 @@
package org.thoughtcrime.securesms.util;
import org.junit.Test;
import org.thoughtcrime.securesms.BaseUnitTest;
import java.util.LinkedList;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class ListPartitionTest extends BaseUnitTest {
public class ListPartitionTest {
@Test public void testPartitionEven() {
List<Integer> list = new LinkedList<>();
@@ -19,16 +18,16 @@ public class ListPartitionTest extends BaseUnitTest {
List<List<Integer>> partitions = Util.partition(list, 10);
assertEquals(partitions.size(), 10);
assertEquals(10, partitions.size());
int counter = 0;
for (int i=0;i<partitions.size();i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 10);
assertEquals(10, partition.size());
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
assertEquals(counter++, (int)partition.get(j));
}
}
}
@@ -44,21 +43,21 @@ public class ListPartitionTest extends BaseUnitTest {
List<List<Integer>> partitions = Util.partition(list, 10);
assertEquals(partitions.size(), 11);
assertEquals(11, partitions.size());
int counter = 0;
for (int i=0;i<partitions.size()-1;i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 10);
assertEquals(10, partition.size());
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
assertEquals(counter++, (int)partition.get(j));
}
}
assertEquals(partitions.get(10).size(), 1);
assertEquals((int)partitions.get(10).get(0), 100);
assertEquals(1, partitions.get(10).size());
assertEquals(100, (int)partitions.get(10).get(0));
}
@Test public void testPathological() {
@@ -70,16 +69,16 @@ public class ListPartitionTest extends BaseUnitTest {
List<List<Integer>> partitions = Util.partition(list, 1);
assertEquals(partitions.size(), 100);
assertEquals(100, partitions.size());
int counter = 0;
for (int i=0;i<partitions.size();i++) {
List<Integer> partition = partitions.get(i);
assertEquals(partition.size(), 1);
assertEquals(1, partition.size());
for (int j=0;j<partition.size();j++) {
assertEquals((int)partition.get(j), counter++);
assertEquals(counter++, (int)partition.get(j));
}
}
}

View File

@@ -1,22 +1,20 @@
package org.thoughtcrime.securesms.util;
import org.junit.Test;
import org.thoughtcrime.securesms.BaseUnitTest;
import org.thoughtcrime.securesms.util.RemoteConfig.ConfigChange;
import org.thoughtcrime.securesms.util.RemoteConfig.UpdateResult;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.thoughtcrime.securesms.testutil.TestHelpers.mapOf;
import static org.thoughtcrime.securesms.testutil.TestHelpers.setOf;
public class RemoteConfigTest extends BaseUnitTest {
public class RemoteConfigTest {
private static final String A = "A";
private static final String B = "B";
@@ -376,6 +374,7 @@ public class RemoteConfigTest extends BaseUnitTest {
assertTrue(result.getMemoryChanges().isEmpty());
}
/** @noinspection StringOperationCanBeSimplified*/
@Test
public void computeChanges_generic() {
Map<String, Object> oldMap = new HashMap<>() {{
@@ -412,8 +411,4 @@ public class RemoteConfigTest extends BaseUnitTest {
assertFalse(changes.containsKey("i"));
assertEquals(new ConfigChange("gwen", "stacy"), changes.get("j"));
}
private static <V> Set<V> setOf(V... values) {
return new HashSet<>(Arrays.asList(values));
}
}

View File

@@ -18,14 +18,13 @@
package org.thoughtcrime.securesms.util;
import org.junit.Test;
import org.thoughtcrime.securesms.BaseUnitTest;
import java.net.URISyntaxException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
public class Rfc5724UriTest extends BaseUnitTest {
public class Rfc5724UriTest {
@Test public void testInvalidPath() {
final String[] invalidSchemaUris = {