mirror of
https://github.com/status-im/react-native.git
synced 2025-02-27 16:40:38 +00:00
Extract the JSPackagerWebSocketClient into a reusable packagerconnection module
Reviewed By: cwdick Differential Revision: D4488628 fbshipit-source-id: ad07b7bfe74c6916beceb0ebcc506a57319f4ae9
This commit is contained in:
parent
3329969b63
commit
6f2544a16b
@ -17,6 +17,7 @@ android_library(
|
||||
react_native_target('java/com/facebook/react/module/annotations:annotations'),
|
||||
react_native_target('java/com/facebook/react/modules/debug:debug'),
|
||||
react_native_target('java/com/facebook/react/modules/systeminfo:systeminfo'),
|
||||
react_native_target('java/com/facebook/react/packagerconnection:packagerconnection'),
|
||||
react_native_target('res:devsupport'),
|
||||
],
|
||||
visibility = [
|
||||
|
@ -27,6 +27,7 @@ import com.facebook.react.bridge.UiThreadUtil;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.common.network.OkHttpCallUtil;
|
||||
import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
|
||||
import com.facebook.react.packagerconnection.JSPackagerWebSocketClient;
|
||||
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
|
@ -53,6 +53,7 @@ import com.facebook.react.common.futures.SimpleSettableFuture;
|
||||
import com.facebook.react.devsupport.DevServerHelper.PackagerCommandListener;
|
||||
import com.facebook.react.devsupport.StackTraceHelper.StackFrame;
|
||||
import com.facebook.react.modules.debug.DeveloperSettings;
|
||||
import com.facebook.react.packagerconnection.JSPackagerWebSocketClient;
|
||||
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
@ -0,0 +1,17 @@
|
||||
include_defs('//ReactAndroid/DEFS')
|
||||
|
||||
android_library(
|
||||
name = 'packagerconnection',
|
||||
srcs = glob(['**/*.java']),
|
||||
deps = [
|
||||
react_native_dep('libraries/fbcore/src/main/java/com/facebook/common/logging:logging'),
|
||||
react_native_dep('third-party/java/infer-annotations:infer-annotations'),
|
||||
react_native_dep('third-party/java/jsr-305:jsr-305'),
|
||||
react_native_dep('third-party/java/okhttp:okhttp3'),
|
||||
react_native_dep('third-party/java/okhttp:okhttp3-ws'),
|
||||
react_native_dep('third-party/java/okio:okio'),
|
||||
],
|
||||
visibility = [
|
||||
'PUBLIC',
|
||||
],
|
||||
)
|
@ -6,7 +6,7 @@
|
||||
* file in the same directory.
|
||||
*/
|
||||
|
||||
package com.facebook.react.devsupport;
|
||||
package com.facebook.react.packagerconnection;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@ -161,7 +161,9 @@ public class JSPackagerWebSocketClient implements WebSocketListener {
|
||||
action = reader.nextString();
|
||||
}
|
||||
}
|
||||
if (version != 1) {
|
||||
reader.close();
|
||||
|
||||
if (version == null || version != 1) {
|
||||
return;
|
||||
}
|
||||
if (target == null || action == null) {
|
@ -0,0 +1,22 @@
|
||||
include_defs('//ReactAndroid/DEFS')
|
||||
|
||||
rn_robolectric_test(
|
||||
name = 'packagerconnection',
|
||||
# Please change the contact to the oncall of your team
|
||||
contacts = ['oncall+fbandroid_sheriff@xmail.facebook.com'],
|
||||
srcs = glob(['**/*.java']),
|
||||
deps = [
|
||||
react_native_dep('libraries/fbcore/src/test/java/com/facebook/powermock:powermock'),
|
||||
react_native_dep('third-party/java/fest:fest'),
|
||||
react_native_dep('third-party/java/jsr-305:jsr-305'),
|
||||
react_native_dep('third-party/java/junit:junit'),
|
||||
react_native_dep('third-party/java/mockito:mockito'),
|
||||
react_native_dep('third-party/java/okhttp:okhttp3'),
|
||||
react_native_dep('third-party/java/okhttp:okhttp3-ws'),
|
||||
react_native_dep('third-party/java/robolectric3/robolectric:robolectric'),
|
||||
react_native_target('java/com/facebook/react/packagerconnection:packagerconnection'),
|
||||
],
|
||||
visibility = [
|
||||
'PUBLIC'
|
||||
],
|
||||
)
|
@ -7,17 +7,13 @@
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
package com.facebook.react.devsupport;
|
||||
package com.facebook.react.packagerconnection;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.ResponseBody;
|
||||
import okhttp3.ws.WebSocket;
|
||||
|
||||
@ -32,12 +28,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
eq("targetValue"),
|
||||
eq("actionValue"));
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), eq("targetValue"), eq("actionValue"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -45,12 +39,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.BINARY,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.BINARY,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -58,12 +50,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 1, \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -71,12 +61,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": null, \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": null, \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -84,12 +72,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\"}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\"}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -97,12 +83,10 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": null}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 1, \"target\": \"targetValue\", \"action\": null}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -110,11 +94,9 @@ public class JSPackagerWebSocketClientTest {
|
||||
final JSPackagerWebSocketClient.JSPackagerCallback callback =
|
||||
mock(JSPackagerWebSocketClient.JSPackagerCallback.class);
|
||||
final JSPackagerWebSocketClient client = new JSPackagerWebSocketClient("ws://not_needed", callback);
|
||||
client.onMessage(ResponseBody.create(WebSocket.TEXT,
|
||||
"{\"version\": 2, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(
|
||||
any(JSPackagerWebSocketClient.WebSocketSender.class),
|
||||
anyString(),
|
||||
anyString());
|
||||
client.onMessage(ResponseBody.create(
|
||||
WebSocket.TEXT,
|
||||
"{\"version\": 2, \"target\": \"targetValue\", \"action\": \"actionValue\"}"));
|
||||
verify(callback, never()).onMessage(any(JSPackagerWebSocketClient.WebSocketSender.class), anyString(), anyString());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user