fix error when emitting ack without args
This commit is contained in:
@@ -159,7 +159,9 @@ public class Socket extends Emitter {
|
|||||||
public void run() {
|
public void run() {
|
||||||
List<Object> _args = new ArrayList<Object>() {{
|
List<Object> _args = new ArrayList<Object>() {{
|
||||||
add(event);
|
add(event);
|
||||||
addAll(Arrays.asList(args));
|
if (args != null) {
|
||||||
|
addAll(Arrays.asList(args));
|
||||||
|
}
|
||||||
}};
|
}};
|
||||||
Packet packet = new Packet(Parser.EVENT, toJsonArray(_args));
|
Packet packet = new Packet(Parser.EVENT, toJsonArray(_args));
|
||||||
|
|
||||||
|
|||||||
@@ -196,6 +196,30 @@ public class ServerConnectionTest {
|
|||||||
socket.disconnect();
|
socket.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(timeout = TIMEOUT)
|
||||||
|
public void ackWithoutArgs() throws URISyntaxException, InterruptedException {
|
||||||
|
final BlockingQueue<Object[]> events = new LinkedBlockingQueue<Object[]>();
|
||||||
|
|
||||||
|
IO.Options opts = new IO.Options();
|
||||||
|
opts.forceNew = true;
|
||||||
|
socket = IO.socket(uri(), opts);
|
||||||
|
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
|
||||||
|
@Override
|
||||||
|
public void call(Object... objects) {
|
||||||
|
socket.emit("ack", null, new Ack() {
|
||||||
|
@Override
|
||||||
|
public void call(Object... args) {
|
||||||
|
System.out.println("ack: " + args);
|
||||||
|
events.offer(args);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
socket.connect();
|
||||||
|
|
||||||
|
assertThat(events.take(), is(new Object[] {}));
|
||||||
|
socket.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
private String uri() {
|
private String uri() {
|
||||||
return "http://localhost:" + PORT + nsp();
|
return "http://localhost:" + PORT + nsp();
|
||||||
|
|||||||
Reference in New Issue
Block a user