mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-25 11:20:47 +01:00
committed by
Greyson Parrelli
parent
39b4484887
commit
d28fa304c8
@@ -1,76 +0,0 @@
|
||||
package org.thoughtcrime.securesms.util;
|
||||
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockedStatic;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.mockito.stubbing.Answer;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
|
||||
public class DelimiterUtilTest {
|
||||
|
||||
@Rule
|
||||
public MockitoRule rule = MockitoJUnit.rule();
|
||||
|
||||
@Mock
|
||||
private MockedStatic<TextUtils> textUtilsMockedStatic;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
textUtilsMockedStatic.when(() -> TextUtils.isEmpty(anyString())).thenAnswer((Answer<Boolean>) invocation -> {
|
||||
if (invocation.getArguments()[0] == null) return true;
|
||||
return ((String) invocation.getArguments()[0]).isEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEscape() {
|
||||
assertEquals(DelimiterUtil.escape("MTV Music", ' '), "MTV\\ Music");
|
||||
assertEquals(DelimiterUtil.escape("MTV Music", ' '), "MTV\\ \\ Music");
|
||||
|
||||
assertEquals(DelimiterUtil.escape("MTV,Music", ','), "MTV\\,Music");
|
||||
assertEquals(DelimiterUtil.escape("MTV,,Music", ','), "MTV\\,\\,Music");
|
||||
|
||||
assertEquals(DelimiterUtil.escape("MTV Music", '+'), "MTV Music");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSplit() {
|
||||
String[] parts = DelimiterUtil.split("MTV\\ Music", ' ');
|
||||
assertEquals(parts.length, 1);
|
||||
assertEquals(parts[0], "MTV\\ Music");
|
||||
|
||||
parts = DelimiterUtil.split("MTV Music", ' ');
|
||||
assertEquals(parts.length, 2);
|
||||
assertEquals(parts[0], "MTV");
|
||||
assertEquals(parts[1], "Music");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEscapeSplit() {
|
||||
String input = "MTV Music";
|
||||
String intermediate = DelimiterUtil.escape(input, ' ');
|
||||
String[] parts = DelimiterUtil.split(intermediate, ' ');
|
||||
|
||||
assertEquals(parts.length, 1);
|
||||
assertEquals(parts[0], "MTV\\ Music");
|
||||
assertEquals(DelimiterUtil.unescape(parts[0], ' '), "MTV Music");
|
||||
|
||||
input = "MTV\\ Music";
|
||||
intermediate = DelimiterUtil.escape(input, ' ');
|
||||
parts = DelimiterUtil.split(intermediate, ' ');
|
||||
|
||||
assertEquals(parts.length, 1);
|
||||
assertEquals(parts[0], "MTV\\\\ Music");
|
||||
assertEquals(DelimiterUtil.unescape(parts[0], ' '), "MTV\\ Music");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package org.thoughtcrime.securesms.util
|
||||
|
||||
import android.text.TextUtils
|
||||
import io.mockk.every
|
||||
import io.mockk.mockkStatic
|
||||
import io.mockk.unmockkStatic
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertArrayEquals
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
class DelimiterUtilTest {
|
||||
@Before
|
||||
fun setup() {
|
||||
mockkStatic(TextUtils::class)
|
||||
every { TextUtils.isEmpty(any()) } answers {
|
||||
(invocation.args.first() as? String)?.isEmpty() ?: true
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
fun cleanup() {
|
||||
unmockkStatic(TextUtils::class)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testEscape() {
|
||||
assertEquals("MTV\\ Music", DelimiterUtil.escape("MTV Music", ' '))
|
||||
assertEquals("MTV\\ \\ Music", DelimiterUtil.escape("MTV Music", ' '))
|
||||
|
||||
assertEquals("MTV\\,Music", DelimiterUtil.escape("MTV,Music", ','))
|
||||
assertEquals("MTV\\,\\,Music", DelimiterUtil.escape("MTV,,Music", ','))
|
||||
|
||||
assertEquals("MTV Music", DelimiterUtil.escape("MTV Music", '+'))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSplit() {
|
||||
assertArrayEquals(
|
||||
arrayOf("MTV\\ Music"),
|
||||
DelimiterUtil.split("MTV\\ Music", ' ')
|
||||
)
|
||||
assertArrayEquals(
|
||||
arrayOf("MTV", "Music"),
|
||||
DelimiterUtil.split("MTV Music", ' ')
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testEscapeSplit() {
|
||||
"MTV Music".let { input ->
|
||||
val intermediate = DelimiterUtil.escape(input, ' ')
|
||||
val parts = DelimiterUtil.split(intermediate, ' ')
|
||||
assertEquals("MTV\\ Music", parts.single())
|
||||
assertEquals("MTV Music", DelimiterUtil.unescape(parts.single(), ' '))
|
||||
}
|
||||
|
||||
"MTV\\ Music".let { input ->
|
||||
val intermediate = DelimiterUtil.escape(input, ' ')
|
||||
val parts = DelimiterUtil.split(intermediate, ' ')
|
||||
assertEquals("MTV\\\\ Music", parts.single())
|
||||
assertEquals("MTV\\ Music", DelimiterUtil.unescape(parts.single(), ' '))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user