manage monero connections from ui #623

use tor for all monero connections by default
renames from btc to xmr
updated translations
This commit is contained in:
woodser 2023-06-05 12:55:32 -04:00
parent 1faedc8121
commit 06be2a4829
45 changed files with 681 additions and 663 deletions

View file

@ -44,7 +44,7 @@ public class BtcNetworkConfigTest {
@Test
public void testProposePeersWhenProxyPresentAndNoPeers() {
BtcNetworkConfig config = new BtcNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
XmrNetworkConfig config = new XmrNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
mock(Socks5Proxy.class));
config.proposePeers(Collections.emptyList());
@ -54,7 +54,7 @@ public class BtcNetworkConfigTest {
@Test
public void testProposePeersWhenProxyNotPresentAndNoPeers() {
BtcNetworkConfig config = new BtcNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
XmrNetworkConfig config = new XmrNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
null);
config.proposePeers(Collections.emptyList());
@ -64,7 +64,7 @@ public class BtcNetworkConfigTest {
@Test
public void testProposePeersWhenPeersPresent() {
BtcNetworkConfig config = new BtcNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
XmrNetworkConfig config = new XmrNetworkConfig(delegate, mock(NetworkParameters.class), MODE,
null);
config.proposePeers(Collections.singletonList(mock(PeerAddress.class)));

View file

@ -18,8 +18,8 @@
package haveno.core.xmr.nodes;
import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy;
import haveno.core.xmr.nodes.BtcNodeConverter.Facade;
import haveno.core.xmr.nodes.BtcNodes.BtcNode;
import haveno.core.xmr.nodes.XmrNodeConverter.Facade;
import haveno.core.xmr.nodes.XmrNodes.XmrNode;
import haveno.network.DnsLookupException;
import org.bitcoinj.core.PeerAddress;
import org.junit.jupiter.api.Test;
@ -32,10 +32,10 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class BtcNodeConverterTest {
public class XmrNodeConverterTest {
@Test
public void testConvertOnionHost() {
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.getOnionAddress()).thenReturn("aaa.onion");
//InetAddress inetAddress = mock(InetAddress.class);
@ -43,7 +43,7 @@ public class BtcNodeConverterTest {
Facade facade = mock(Facade.class);
//when(facade.onionHostToInetAddress(any())).thenReturn(inetAddress);
PeerAddress peerAddress = new BtcNodeConverter(facade).convertOnionHost(node);
PeerAddress peerAddress = new XmrNodeConverter(facade).convertOnionHost(node);
// noinspection ConstantConditions
assertEquals(node.getOnionAddress(), peerAddress.getHostname());
}
@ -52,10 +52,10 @@ public class BtcNodeConverterTest {
public void testConvertClearNode() {
final String ip = "192.168.0.1";
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.getHostNameOrAddress()).thenReturn(ip);
PeerAddress peerAddress = new BtcNodeConverter().convertClearNode(node);
PeerAddress peerAddress = new XmrNodeConverter().convertClearNode(node);
// noinspection ConstantConditions
InetAddress inetAddress = peerAddress.getAddr();
assertEquals(ip, inetAddress.getHostAddress());
@ -68,10 +68,10 @@ public class BtcNodeConverterTest {
Facade facade = mock(Facade.class);
when(facade.torLookup(any(), anyString())).thenReturn(expected);
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.getHostNameOrAddress()).thenReturn("aaa.onion");
PeerAddress peerAddress = new BtcNodeConverter(facade).convertWithTor(node, mock(Socks5Proxy.class));
PeerAddress peerAddress = new XmrNodeConverter(facade).convertWithTor(node, mock(Socks5Proxy.class));
// noinspection ConstantConditions
assertEquals(expected, peerAddress.getAddr());

View file

@ -19,7 +19,7 @@ package haveno.core.xmr.nodes;
import com.google.common.collect.Lists;
import com.runjva.sourceforge.jsocks.protocol.Socks5Proxy;
import haveno.core.xmr.nodes.BtcNodes.BtcNode;
import haveno.core.xmr.nodes.XmrNodes.XmrNode;
import org.bitcoinj.core.PeerAddress;
import org.junit.jupiter.api.Test;
@ -35,14 +35,14 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class BtcNodesRepositoryTest {
public class XmrNodesRepositoryTest {
@Test
public void testGetPeerAddressesWhenClearNodes() {
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.hasClearNetAddress()).thenReturn(true);
BtcNodeConverter converter = mock(BtcNodeConverter.class, RETURNS_DEEP_STUBS);
BtcNodesRepository repository = new BtcNodesRepository(converter,
XmrNodeConverter converter = mock(XmrNodeConverter.class, RETURNS_DEEP_STUBS);
XmrNodesRepository repository = new XmrNodesRepository(converter,
Collections.singletonList(node));
List<PeerAddress> peers = repository.getPeerAddresses(null, false);
@ -52,13 +52,13 @@ public class BtcNodesRepositoryTest {
@Test
public void testGetPeerAddressesWhenConverterReturnsNull() {
BtcNodeConverter converter = mock(BtcNodeConverter.class);
XmrNodeConverter converter = mock(XmrNodeConverter.class);
when(converter.convertClearNode(any())).thenReturn(null);
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.hasClearNetAddress()).thenReturn(true);
BtcNodesRepository repository = new BtcNodesRepository(converter,
XmrNodesRepository repository = new XmrNodesRepository(converter,
Collections.singletonList(node));
List<PeerAddress> peers = repository.getPeerAddresses(null, false);
@ -69,14 +69,14 @@ public class BtcNodesRepositoryTest {
@Test
public void testGetPeerAddressesWhenProxyAndClearNodes() {
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.hasClearNetAddress()).thenReturn(true);
BtcNode onionNode = mock(BtcNode.class);
XmrNode onionNode = mock(XmrNode.class);
when(node.hasOnionAddress()).thenReturn(true);
BtcNodeConverter converter = mock(BtcNodeConverter.class, RETURNS_DEEP_STUBS);
BtcNodesRepository repository = new BtcNodesRepository(converter,
XmrNodeConverter converter = mock(XmrNodeConverter.class, RETURNS_DEEP_STUBS);
XmrNodesRepository repository = new XmrNodesRepository(converter,
Lists.newArrayList(node, onionNode));
List<PeerAddress> peers = repository.getPeerAddresses(mock(Socks5Proxy.class), true);
@ -86,14 +86,14 @@ public class BtcNodesRepositoryTest {
@Test
public void testGetPeerAddressesWhenOnionNodesOnly() {
BtcNode node = mock(BtcNode.class);
XmrNode node = mock(XmrNode.class);
when(node.hasClearNetAddress()).thenReturn(true);
BtcNode onionNode = mock(BtcNode.class);
XmrNode onionNode = mock(XmrNode.class);
when(node.hasOnionAddress()).thenReturn(true);
BtcNodeConverter converter = mock(BtcNodeConverter.class, RETURNS_DEEP_STUBS);
BtcNodesRepository repository = new BtcNodesRepository(converter,
XmrNodeConverter converter = mock(XmrNodeConverter.class, RETURNS_DEEP_STUBS);
XmrNodesRepository repository = new XmrNodesRepository(converter,
Lists.newArrayList(node, onionNode));
List<PeerAddress> peers = repository.getPeerAddresses(mock(Socks5Proxy.class), false);

View file

@ -18,26 +18,26 @@
package haveno.core.xmr.nodes;
import haveno.core.user.Preferences;
import haveno.core.xmr.nodes.BtcNodes.BtcNode;
import haveno.core.xmr.nodes.XmrNodes.XmrNode;
import org.junit.jupiter.api.Test;
import java.util.List;
import static haveno.core.xmr.nodes.BtcNodes.BitcoinNodesOption.CUSTOM;
import static haveno.core.xmr.nodes.BtcNodes.BitcoinNodesOption.PUBLIC;
import static haveno.core.xmr.nodes.XmrNodes.MoneroNodesOption.CUSTOM;
import static haveno.core.xmr.nodes.XmrNodes.MoneroNodesOption.PUBLIC;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class BtcNodesSetupPreferencesTest {
public class XmrNodesSetupPreferencesTest {
@Test
public void testSelectPreferredNodesWhenPublicOption() {
Preferences delegate = mock(Preferences.class);
when(delegate.getBitcoinNodesOptionOrdinal()).thenReturn(PUBLIC.ordinal());
when(delegate.getMoneroNodesOptionOrdinal()).thenReturn(PUBLIC.ordinal());
BtcNodesSetupPreferences preferences = new BtcNodesSetupPreferences(delegate);
List<BtcNode> nodes = preferences.selectPreferredNodes(mock(BtcNodes.class));
XmrNodesSetupPreferences preferences = new XmrNodesSetupPreferences(delegate);
List<XmrNode> nodes = preferences.selectPreferredNodes(mock(XmrNodes.class));
assertTrue(nodes.isEmpty());
}
@ -45,11 +45,11 @@ public class BtcNodesSetupPreferencesTest {
@Test
public void testSelectPreferredNodesWhenCustomOption() {
Preferences delegate = mock(Preferences.class);
when(delegate.getBitcoinNodesOptionOrdinal()).thenReturn(CUSTOM.ordinal());
when(delegate.getBitcoinNodes()).thenReturn("aaa.onion,bbb.onion");
when(delegate.getMoneroNodesOptionOrdinal()).thenReturn(CUSTOM.ordinal());
when(delegate.getMoneroNodes()).thenReturn("aaa.onion,bbb.onion");
BtcNodesSetupPreferences preferences = new BtcNodesSetupPreferences(delegate);
List<BtcNode> nodes = preferences.selectPreferredNodes(mock(BtcNodes.class));
XmrNodesSetupPreferences preferences = new XmrNodesSetupPreferences(delegate);
List<XmrNode> nodes = preferences.selectPreferredNodes(mock(XmrNodes.class));
assertEquals(2, nodes.size());
}