Fix error display when entering invalid username characters.

Also convert UsernameEditViewModel to kotlin.
This commit is contained in:
Greyson Parrelli
2023-08-25 11:17:26 -04:00
parent 3fe9ce378e
commit 84b4d69913
6 changed files with 316 additions and 350 deletions

View File

@@ -1,48 +0,0 @@
package org.thoughtcrime.securesms.util;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
public class UsernameUtilTest {
@Test
public void checkUsername_tooShort() {
assertEquals(UsernameUtil.InvalidReason.TOO_SHORT, UsernameUtil.checkUsername(null).get());
assertEquals(UsernameUtil.InvalidReason.TOO_SHORT, UsernameUtil.checkUsername("").get());
assertEquals(UsernameUtil.InvalidReason.TOO_SHORT, UsernameUtil.checkUsername("ab").get());
}
@Test
public void checkUsername_tooLong() {
assertEquals(UsernameUtil.InvalidReason.TOO_LONG, UsernameUtil.checkUsername("abcdefghijklmnopqrstuvwxyz1234567").get());
}
@Test
public void checkUsername_startsWithNumber() {
assertEquals(UsernameUtil.InvalidReason.STARTS_WITH_NUMBER, UsernameUtil.checkUsername("0abcdefg").get());
assertEquals(UsernameUtil.InvalidReason.STARTS_WITH_NUMBER, UsernameUtil.checkUsername("9abcdefg").get());
assertEquals(UsernameUtil.InvalidReason.STARTS_WITH_NUMBER, UsernameUtil.checkUsername("8675309").get());
}
@Test
public void checkUsername_invalidCharacters() {
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("$abcd").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername(" abcd").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("ab cde").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("%%%%%").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("-----").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("asĸ_me").get());
assertEquals(UsernameUtil.InvalidReason.INVALID_CHARACTERS, UsernameUtil.checkUsername("+18675309").get());
}
@Test
public void checkUsername_validUsernames() {
assertFalse(UsernameUtil.checkUsername("abcd").isPresent());
assertFalse(UsernameUtil.checkUsername("abcdefghijklmnopqrstuvwxyz").isPresent());
assertFalse(UsernameUtil.checkUsername("ABCDEFGHIJKLMNOPQRSTUVWXYZ").isPresent());
assertFalse(UsernameUtil.checkUsername("web_head").isPresent());
assertFalse(UsernameUtil.checkUsername("Spider_Fan_1991").isPresent());
}
}

View File

@@ -0,0 +1,48 @@
package org.thoughtcrime.securesms.util
import org.junit.Test
import org.thoughtcrime.securesms.assertIs
import org.thoughtcrime.securesms.assertIsNotNull
import org.thoughtcrime.securesms.assertIsNull
import org.thoughtcrime.securesms.util.UsernameUtil.checkUsername
class UsernameUtilTest {
@Test
fun checkUsername_tooShort() {
checkUsername(null) assertIs UsernameUtil.InvalidReason.TOO_SHORT
checkUsername("") assertIs UsernameUtil.InvalidReason.TOO_SHORT
checkUsername("ab") assertIs UsernameUtil.InvalidReason.TOO_SHORT
}
@Test
fun checkUsername_tooLong() {
checkUsername("abcdefghijklmnopqrstuvwxyz1234567") assertIs UsernameUtil.InvalidReason.TOO_LONG
}
@Test
fun checkUsername_startsWithNumber() {
checkUsername("0abcdefg") assertIs UsernameUtil.InvalidReason.STARTS_WITH_NUMBER
checkUsername("9abcdefg") assertIs UsernameUtil.InvalidReason.STARTS_WITH_NUMBER
checkUsername("8675309") assertIs UsernameUtil.InvalidReason.STARTS_WITH_NUMBER
}
@Test
fun checkUsername_invalidCharacters() {
checkUsername("\$abcd") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername(" abcd") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername("ab cde") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername("%%%%%") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername("-----") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername("asĸ_me") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
checkUsername("+18675309") assertIs UsernameUtil.InvalidReason.INVALID_CHARACTERS
}
@Test
fun checkUsername_validUsernames() {
checkUsername("abcd").assertIsNull()
checkUsername("abcdefghijklmnopqrstuvwxyz").assertIsNull()
checkUsername("ABCDEFGHIJKLMNOPQRSTUVWXYZ").assertIsNull()
checkUsername("web_head").assertIsNull()
checkUsername("Spider_Fan_1991").assertIsNull()
}
}