1
package games.strategy.net;
3
import games.strategy.engine.EngineVersion;
4
import games.strategy.engine.framework.startup.login.*;
5
import games.strategy.test.TestUtil;
6
import games.strategy.util.MD5Crypt;
8
import java.net.SocketAddress;
11
import junit.framework.TestCase;
13
public class MessengerLoginTest extends TestCase
15
private int SERVER_PORT = -1;
20
SERVER_PORT = TestUtil.getUniquePort();
25
public void testSimple() throws Exception
27
ILoginValidator validator = new ILoginValidator()
29
public String verifyConnection(Map<String, String> propertiesSentToClient, Map<String, String> propertiesReadFromClient, String clientName, String mac, SocketAddress remoteAddress)
34
public Map<String,String> getChallengeProperties(String userName, SocketAddress remoteAddress)
36
return new HashMap<String,String>();
40
IConnectionLogin login = new IConnectionLogin()
43
public void notifyFailedLogin(String message)
48
public Map<String, String> getProperties(Map<String,String> challengProperties)
50
return new HashMap<String,String>();
56
ServerMessenger server = new ServerMessenger("test", SERVER_PORT);
59
server.setLoginValidator(validator);
61
server.setAcceptNewConnections(true);
63
String mac = MacFinder.GetHashedMacAddress();
64
ClientMessenger client = new ClientMessenger("localhost", SERVER_PORT, "fee", mac, new DefaultObjectStreamFactory(), login);
78
public void testRefused() throws Exception
80
ILoginValidator validator = new ILoginValidator()
82
public String verifyConnection(Map<String, String> propertiesSentToClient, Map<String, String> propertiesReadFromClient, String clientName, String mac, SocketAddress remoteAddress)
87
public Map<String,String> getChallengeProperties(String userName, SocketAddress remoteAddress)
89
return new HashMap<String,String>();
93
IConnectionLogin login = new IConnectionLogin()
96
public void notifyFailedLogin(String message)
101
public Map<String, String> getProperties(Map<String,String> challengProperties)
103
return new HashMap<String,String>();
109
ServerMessenger server = new ServerMessenger("test", SERVER_PORT);
112
server.setLoginValidator(validator);
114
server.setAcceptNewConnections(true);
118
String mac = MacFinder.GetHashedMacAddress();
119
new ClientMessenger("localhost", SERVER_PORT, "fee", mac, new DefaultObjectStreamFactory(), login);
120
fail("we should not have logged in");
122
catch(CouldNotLogInException expected)
124
//we expect this exception
137
public void testGetMagic()
139
String salt = "falafel";
140
String password = "king";
141
String encrypted = MD5Crypt.crypt(password, salt, MD5Crypt.MAGIC);
142
assertEquals(salt,MD5Crypt.getSalt(MD5Crypt.MAGIC, encrypted));
147
public void testPassword() throws Exception
150
ClientLoginValidator validator = new ClientLoginValidator();
151
validator.setGamePassword("foo");
153
IConnectionLogin login = new IConnectionLogin()
156
public void notifyFailedLogin(String message)
161
public Map<String, String> getProperties(Map<String,String> challengProperties)
163
String salt = challengProperties.get(ClientLoginValidator.SALT_PROPERTY);
165
HashMap<String,String> rVal = new HashMap<String,String>();
166
rVal.put(ClientLogin.PASSWORD_PROPERTY, MD5Crypt.crypt("foo", salt));
167
rVal.put(ClientLogin.ENGINE_VERSION_PROPERTY, EngineVersion.VERSION.toString());
174
ServerMessenger server = new ServerMessenger("test", SERVER_PORT);
177
server.setLoginValidator(validator);
179
server.setAcceptNewConnections(true);
181
String mac = MacFinder.GetHashedMacAddress();
182
ClientMessenger client = new ClientMessenger("localhost", SERVER_PORT, "fee", mac, new DefaultObjectStreamFactory(), login);