package org.limewire.lws.server; import java.util.HashMap; import java.util.Map; import junit.framework.Test; import junit.textui.TestRunner; /** * Tests for an OK from authentication. */ public class AuthenticationTest extends AbstractCommunicationSupport { public AuthenticationTest(String s) { super(s); } public static Test suite() { return buildTestSuite(AuthenticationTest.class); } public static void main(String[] args) { TestRunner.run(suite()); } public void testSendAuthentication() { Map<String,String> args = new HashMap<String,String>(); args.put(LWSDispatcherSupport.Parameters.PRIVATE, getPrivateKey()); args.put(LWSDispatcherSupport.Parameters.SHARED, getSharedKey()); args.put(LWSDispatcherSupport.Parameters.CALLBACK, "dummy"); getCode().sendLocalMsg(LWSDispatcherSupport.Commands.AUTHENTICATE, args, new FakeJavascriptCodeInTheWebpage.Handler() { public void handle(String res) { assertTrue("OK != " + res, LWSDispatcherSupport.Responses.OK.equalsIgnoreCase(LWSServerUtil.removeCallback(res))); assertTrue("should be authenticated", getLocalServer().getDispatcher().isAuthenticated()); } }); } public void testPing() { Map<String,String> args = new HashMap<String,String>(); args.put(LWSDispatcherSupport.Parameters.PRIVATE, getPrivateKey()); args.put(LWSDispatcherSupport.Parameters.SHARED, getSharedKey()); args.put(LWSDispatcherSupport.Parameters.CALLBACK, "dummy"); getCode().sendLocalMsg(LWSDispatcherSupport.Commands.AUTHENTICATE, args, new FakeJavascriptCodeInTheWebpage.Handler() { public void handle(String res) { assertTrue("OK != " + res, LWSDispatcherSupport.Responses.OK.equalsIgnoreCase(LWSServerUtil.removeCallback(res))); assertTrue("should be authenticated", getLocalServer().getDispatcher().isAuthenticated()); } }); getCode().sendPing(getPrivateKey(), getSharedKey(), new FakeJavascriptCodeInTheWebpage.Handler() { public void handle(String res) { // // This will be encoded strangely, but just check the length // String s = new String(LWSDispatcherSupport.PING_BYTES); assertTrue("'" + s + "' should contain PNG", s.indexOf("PNG") != -1); assertTrue("should be authenticated", getLocalServer().getDispatcher().isAuthenticated()); } }); } public void testPingWithoutAuthenticating() { getCode().sendPing("0", "0", new FakeJavascriptCodeInTheWebpage.Handler() { public void handle(String res) { assertFalse("should NOT be authenticated", getLocalServer().getDispatcher().isAuthenticated()); assertEquals(LWSDispatcherSupport.ErrorCodes.UNKNOWN_COMMAND, LWSServerUtil.unwrapError(LWSServerUtil.removeCallback(res))); } }); } @Override protected void afterSetup() {System.out.println(getLocalServer().getDispatcher()); assertFalse("should NOT be authenticated", getLocalServer().getDispatcher().isAuthenticated()); } }