diff --git a/test/build.xml b/test/build.xml
index c30d88014..793c9d63a 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -41,6 +41,7 @@
+
diff --git a/test/net/sf/briar/transport/ConnectionWriterImplTest.java b/test/net/sf/briar/transport/ConnectionWriterImplTest.java
index 56528e9e2..9d7794a79 100644
--- a/test/net/sf/briar/transport/ConnectionWriterImplTest.java
+++ b/test/net/sf/briar/transport/ConnectionWriterImplTest.java
@@ -103,7 +103,7 @@ public class ConnectionWriterImplTest extends TransportTest {
@Test
public void testGetCapacity() throws Exception {
- int overheadPerFrame = 4 + mac.getMacLength();
+ int overheadPerFrame = headerLength + macLength;
ByteArrayOutputStream out = new ByteArrayOutputStream();
ConnectionEncrypter e = new NullConnectionEncrypter(out);
ConnectionWriterImpl w = new ConnectionWriterImpl(e, mac);
diff --git a/test/net/sf/briar/transport/ConnectionWriterTest.java b/test/net/sf/briar/transport/ConnectionWriterTest.java
new file mode 100644
index 000000000..aa1487eda
--- /dev/null
+++ b/test/net/sf/briar/transport/ConnectionWriterTest.java
@@ -0,0 +1,49 @@
+package net.sf.briar.transport;
+
+import java.io.ByteArrayOutputStream;
+
+import junit.framework.TestCase;
+import net.sf.briar.api.protocol.ProtocolConstants;
+import net.sf.briar.api.transport.ConnectionWriter;
+import net.sf.briar.api.transport.ConnectionWriterFactory;
+import net.sf.briar.api.transport.TransportConstants;
+import net.sf.briar.crypto.CryptoModule;
+
+import org.junit.Test;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+public class ConnectionWriterTest extends TestCase {
+
+ private final ConnectionWriterFactory connectionWriterFactory;
+ private final byte[] secret = new byte[100];
+ private final int transportId = 999;
+ private final long connection = 1234L;
+
+ public ConnectionWriterTest() throws Exception {
+ super();
+ Injector i = Guice.createInjector(new CryptoModule(),
+ new TransportModule());
+ connectionWriterFactory = i.getInstance(ConnectionWriterFactory.class);
+ }
+
+ @Test
+ public void testOverhead() throws Exception {
+ ByteArrayOutputStream out = new ByteArrayOutputStream(
+ TransportConstants.MIN_CONNECTION_LENGTH);
+ ConnectionWriter w = connectionWriterFactory.createConnectionWriter(out,
+ true, transportId, connection, secret);
+ // Check that the connection writer thinks there's room for a packet
+ long capacity = w.getCapacity(TransportConstants.MIN_CONNECTION_LENGTH);
+ assertTrue(capacity >= ProtocolConstants.MAX_PACKET_LENGTH);
+ assertTrue(capacity <= TransportConstants.MIN_CONNECTION_LENGTH);
+ // Check that there really is room for a packet
+ byte[] payload = new byte[ProtocolConstants.MAX_PACKET_LENGTH];
+ w.getOutputStream().write(payload);
+ w.getOutputStream().flush();
+ long used = out.size();
+ assertTrue(used >= ProtocolConstants.MAX_PACKET_LENGTH);
+ assertTrue(used <= TransportConstants.MIN_CONNECTION_LENGTH);
+ }
+}
diff --git a/test/net/sf/briar/transport/PaddedConnectionWriterTest.java b/test/net/sf/briar/transport/PaddedConnectionWriterTest.java
index 8cdbb78f4..90efc1049 100644
--- a/test/net/sf/briar/transport/PaddedConnectionWriterTest.java
+++ b/test/net/sf/briar/transport/PaddedConnectionWriterTest.java
@@ -163,7 +163,7 @@ public class PaddedConnectionWriterTest extends TransportTest {
@Test
public void testGetCapacity() throws Exception {
- int overheadPerFrame = 4 + mac.getMacLength();
+ int overheadPerFrame = headerLength + macLength;
ByteArrayOutputStream out = new ByteArrayOutputStream();
ConnectionEncrypter e = new NullConnectionEncrypter(out);
PaddedConnectionWriter w = new PaddedConnectionWriter(e, mac);