Skip to content

Commit

Permalink
Remove WebWorker support from NetworkingModule
Browse files Browse the repository at this point in the history
Reviewed By: AaaChiuuu

Differential Revision: D4929251

fbshipit-source-id: fa07bfea64e6f79fd7b8c19889a26caec03cd421
  • Loading branch information
javache authored and facebook-github-bot committed Apr 25, 2017
1 parent 3e08a28 commit ea93577
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 33 deletions.
Expand Up @@ -22,7 +22,6 @@
import android.util.Base64; import android.util.Base64;


import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ExecutorToken;
import com.facebook.react.bridge.GuardedAsyncTask; import com.facebook.react.bridge.GuardedAsyncTask;
import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactContextBaseJavaModule;
Expand Down Expand Up @@ -52,7 +51,7 @@
/** /**
* Implements the XMLHttpRequest JavaScript interface. * Implements the XMLHttpRequest JavaScript interface.
*/ */
@ReactModule(name = NetworkingModule.NAME, supportsWebWorkers = true) @ReactModule(name = NetworkingModule.NAME)
public final class NetworkingModule extends ReactContextBaseJavaModule { public final class NetworkingModule extends ReactContextBaseJavaModule {


protected static final String NAME = "Networking"; protected static final String NAME = "Networking";
Expand Down Expand Up @@ -160,7 +159,6 @@ public void onCatalystInstanceDestroy() {
* @param timeout value of 0 results in no timeout * @param timeout value of 0 results in no timeout
*/ */
public void sendRequest( public void sendRequest(
final ExecutorToken executorToken,
String method, String method,
String url, String url,
final int requestId, final int requestId,
Expand All @@ -176,7 +174,7 @@ public void sendRequest(
requestBuilder.tag(requestId); requestBuilder.tag(requestId);
} }


final RCTDeviceEventEmitter eventEmitter = getEventEmitter(executorToken); final RCTDeviceEventEmitter eventEmitter = getEventEmitter();
OkHttpClient.Builder clientBuilder = mClient.newBuilder(); OkHttpClient.Builder clientBuilder = mClient.newBuilder();


if (!withCredentials) { if (!withCredentials) {
Expand Down Expand Up @@ -303,7 +301,7 @@ public void onProgress(long bytesWritten, long contentLength, boolean done) {
} }
ReadableArray parts = data.getArray(REQUEST_BODY_KEY_FORMDATA); ReadableArray parts = data.getArray(REQUEST_BODY_KEY_FORMDATA);
MultipartBody.Builder multipartBuilder = MultipartBody.Builder multipartBuilder =
constructMultipartBody(executorToken, parts, contentType, requestId); constructMultipartBody(parts, contentType, requestId);
if (multipartBuilder == null) { if (multipartBuilder == null) {
return; return;
} }
Expand Down Expand Up @@ -448,7 +446,7 @@ private static WritableMap translateHeaders(Headers headers) {
} }


@ReactMethod @ReactMethod
public void abortRequest(ExecutorToken executorToken, final int requestId) { public void abortRequest(final int requestId) {
cancelRequest(requestId); cancelRequest(requestId);
removeRequest(requestId); removeRequest(requestId);
} }
Expand All @@ -465,23 +463,15 @@ protected void doInBackgroundGuarded(Void... params) {
} }


@ReactMethod @ReactMethod
public void clearCookies( public void clearCookies(com.facebook.react.bridge.Callback callback) {
ExecutorToken executorToken,
com.facebook.react.bridge.Callback callback) {
mCookieHandler.clearCookies(callback); mCookieHandler.clearCookies(callback);
} }


@Override
public boolean supportsWebWorkers() {
return true;
}

private @Nullable MultipartBody.Builder constructMultipartBody( private @Nullable MultipartBody.Builder constructMultipartBody(
ExecutorToken ExecutorToken,
ReadableArray body, ReadableArray body,
String contentType, String contentType,
int requestId) { int requestId) {
RCTDeviceEventEmitter eventEmitter = getEventEmitter(ExecutorToken); RCTDeviceEventEmitter eventEmitter = getEventEmitter();
MultipartBody.Builder multipartBuilder = new MultipartBody.Builder(); MultipartBody.Builder multipartBuilder = new MultipartBody.Builder();
multipartBuilder.setType(MediaType.parse(contentType)); multipartBuilder.setType(MediaType.parse(contentType));


Expand Down Expand Up @@ -574,8 +564,7 @@ public boolean supportsWebWorkers() {
return headersBuilder.build(); return headersBuilder.build();
} }


private RCTDeviceEventEmitter getEventEmitter(ExecutorToken ExecutorToken) { private RCTDeviceEventEmitter getEventEmitter() {
return getReactApplicationContext() return getReactApplicationContext().getJSModule(RCTDeviceEventEmitter.class);
.getJSModule(ExecutorToken, RCTDeviceEventEmitter.class);
} }
} }
Expand Up @@ -14,7 +14,6 @@
import java.util.List; import java.util.List;


import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ExecutorToken;
import com.facebook.react.bridge.JavaOnlyArray; import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap; import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactApplicationContext;
Expand Down Expand Up @@ -92,7 +91,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient); new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient);


networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"GET", "GET",
"http://somedomain/foo", "http://somedomain/foo",
/* requestId */ 0, /* requestId */ 0,
Expand All @@ -115,7 +113,7 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
public void testFailGetWithInvalidHeadersStruct() throws Exception { public void testFailGetWithInvalidHeadersStruct() throws Exception {
RCTDeviceEventEmitter emitter = mock(RCTDeviceEventEmitter.class); RCTDeviceEventEmitter emitter = mock(RCTDeviceEventEmitter.class);
ReactApplicationContext context = mock(ReactApplicationContext.class); ReactApplicationContext context = mock(ReactApplicationContext.class);
when(context.getJSModule(any(ExecutorToken.class), any(Class.class))).thenReturn(emitter); when(context.getJSModule(any(Class.class))).thenReturn(emitter);


OkHttpClient httpClient = mock(OkHttpClient.class); OkHttpClient httpClient = mock(OkHttpClient.class);
OkHttpClient.Builder clientBuilder = mock(OkHttpClient.Builder.class); OkHttpClient.Builder clientBuilder = mock(OkHttpClient.Builder.class);
Expand All @@ -128,7 +126,6 @@ public void testFailGetWithInvalidHeadersStruct() throws Exception {
mockEvents(); mockEvents();


networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"GET", "GET",
"http://somedoman/foo", "http://somedoman/foo",
/* requestId */ 0, /* requestId */ 0,
Expand All @@ -146,7 +143,7 @@ public void testFailGetWithInvalidHeadersStruct() throws Exception {
public void testFailPostWithoutContentType() throws Exception { public void testFailPostWithoutContentType() throws Exception {
RCTDeviceEventEmitter emitter = mock(RCTDeviceEventEmitter.class); RCTDeviceEventEmitter emitter = mock(RCTDeviceEventEmitter.class);
ReactApplicationContext context = mock(ReactApplicationContext.class); ReactApplicationContext context = mock(ReactApplicationContext.class);
when(context.getJSModule(any(ExecutorToken.class), any(Class.class))).thenReturn(emitter); when(context.getJSModule(any(Class.class))).thenReturn(emitter);


OkHttpClient httpClient = mock(OkHttpClient.class); OkHttpClient httpClient = mock(OkHttpClient.class);
OkHttpClient.Builder clientBuilder = mock(OkHttpClient.Builder.class); OkHttpClient.Builder clientBuilder = mock(OkHttpClient.Builder.class);
Expand All @@ -160,7 +157,6 @@ public void testFailPostWithoutContentType() throws Exception {
mockEvents(); mockEvents();


networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"POST", "POST",
"http://somedomain/bar", "http://somedomain/bar",
0, 0,
Expand Down Expand Up @@ -222,7 +218,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
body.putString("string", "This is request body"); body.putString("string", "This is request body");


networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"POST", "POST",
"http://somedomain/bar", "http://somedomain/bar",
0, 0,
Expand Down Expand Up @@ -266,7 +261,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
JavaOnlyArray.of("User-Agent", "React test agent/1.0")); JavaOnlyArray.of("User-Agent", "React test agent/1.0"));


networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"GET", "GET",
"http://someurl/baz", "http://someurl/baz",
0, 0,
Expand Down Expand Up @@ -321,7 +315,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
NetworkingModule networkingModule = NetworkingModule networkingModule =
new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient); new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient);
networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"POST", "POST",
"http://someurl/uploadFoo", "http://someurl/uploadFoo",
0, 0,
Expand Down Expand Up @@ -387,7 +380,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
NetworkingModule networkingModule = NetworkingModule networkingModule =
new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient); new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient);
networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"POST", "POST",
"http://someurl/uploadFoo", "http://someurl/uploadFoo",
0, 0,
Expand Down Expand Up @@ -491,7 +483,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
NetworkingModule networkingModule = NetworkingModule networkingModule =
new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient); new NetworkingModule(mock(ReactApplicationContext.class), "", httpClient);
networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"POST", "POST",
"http://someurl/uploadFoo", "http://someurl/uploadFoo",
0, 0,
Expand Down Expand Up @@ -556,7 +547,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {


for (int idx = 0; idx < requests; idx++) { for (int idx = 0; idx < requests; idx++) {
networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"GET", "GET",
"http://somedomain/foo", "http://somedomain/foo",
idx + 1, idx + 1,
Expand Down Expand Up @@ -607,7 +597,6 @@ public Object answer(InvocationOnMock invocation) throws Throwable {


for (int idx = 0; idx < requests; idx++) { for (int idx = 0; idx < requests; idx++) {
networkingModule.sendRequest( networkingModule.sendRequest(
mock(ExecutorToken.class),
"GET", "GET",
"http://somedomain/foo", "http://somedomain/foo",
idx + 1, idx + 1,
Expand All @@ -620,7 +609,7 @@ public Object answer(InvocationOnMock invocation) throws Throwable {
} }
verify(httpClient, times(3)).newCall(any(Request.class)); verify(httpClient, times(3)).newCall(any(Request.class));


networkingModule.abortRequest(mock(ExecutorToken.class), requests); networkingModule.abortRequest(requests);
PowerMockito.verifyStatic(times(1)); PowerMockito.verifyStatic(times(1));
ArgumentCaptor<OkHttpClient> clientArguments = ArgumentCaptor.forClass(OkHttpClient.class); ArgumentCaptor<OkHttpClient> clientArguments = ArgumentCaptor.forClass(OkHttpClient.class);
ArgumentCaptor<Integer> requestIdArguments = ArgumentCaptor.forClass(Integer.class); ArgumentCaptor<Integer> requestIdArguments = ArgumentCaptor.forClass(Integer.class);
Expand Down

0 comments on commit ea93577

Please sign in to comment.