mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 05:09:53 +01:00
Factored out non-Bluetooth-specific code.
This commit is contained in:
99
test/net/sf/briar/plugins/StreamClientTest.java
Normal file
99
test/net/sf/briar/plugins/StreamClientTest.java
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
package net.sf.briar.plugins;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.sf.briar.api.ContactId;
|
||||||
|
import net.sf.briar.api.TransportConfig;
|
||||||
|
import net.sf.briar.api.TransportProperties;
|
||||||
|
import net.sf.briar.api.plugins.StreamPluginCallback;
|
||||||
|
import net.sf.briar.api.transport.StreamTransportConnection;
|
||||||
|
|
||||||
|
public abstract class StreamClientTest extends StreamTest {
|
||||||
|
|
||||||
|
protected void run() throws IOException {
|
||||||
|
assert plugin != null;
|
||||||
|
// Start the plugin
|
||||||
|
System.out.println("Starting plugin");
|
||||||
|
plugin.start();
|
||||||
|
// Try to connect to the server
|
||||||
|
System.out.println("Creating connection");
|
||||||
|
StreamTransportConnection s = plugin.createConnection(contactId);
|
||||||
|
if(s == null) {
|
||||||
|
System.out.println("Connection failed");
|
||||||
|
} else {
|
||||||
|
System.out.println("Connection created");
|
||||||
|
receiveChallengeSendResponse(s);
|
||||||
|
}
|
||||||
|
// Try to send an invitation
|
||||||
|
System.out.println("Sending invitation");
|
||||||
|
s = plugin.sendInvitation(123, INVITATION_TIMEOUT);
|
||||||
|
if(s == null) {
|
||||||
|
System.out.println("Connection failed");
|
||||||
|
} else {
|
||||||
|
System.out.println("Connection created");
|
||||||
|
receiveChallengeSendResponse(s);
|
||||||
|
}
|
||||||
|
// Try to accept an invitation
|
||||||
|
System.out.println("Accepting invitation");
|
||||||
|
s = plugin.acceptInvitation(456, INVITATION_TIMEOUT);
|
||||||
|
if(s == null) {
|
||||||
|
System.out.println("Connection failed");
|
||||||
|
} else {
|
||||||
|
System.out.println("Connection created");
|
||||||
|
sendChallengeReceiveResponse(s);
|
||||||
|
}
|
||||||
|
// Stop the plugin
|
||||||
|
System.out.println("Stopping plugin");
|
||||||
|
plugin.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static class ClientCallback implements StreamPluginCallback {
|
||||||
|
|
||||||
|
private TransportConfig config = null;
|
||||||
|
private TransportProperties local = null;
|
||||||
|
private Map<ContactId, TransportProperties> remote = null;
|
||||||
|
|
||||||
|
public ClientCallback(TransportConfig config, TransportProperties local,
|
||||||
|
Map<ContactId, TransportProperties> remote) {
|
||||||
|
this.config = config;
|
||||||
|
this.local = local;
|
||||||
|
this.remote = remote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportConfig getConfig() {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportProperties getLocalProperties() {
|
||||||
|
return local;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<ContactId, TransportProperties> getRemoteProperties() {
|
||||||
|
return remote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfig(TransportConfig c) {
|
||||||
|
config = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLocalProperties(TransportProperties p) {
|
||||||
|
local = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int showChoice(String[] options, String... message) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean showConfirmationMessage(String... message) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showMessage(String... message) {}
|
||||||
|
|
||||||
|
public void incomingConnectionCreated(StreamTransportConnection c) {}
|
||||||
|
|
||||||
|
public void outgoingConnectionCreated(ContactId contactId,
|
||||||
|
StreamTransportConnection c) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
105
test/net/sf/briar/plugins/StreamServerTest.java
Normal file
105
test/net/sf/briar/plugins/StreamServerTest.java
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
package net.sf.briar.plugins;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import net.sf.briar.api.ContactId;
|
||||||
|
import net.sf.briar.api.TransportConfig;
|
||||||
|
import net.sf.briar.api.TransportProperties;
|
||||||
|
import net.sf.briar.api.plugins.StreamPluginCallback;
|
||||||
|
import net.sf.briar.api.transport.StreamTransportConnection;
|
||||||
|
|
||||||
|
public abstract class StreamServerTest extends StreamTest {
|
||||||
|
|
||||||
|
protected void run() throws Exception {
|
||||||
|
assert callback != null;
|
||||||
|
assert plugin != null;
|
||||||
|
// Start the plugin
|
||||||
|
System.out.println("Starting plugin");
|
||||||
|
plugin.start();
|
||||||
|
// Print the local transport properties
|
||||||
|
System.out.println("Local transport properties:");
|
||||||
|
System.out.println(callback.getLocalProperties());
|
||||||
|
// Wait for a connection
|
||||||
|
System.out.println("Waiting for connection");
|
||||||
|
synchronized(callback) {
|
||||||
|
callback.wait();
|
||||||
|
}
|
||||||
|
// Try to accept an invitation
|
||||||
|
System.out.println("Accepting invitation");
|
||||||
|
StreamTransportConnection s = plugin.acceptInvitation(123,
|
||||||
|
INVITATION_TIMEOUT);
|
||||||
|
if(s == null) {
|
||||||
|
System.out.println("Connection failed");
|
||||||
|
} else {
|
||||||
|
System.out.println("Connection created");
|
||||||
|
sendChallengeReceiveResponse(s);
|
||||||
|
}
|
||||||
|
// Try to send an invitation
|
||||||
|
System.out.println("Sending invitation");
|
||||||
|
s = plugin.sendInvitation(456, INVITATION_TIMEOUT);
|
||||||
|
if(s == null) {
|
||||||
|
System.out.println("Connection failed");
|
||||||
|
} else {
|
||||||
|
System.out.println("Connection created");
|
||||||
|
receiveChallengeSendResponse(s);
|
||||||
|
}
|
||||||
|
// Stop the plugin
|
||||||
|
System.out.println("Stopping plugin");
|
||||||
|
plugin.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected class ServerCallback implements StreamPluginCallback {
|
||||||
|
|
||||||
|
private TransportConfig config;
|
||||||
|
private TransportProperties local;
|
||||||
|
private Map<ContactId, TransportProperties> remote;
|
||||||
|
|
||||||
|
public ServerCallback(TransportConfig config, TransportProperties local,
|
||||||
|
Map<ContactId, TransportProperties> remote) {
|
||||||
|
this.config = config;
|
||||||
|
this.local = local;
|
||||||
|
this.remote = remote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportConfig getConfig() {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportProperties getLocalProperties() {
|
||||||
|
return local;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<ContactId, TransportProperties> getRemoteProperties() {
|
||||||
|
return remote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfig(TransportConfig c) {
|
||||||
|
config = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLocalProperties(TransportProperties p) {
|
||||||
|
local = p;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int showChoice(String[] options, String... message) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean showConfirmationMessage(String... message) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showMessage(String... message) {}
|
||||||
|
|
||||||
|
public void incomingConnectionCreated(StreamTransportConnection s) {
|
||||||
|
System.out.println("Connection received");
|
||||||
|
sendChallengeReceiveResponse(s);
|
||||||
|
synchronized(this) {
|
||||||
|
notifyAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void outgoingConnectionCreated(ContactId contactId,
|
||||||
|
StreamTransportConnection c) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
71
test/net/sf/briar/plugins/StreamTest.java
Normal file
71
test/net/sf/briar/plugins/StreamTest.java
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
package net.sf.briar.plugins;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import net.sf.briar.api.ContactId;
|
||||||
|
import net.sf.briar.api.plugins.StreamPlugin;
|
||||||
|
import net.sf.briar.api.plugins.StreamPluginCallback;
|
||||||
|
import net.sf.briar.api.transport.StreamTransportConnection;
|
||||||
|
|
||||||
|
abstract class StreamTest {
|
||||||
|
|
||||||
|
protected static final String CHALLENGE = "Carrots!";
|
||||||
|
protected static final String RESPONSE = "Potatoes!";
|
||||||
|
protected static final long INVITATION_TIMEOUT = 30 * 1000;
|
||||||
|
|
||||||
|
protected final ContactId contactId = new ContactId(0);
|
||||||
|
|
||||||
|
protected StreamPluginCallback callback = null;
|
||||||
|
protected StreamPlugin plugin = null;
|
||||||
|
|
||||||
|
protected void sendChallengeReceiveResponse(StreamTransportConnection s) {
|
||||||
|
assert plugin != null;
|
||||||
|
try {
|
||||||
|
PrintStream out = new PrintStream(s.getOutputStream());
|
||||||
|
out.println(CHALLENGE);
|
||||||
|
System.out.println("Sent challenge: " + CHALLENGE);
|
||||||
|
Scanner in = new Scanner(s.getInputStream());
|
||||||
|
if(in.hasNextLine()) {
|
||||||
|
String response = in.nextLine();
|
||||||
|
System.out.println("Received response: " + response);
|
||||||
|
if(RESPONSE.equals(response)) {
|
||||||
|
System.out.println("Correct response");
|
||||||
|
} else {
|
||||||
|
System.out.println("Incorrect response");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("No response");
|
||||||
|
}
|
||||||
|
s.dispose(true);
|
||||||
|
} catch(IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
s.dispose(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void receiveChallengeSendResponse(StreamTransportConnection s) {
|
||||||
|
assert plugin != null;
|
||||||
|
try {
|
||||||
|
Scanner in = new Scanner(s.getInputStream());
|
||||||
|
if(in.hasNextLine()) {
|
||||||
|
String challenge = in.nextLine();
|
||||||
|
System.out.println("Received challenge: " + challenge);
|
||||||
|
if(CHALLENGE.equals(challenge)) {
|
||||||
|
PrintStream out = new PrintStream(s.getOutputStream());
|
||||||
|
out.println(RESPONSE);
|
||||||
|
System.out.println("Sent response: " + RESPONSE);
|
||||||
|
} else {
|
||||||
|
System.out.println("Incorrect challenge");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("No challenge");
|
||||||
|
}
|
||||||
|
s.dispose(true);
|
||||||
|
} catch(IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
s.dispose(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package net.sf.briar.plugins.bluetooth;
|
package net.sf.briar.plugins.bluetooth;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
@@ -9,63 +8,24 @@ import java.util.concurrent.Executors;
|
|||||||
import net.sf.briar.api.ContactId;
|
import net.sf.briar.api.ContactId;
|
||||||
import net.sf.briar.api.TransportConfig;
|
import net.sf.briar.api.TransportConfig;
|
||||||
import net.sf.briar.api.TransportProperties;
|
import net.sf.briar.api.TransportProperties;
|
||||||
import net.sf.briar.api.plugins.StreamPluginCallback;
|
import net.sf.briar.plugins.StreamClientTest;
|
||||||
import net.sf.briar.api.transport.StreamTransportConnection;
|
|
||||||
|
|
||||||
// This is not a JUnit test - it has to be run manually while the server test
|
// This is not a JUnit test - it has to be run manually while the server test
|
||||||
// is running on another machine
|
// is running on another machine
|
||||||
public class BluetoothClientTest extends BluetoothTest {
|
public class BluetoothClientTest extends StreamClientTest {
|
||||||
|
|
||||||
private final String serverAddress;
|
private BluetoothClientTest(String serverAddress) {
|
||||||
|
|
||||||
BluetoothClientTest(String serverAddress) {
|
|
||||||
this.serverAddress = serverAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
void run() throws IOException {
|
|
||||||
ContactId contactId = new ContactId(0);
|
|
||||||
ClientCallback callback = new ClientCallback();
|
|
||||||
// Store the server's Bluetooth address and UUID
|
// Store the server's Bluetooth address and UUID
|
||||||
TransportProperties p = new TransportProperties();
|
TransportProperties p = new TransportProperties();
|
||||||
p.put("address", serverAddress);
|
p.put("address", serverAddress);
|
||||||
p.put("uuid", BluetoothServerTest.UUID);
|
p.put("uuid", BluetoothTest.UUID);
|
||||||
callback.remote.put(contactId, p);
|
Map<ContactId, TransportProperties> remote =
|
||||||
|
Collections.singletonMap(contactId, p);
|
||||||
// Create the plugin
|
// Create the plugin
|
||||||
|
callback = new ClientCallback(new TransportConfig(),
|
||||||
|
new TransportProperties(), remote);
|
||||||
Executor e = Executors.newCachedThreadPool();
|
Executor e = Executors.newCachedThreadPool();
|
||||||
BluetoothPlugin plugin = new BluetoothPlugin(e, callback, 0L);
|
plugin = new BluetoothPlugin(e, callback, 0L);
|
||||||
// Start the plugin
|
|
||||||
System.out.println("Starting plugin");
|
|
||||||
plugin.start();
|
|
||||||
// Try to connect to the server
|
|
||||||
System.out.println("Creating connection");
|
|
||||||
StreamTransportConnection s = plugin.createConnection(contactId);
|
|
||||||
if(s == null) {
|
|
||||||
System.out.println("Connection failed");
|
|
||||||
} else {
|
|
||||||
System.out.println("Connection created");
|
|
||||||
receiveChallengeAndSendResponse(s);
|
|
||||||
}
|
|
||||||
// Try to send an invitation
|
|
||||||
System.out.println("Sending invitation");
|
|
||||||
s = plugin.sendInvitation(123, INVITATION_TIMEOUT);
|
|
||||||
if(s == null) {
|
|
||||||
System.out.println("Connection failed");
|
|
||||||
} else {
|
|
||||||
System.out.println("Connection created");
|
|
||||||
receiveChallengeAndSendResponse(s);
|
|
||||||
}
|
|
||||||
// Try to accept an invitation
|
|
||||||
System.out.println("Accepting invitation");
|
|
||||||
s = plugin.acceptInvitation(456, INVITATION_TIMEOUT);
|
|
||||||
if(s == null) {
|
|
||||||
System.out.println("Connection failed");
|
|
||||||
} else {
|
|
||||||
System.out.println("Connection created");
|
|
||||||
sendChallengeAndReceiveResponse(s);
|
|
||||||
}
|
|
||||||
// Stop the plugin
|
|
||||||
System.out.println("Stopping plugin");
|
|
||||||
plugin.stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
@@ -75,47 +35,4 @@ public class BluetoothClientTest extends BluetoothTest {
|
|||||||
}
|
}
|
||||||
new BluetoothClientTest(args[0]).run();
|
new BluetoothClientTest(args[0]).run();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ClientCallback implements StreamPluginCallback {
|
|
||||||
|
|
||||||
private TransportConfig config = new TransportConfig();
|
|
||||||
private TransportProperties local = new TransportProperties();
|
|
||||||
private Map<ContactId, TransportProperties> remote =
|
|
||||||
new HashMap<ContactId, TransportProperties>();
|
|
||||||
|
|
||||||
public TransportConfig getConfig() {
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TransportProperties getLocalProperties() {
|
|
||||||
return local;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<ContactId, TransportProperties> getRemoteProperties() {
|
|
||||||
return remote;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConfig(TransportConfig c) {
|
|
||||||
config = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLocalProperties(TransportProperties p) {
|
|
||||||
local = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int showChoice(String[] options, String... message) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean showConfirmationMessage(String... message) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showMessage(String... message) {}
|
|
||||||
|
|
||||||
public void incomingConnectionCreated(StreamTransportConnection c) {}
|
|
||||||
|
|
||||||
public void outgoingConnectionCreated(ContactId contactId,
|
|
||||||
StreamTransportConnection c) {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,109 +1,29 @@
|
|||||||
package net.sf.briar.plugins.bluetooth;
|
package net.sf.briar.plugins.bluetooth;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
import net.sf.briar.api.ContactId;
|
|
||||||
import net.sf.briar.api.TransportConfig;
|
import net.sf.briar.api.TransportConfig;
|
||||||
import net.sf.briar.api.TransportProperties;
|
import net.sf.briar.api.TransportProperties;
|
||||||
import net.sf.briar.api.plugins.StreamPluginCallback;
|
import net.sf.briar.plugins.StreamServerTest;
|
||||||
import net.sf.briar.api.transport.StreamTransportConnection;
|
|
||||||
|
|
||||||
//This is not a JUnit test - it has to be run manually while the server test
|
//This is not a JUnit test - it has to be run manually while the server test
|
||||||
//is running on another machine
|
//is running on another machine
|
||||||
public class BluetoothServerTest extends BluetoothTest {
|
public class BluetoothServerTest extends StreamServerTest {
|
||||||
|
|
||||||
void run() throws Exception {
|
private BluetoothServerTest() {
|
||||||
ServerCallback callback = new ServerCallback();
|
|
||||||
// Store the UUID
|
// Store the UUID
|
||||||
callback.local.put("uuid", UUID);
|
TransportProperties local = new TransportProperties();
|
||||||
|
local.put("uuid", BluetoothTest.UUID);
|
||||||
// Create the plugin
|
// Create the plugin
|
||||||
|
callback = new ServerCallback(new TransportConfig(), local,
|
||||||
|
Collections.singletonMap(contactId, new TransportProperties()));
|
||||||
Executor e = Executors.newCachedThreadPool();
|
Executor e = Executors.newCachedThreadPool();
|
||||||
BluetoothPlugin plugin = new BluetoothPlugin(e, callback, 0L);
|
plugin = new BluetoothPlugin(e, callback, 0L);
|
||||||
// Start the plugin
|
|
||||||
System.out.println("Starting plugin");
|
|
||||||
plugin.start();
|
|
||||||
// Wait for a connection
|
|
||||||
System.out.println("Waiting for connection");
|
|
||||||
synchronized(callback) {
|
|
||||||
callback.wait();
|
|
||||||
}
|
|
||||||
// Try to accept an invitation
|
|
||||||
System.out.println("Accepting invitation");
|
|
||||||
StreamTransportConnection s = plugin.acceptInvitation(123,
|
|
||||||
INVITATION_TIMEOUT);
|
|
||||||
if(s == null) {
|
|
||||||
System.out.println("Connection failed");
|
|
||||||
} else {
|
|
||||||
System.out.println("Connection created");
|
|
||||||
sendChallengeAndReceiveResponse(s);
|
|
||||||
}
|
|
||||||
// Try to send an invitation
|
|
||||||
System.out.println("Sending invitation");
|
|
||||||
s = plugin.sendInvitation(456, INVITATION_TIMEOUT);
|
|
||||||
if(s == null) {
|
|
||||||
System.out.println("Connection failed");
|
|
||||||
} else {
|
|
||||||
System.out.println("Connection created");
|
|
||||||
receiveChallengeAndSendResponse(s);
|
|
||||||
}
|
|
||||||
// Stop the plugin
|
|
||||||
System.out.println("Stopping plugin");
|
|
||||||
plugin.stop();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
new BluetoothServerTest().run();
|
new BluetoothServerTest().run();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ServerCallback implements StreamPluginCallback {
|
|
||||||
|
|
||||||
private TransportConfig config = new TransportConfig();
|
|
||||||
private TransportProperties local = new TransportProperties();
|
|
||||||
private Map<ContactId, TransportProperties> remote =
|
|
||||||
new HashMap<ContactId, TransportProperties>();
|
|
||||||
|
|
||||||
public TransportConfig getConfig() {
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TransportProperties getLocalProperties() {
|
|
||||||
return local;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<ContactId, TransportProperties> getRemoteProperties() {
|
|
||||||
return remote;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConfig(TransportConfig c) {
|
|
||||||
config = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLocalProperties(TransportProperties p) {
|
|
||||||
local = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int showChoice(String[] options, String... message) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean showConfirmationMessage(String... message) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void showMessage(String... message) {}
|
|
||||||
|
|
||||||
public void incomingConnectionCreated(StreamTransportConnection s) {
|
|
||||||
System.out.println("Connection received");
|
|
||||||
sendChallengeAndReceiveResponse(s);
|
|
||||||
synchronized(this) {
|
|
||||||
notifyAll();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void outgoingConnectionCreated(ContactId contactId,
|
|
||||||
StreamTransportConnection c) {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +1,6 @@
|
|||||||
package net.sf.briar.plugins.bluetooth;
|
package net.sf.briar.plugins.bluetooth;
|
||||||
|
|
||||||
import java.io.IOException;
|
interface BluetoothTest {
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
import net.sf.briar.api.transport.StreamTransportConnection;
|
static final String UUID = "CABBA6E5CABBA6E5CABBA6E5CABBA6E5";
|
||||||
|
|
||||||
abstract class BluetoothTest {
|
|
||||||
|
|
||||||
protected static final String UUID = "CABBA6E5CABBA6E5CABBA6E5CABBA6E5";
|
|
||||||
protected static final String CHALLENGE = "Carrots!";
|
|
||||||
protected static final String RESPONSE = "Potatoes!";
|
|
||||||
protected static final long INVITATION_TIMEOUT = 30 * 1000;
|
|
||||||
|
|
||||||
void sendChallengeAndReceiveResponse(StreamTransportConnection s) {
|
|
||||||
try {
|
|
||||||
PrintStream out = new PrintStream(s.getOutputStream());
|
|
||||||
out.println(CHALLENGE);
|
|
||||||
System.out.println("Sent challenge: " + CHALLENGE);
|
|
||||||
Scanner in = new Scanner(s.getInputStream());
|
|
||||||
if(in.hasNextLine()) {
|
|
||||||
String response = in.nextLine();
|
|
||||||
System.out.println("Received response: " + response);
|
|
||||||
if(BluetoothClientTest.RESPONSE.equals(response)) {
|
|
||||||
System.out.println("Correct response");
|
|
||||||
} else {
|
|
||||||
System.out.println("Incorrect response");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
System.out.println("No response");
|
|
||||||
}
|
|
||||||
s.dispose(true);
|
|
||||||
} catch(IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.dispose(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void receiveChallengeAndSendResponse(StreamTransportConnection s) {
|
|
||||||
try {
|
|
||||||
Scanner in = new Scanner(s.getInputStream());
|
|
||||||
if(in.hasNextLine()) {
|
|
||||||
String challenge = in.nextLine();
|
|
||||||
System.out.println("Received challenge: " + challenge);
|
|
||||||
if(BluetoothServerTest.CHALLENGE.equals(challenge)) {
|
|
||||||
PrintStream out = new PrintStream(s.getOutputStream());
|
|
||||||
out.println(RESPONSE);
|
|
||||||
System.out.println("Sent response: " + RESPONSE);
|
|
||||||
} else {
|
|
||||||
System.out.println("Incorrect challenge");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
System.out.println("No challenge");
|
|
||||||
}
|
|
||||||
s.dispose(true);
|
|
||||||
} catch(IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
s.dispose(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user