mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-05 09:29:07 +08:00
BREAKING: Change the js1 - packager - RN App protocol to version 2
Reviewed By: cwdick Differential Revision: D4551991 fbshipit-source-id: 395c38ee5c71ddc24d8743e7ec90cc89de087503
This commit is contained in:
committed by
Facebook Github Bot
parent
33817b83d6
commit
a2addbd932
@@ -33,93 +33,114 @@ public class JSPackagerClientTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_ShouldTriggerCallback() throws IOException {
|
||||
public void test_onMessage_ShouldTriggerNotification() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"bridge\", \"action\": \"actionValue\"}"));
|
||||
verify(handler).onNotification(any());
|
||||
"{\"version\": 2, \"method\": \"methodValue\", \"params\": \"paramsValue\"}"));
|
||||
verify(handler).onNotification(eq("paramsValue"));
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_ShouldTriggerRequest() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 2, \"id\": \"idValue\", \"method\": \"methodValue\", \"params\": \"paramsValue\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler).onRequest(eq("paramsValue"), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WithoutParams_ShouldTriggerNotification() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 2, \"method\": \"methodValue\"}"));
|
||||
verify(handler).onNotification(eq(null));
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WithInvalidContentType_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.BINARY,
|
||||
"{\"version\": 1, \"target\": \"bridge\", \"action\": \"actionValue\"}"));
|
||||
"{\"version\": 2, \"method\": \"methodValue\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WithoutTarget_ShouldNotTriggerCallback() throws IOException {
|
||||
public void test_onMessage_WithoutMethod_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"action\": \"actionValue\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_With_Null_Target_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": null, \"action\": \"actionValue\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WithoutAction_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"bridge\"}"));
|
||||
"{\"version\": 2}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_With_Null_Action_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"bridge\", \"action\": null}"));
|
||||
"{\"version\": 2, \"method\": null}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WithInvalidMethod_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.BINARY,
|
||||
"{\"version\": 2, \"method\": \"methodValue2\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_onMessage_WrongVersion_ShouldNotTriggerCallback() throws IOException {
|
||||
JSPackagerClient.RequestHandler handler = mock(JSPackagerClient.RequestHandler.class);
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("actionValue", handler));
|
||||
final JSPackagerClient client = new JSPackagerClient("ws://not_needed", createRH("methodValue", handler));
|
||||
WebSocket webSocket = mock(WebSocket.class);
|
||||
|
||||
client.onMessage(
|
||||
ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 2, \"target\": \"bridge\", \"action\": \"actionValue\"}"));
|
||||
"{\"version\": 1, \"method\": \"methodValue\"}"));
|
||||
verify(handler, never()).onNotification(any());
|
||||
verify(handler, never()).onRequest(any(), any(JSPackagerClient.Responder.class));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user