package com.limegroup.gnutella; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; import org.limewire.util.StringUtils; import com.limegroup.gnutella.messages.vendor.CapabilitiesVM; import junit.framework.Test; public class ClientSideFirewallStatusTest extends ClientSideTestCase { public ClientSideFirewallStatusTest(String name) { super(name); } public static Test suite() { return buildTestSuite(ClientSideFirewallStatusTest.class); } @Override public int getNumberOfPeers() { return 1; } public void testFirewalledNoFWT() throws Exception { // trigger a capabilities resend injector.getInstance(ConnectionManager.class).sendUpdatedCapabilities(); CapabilitiesVM cvm = BlockingConnectionUtils.getFirstInstanceOfMessageType(testUP[0], CapabilitiesVM.class); assertFalse(cvm.canAcceptIncomingTCP()); assertFalse(cvm.canDoFWT()); } public void testIncomingTriggersStatusUpdate() throws Exception { // nothing arrives for a while assertNull(BlockingConnectionUtils.getFirstInstanceOfMessageType(testUP[0], CapabilitiesVM.class)); SocketAddress me = new InetSocketAddress("127.0.0.1",SERVER_PORT); Socket s = new Socket(); s.connect(me); OutputStream os = s.getOutputStream(); os.write(StringUtils.toAsciiBytes("CONNECT \n\n")); os.flush(); os.close(); Thread.sleep(50); CapabilitiesVM cvm = BlockingConnectionUtils.getFirstInstanceOfMessageType(testUP[0], CapabilitiesVM.class); assertTrue(cvm.canAcceptIncomingTCP()); assertFalse(cvm.canDoFWT()); } }