diff --git a/briar-tests/.classpath b/briar-tests/.classpath
index b9e40f98d..ac0eb6392 100644
--- a/briar-tests/.classpath
+++ b/briar-tests/.classpath
@@ -13,5 +13,6 @@
+
diff --git a/briar-tests/src/net/sf/briar/plugins/modem/HangupClientTest.java b/briar-tests/src/net/sf/briar/plugins/modem/HangupClientTest.java
new file mode 100644
index 000000000..433ebcd72
--- /dev/null
+++ b/briar-tests/src/net/sf/briar/plugins/modem/HangupClientTest.java
@@ -0,0 +1,42 @@
+package net.sf.briar.plugins.modem;
+
+import static java.util.logging.Level.INFO;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.logging.Logger;
+
+public class HangupClientTest {
+
+ public static void main(String[] args) throws Exception {
+ if(args.length != 2) {
+ System.err.println("Please specify the server's phone number "
+ + " and the serial port");
+ System.exit(1);
+ }
+ String number = args[0];
+ String portName = args[1];
+ Logger.getLogger("net.sf.briar").setLevel(INFO);
+ ExecutorService executor = Executors.newCachedThreadPool();
+ Modem.Callback callback = new Modem.Callback() {
+ public void incomingCallConnected() {
+ System.err.println("Unexpected incoming call");
+ System.exit(1);
+ }
+ };
+ try {
+ Modem modem = new ModemImpl(executor, callback, portName);
+ modem.start();
+ System.out.println("Dialling");
+ if(modem.dial(number)) {
+ System.out.println("Connected");
+ Thread.sleep(10 * 1000);
+ } else {
+ System.out.println("Did not connect");
+ }
+ modem.stop();
+ } finally {
+ executor.shutdown();
+ }
+ }
+}
diff --git a/briar-tests/src/net/sf/briar/plugins/modem/HangupServerTest.java b/briar-tests/src/net/sf/briar/plugins/modem/HangupServerTest.java
new file mode 100644
index 000000000..c1ed015cc
--- /dev/null
+++ b/briar-tests/src/net/sf/briar/plugins/modem/HangupServerTest.java
@@ -0,0 +1,43 @@
+package net.sf.briar.plugins.modem;
+
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static java.util.logging.Level.INFO;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.logging.Logger;
+
+public class HangupServerTest {
+
+ public static void main(String[] args) throws Exception {
+ if(args.length != 1) {
+ System.err.println("Please specify the serial port");
+ System.exit(1);
+ }
+ String portName = args[0];
+ Logger.getLogger("net.sf.briar").setLevel(INFO);
+ ExecutorService executor = Executors.newCachedThreadPool();
+ final CountDownLatch latch = new CountDownLatch(1);
+ Modem.Callback callback = new Modem.Callback() {
+ public void incomingCallConnected() {
+ System.out.println("Connected");
+ latch.countDown();
+ }
+ };
+ try {
+ final Modem modem = new ModemImpl(executor, callback, portName);
+ modem.start();
+ System.out.println("Waiting for incoming call");
+ if(latch.await(60, SECONDS)) {
+ System.out.println("Hanging up");
+ modem.hangUp();
+ } else {
+ System.out.println("Did not connect");
+ }
+ modem.stop();
+ } finally {
+ executor.shutdown();
+ }
+ }
+}
diff --git a/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java b/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
index 2d3bd7784..f50407936 100644
--- a/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
+++ b/briar-tests/src/net/sf/briar/plugins/modem/ModemClientTest.java
@@ -44,5 +44,4 @@ public class ModemClientTest extends DuplexClientTest {
executor.shutdown();
}
}
-
}