Files
engine.io-client-java/src/test/java/io/socket/engineio/client/TransportTest.java
2016-01-31 01:13:03 +09:00

196 lines
5.8 KiB
Java

package io.socket.engineio.client;
import io.socket.engineio.client.transports.PollingXHR;
import io.socket.engineio.client.transports.WebSocket;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.HashMap;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JUnit4.class)
public class TransportTest {
// NOTE: tests for the rememberUpgrade option are on ServerConnectionTest.
@Test
public void uri() {
Transport.Options opt = new Transport.Options();
opt.path = "/engine.io";
opt.hostname = "localhost";
opt.secure = false;
opt.query = new HashMap<String, String>() {{
put("sid", "test");
}};
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("http://localhost/engine.io?sid=test"));
}
@Test
public void uriWithDefaultPort() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "localhost";
opt.secure = false;
opt.query = new HashMap<String, String>() {{
put("sid", "test");
}};
opt.port = 80;
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("http://localhost/engine.io?sid=test"));
}
@Test
public void uriWithPort() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "localhost";
opt.secure = false;
opt.query = new HashMap<String, String>() {{
put("sid", "test");
}};
opt.port = 3000;
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("http://localhost:3000/engine.io?sid=test"));
}
@Test
public void httpsUriWithDefaultPort() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "localhost";
opt.secure = true;
opt.query = new HashMap<String, String>() {{
put("sid", "test");
}};
opt.port = 443;
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("https://localhost/engine.io?sid=test"));
}
@Test
public void timestampedUri() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "localhost";
opt.timestampParam = "t";
opt.timestampRequests = true;
Polling polling = new Polling(opt);
assertThat(polling.uri().matches("http://localhost/engine.io\\?(j=[0-9]+&)?t=[0-9A-Za-z-_.]+"), is(true));
}
@Test
public void ipv6Uri() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "::1";
opt.secure = false;
opt.port = 80;
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("http://[::1]/engine.io"));
}
@Test
public void ipv6UriWithPort() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "::1";
opt.secure = false;
opt.port = 8080;
opt.timestampRequests = false;
Polling polling = new Polling(opt);
assertThat(polling.uri(), containsString("http://[::1]:8080/engine.io"));
}
@Test
public void wsUri() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "test";
opt.secure = false;
opt.query = new HashMap<String, String>() {{
put("transport", "websocket");
}};
opt.timestampRequests = false;
WS ws = new WS(opt);
assertThat(ws.uri(), is("ws://test/engine.io?transport=websocket"));
}
@Test
public void wssUri() {
Transport.Options opt = new Transport.Options();
opt.path = "/engine.io";
opt.hostname = "test";
opt.secure = true;
opt.timestampRequests = false;
WS ws = new WS(opt);
assertThat(ws.uri(), is("wss://test/engine.io"));
}
@Test
public void wsTimestampedUri() {
Transport.Options opt = new Transport.Options();
opt.path = "/engine.io";
opt.hostname = "localhost";
opt.timestampParam = "woot";
opt.timestampRequests = true;
WS ws = new WS(opt);
assertThat(ws.uri().matches("ws://localhost/engine.io\\?woot=[0-9A-Za-z-_.]+"), is(true));
}
@Test
public void wsIPv6Uri() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "::1";
opt.secure = false;
opt.port = 80;
opt.timestampRequests = false;
WS ws = new WS(opt);
assertThat(ws.uri(), containsString("ws://[::1]/engine.io"));
}
@Test
public void wsIPv6UriWithPort() {
Transport.Options opt = new Transport.Options();
opt.path ="/engine.io";
opt.hostname = "::1";
opt.secure = false;
opt.port = 8080;
opt.timestampRequests = false;
WS ws = new WS(opt);
assertThat(ws.uri(), containsString("ws://[::1]:8080/engine.io"));
}
class Polling extends PollingXHR {
public Polling(Options opts) {
super(opts);
}
public String uri() {
return super.uri();
}
}
class WS extends WebSocket {
public WS(Transport.Options opts) {
super(opts);
}
public String uri() {
return super.uri();
}
}
}