mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 21:15:48 +00:00
Add getUsername default method to CredentialsProvider
This commit is contained in:
committed by
Greyson Parrelli
parent
ea081e981f
commit
3ea194255d
@@ -8,6 +8,7 @@ package org.whispersystems.signalservice.api.util;
|
||||
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.ACI;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId.PNI;
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||
|
||||
public interface CredentialsProvider {
|
||||
ACI getAci();
|
||||
@@ -15,4 +16,14 @@ public interface CredentialsProvider {
|
||||
String getE164();
|
||||
int getDeviceId();
|
||||
String getPassword();
|
||||
|
||||
default String getUsername() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(getAci().toString());
|
||||
if (getDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID) {
|
||||
sb.append(".");
|
||||
sb.append(getDeviceId());
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,11 +133,7 @@ public class WebSocketConnection extends WebSocketListener {
|
||||
String filledUri;
|
||||
|
||||
if (credentialsProvider.isPresent()) {
|
||||
String identifier = Objects.requireNonNull(credentialsProvider.get().getAci()).toString();
|
||||
if (credentialsProvider.get().getDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID) {
|
||||
identifier += "." + credentialsProvider.get().getDeviceId();
|
||||
}
|
||||
filledUri = String.format(wsUri, identifier, credentialsProvider.get().getPassword());
|
||||
filledUri = String.format(wsUri, credentialsProvider.get().getUsername(), credentialsProvider.get().getPassword());
|
||||
} else {
|
||||
filledUri = wsUri;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2024 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
package org.whispersystems.signalservice.api.util
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertThrows
|
||||
import org.junit.Test
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress
|
||||
import java.util.UUID
|
||||
|
||||
class CredentialsProviderTest {
|
||||
private fun makeProvider(aci: UUID?, deviceId: Int = SignalServiceAddress.DEFAULT_DEVICE_ID): CredentialsProvider {
|
||||
return object : CredentialsProvider {
|
||||
override fun getAci(): ServiceId.ACI? {
|
||||
if (aci == null) {
|
||||
return null
|
||||
}
|
||||
return ServiceId.ACI.from(aci)
|
||||
}
|
||||
|
||||
override fun getPni(): ServiceId.PNI {
|
||||
TODO("Not used")
|
||||
}
|
||||
|
||||
override fun getE164(): String {
|
||||
TODO("Not used")
|
||||
}
|
||||
|
||||
override fun getDeviceId(): Int {
|
||||
return deviceId
|
||||
}
|
||||
|
||||
override fun getPassword(): String {
|
||||
TODO("Not used")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun usernameWithDefaultDeviceId() {
|
||||
val uuid = UUID.randomUUID()
|
||||
assertEquals(uuid.toString(), makeProvider(uuid).username)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun usernameWithDeviceId() {
|
||||
val uuid = UUID.randomUUID()
|
||||
assertEquals("$uuid.42", makeProvider(uuid, 42).username)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun usernameWithNullAci() {
|
||||
assertThrows(NullPointerException::class.java) { makeProvider(aci = null).username }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user