From 7c1d18c375c639a394757fb55c6e42105f37d475 Mon Sep 17 00:00:00 2001 From: Franklyn Tackitt Date: Fri, 24 Jun 2016 08:23:42 -0700 Subject: [PATCH] Remove iOS platform check for running devtools Summary: Currently, DevTools only work under ios (although this is undocumented!), because the JavaScriptEngine initialization process skips setupDevTools() on android. DevTools work fine with Android, as tested on 0.26, 0.27, and 0.28 using Nuclide's inspector. For reference, [the relevant issue on react-devtools](https://github.com/facebook/react-devtools/issues/229). Closes https://github.com/facebook/react-native/pull/8095 Reviewed By: javache Differential Revision: D3443980 Pulled By: andreicoman11 fbshipit-source-id: 3d7b2e83cf4158a1228d2e21510509ab63411a5d --- .../InitializeJavaScriptAppEngine.js | 2 +- .../react/testing/FakeWebSocketModule.java | 60 +++++++++++++++++++ .../testing/ReactInstanceSpecForTest.java | 4 +- ...alystNativeJSToJavaParametersTestCase.java | 6 +- ...talystNativeJavaToJSArgumentsTestCase.java | 2 + .../react/tests/InitialPropsTestCase.java | 2 + .../facebook/react/tests/JSLocaleTest.java | 5 +- .../react/tests/ProgressBarTestCase.java | 2 + .../react/tests/ViewRenderingTestCase.java | 2 + 9 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 ReactAndroid/src/androidTest/java/com/facebook/react/testing/FakeWebSocketModule.java diff --git a/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js b/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js index ba5fa68fc9bdf4..c83c52047a4a99 100644 --- a/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js +++ b/Libraries/JavaScriptAppEngine/Initialization/InitializeJavaScriptAppEngine.js @@ -220,7 +220,7 @@ function setUpCollections(): void { function setUpDevTools(): void { if (__DEV__) { // not when debugging in chrome - if (!window.document && require('Platform').OS === 'ios') { + if (!window.document) { const setupDevtools = require('setupDevtools'); setupDevtools(); } diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/FakeWebSocketModule.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/FakeWebSocketModule.java new file mode 100644 index 00000000000000..76c9edb2345a93 --- /dev/null +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/FakeWebSocketModule.java @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +package com.facebook.react.testing; + +import javax.annotation.Nullable; + +import com.facebook.react.bridge.Arguments; +import com.facebook.react.bridge.BaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReadableArray; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.bridge.WritableMap; + +/** + * Dummy implementation of storage module, used for testing + */ +public final class FakeWebSocketModule extends BaseJavaModule { + + private static WritableMap errorMessage; + static { + errorMessage = Arguments.createMap(); + errorMessage.putString("message", "Fake Fake Web Socke tModule"); + } + + @Override + public String getName() { + return "WebSocketModule"; + } + + @Override + public boolean canOverrideExistingModule() { + return true; + } + + @ReactMethod + public void connect( + final String url, + @Nullable final ReadableArray protocols, + @Nullable final ReadableMap headers, + final int id) { + } + + @ReactMethod + public void close(int code, String reason, int id) { + } + + @ReactMethod + public void send(String message, int id) { + } + + @ReactMethod + public void sendBinary(String base64String, int id) { + } +} diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java index b9de7a1e7726fa..bf179010b18312 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java @@ -9,6 +9,7 @@ package com.facebook.react.testing; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import android.annotation.SuppressLint; @@ -26,7 +27,8 @@ @SuppressLint("JavatestsIncorrectFolder") public class ReactInstanceSpecForTest { - private final List mNativeModules = new ArrayList<>(); + private final List mNativeModules = + new ArrayList(Arrays.asList(new FakeWebSocketModule())); private final List> mJSModuleSpecs = new ArrayList<>(); private final List mViewManagers = new ArrayList<>(); private ReactPackage mReactPackage = null; diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJSToJavaParametersTestCase.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJSToJavaParametersTestCase.java index f6130be3aaec7f..06ff91a0cfa626 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJSToJavaParametersTestCase.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJSToJavaParametersTestCase.java @@ -30,6 +30,7 @@ import com.facebook.react.bridge.WritableMap; import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.modules.systeminfo.AndroidInfoModule; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactIntegrationTestCase; import com.facebook.react.testing.ReactTestHelper; import com.facebook.react.uimanager.UIImplementation; @@ -37,8 +38,6 @@ import com.facebook.react.uimanager.ViewManager; import com.facebook.react.views.view.ReactViewManager; -import org.junit.Ignore; - /** * Integration test to verify passing various types of parameters from JS to Java works */ @@ -74,7 +73,7 @@ private interface TestJSToJavaParametersModule extends JavaScriptModule { @Override protected void setUp() throws Exception { super.setUp(); - + List viewManagers = Arrays.asList( new ReactViewManager()); final UIManagerModule mUIManager = new UIManagerModule( @@ -94,6 +93,7 @@ public void run() { mCatalystInstance = ReactTestHelper.catalystInstanceBuilder(this) .addNativeModule(mRecordingTestModule) .addNativeModule(new AndroidInfoModule()) + .addNativeModule(new FakeWebSocketModule()) .addNativeModule(mUIManager) .addJSModule(TestJSToJavaParametersModule.class) .build(); diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJavaToJSArgumentsTestCase.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJavaToJSArgumentsTestCase.java index fd6b1d779b2d68..587f99121860ea 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJavaToJSArgumentsTestCase.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/CatalystNativeJavaToJSArgumentsTestCase.java @@ -20,6 +20,7 @@ import com.facebook.react.bridge.WritableNativeMap; import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.testing.AssertModule; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactIntegrationTestCase; import com.facebook.react.testing.ReactTestHelper; import com.facebook.react.uimanager.UIImplementation; @@ -75,6 +76,7 @@ public void run() { mInstance = ReactTestHelper.catalystInstanceBuilder(this) .addNativeModule(mAssertModule) + .addNativeModule(new FakeWebSocketModule()) .addJSModule(TestJavaToJSArgumentsModule.class) .addNativeModule(mUIManager) .build(); diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/InitialPropsTestCase.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/InitialPropsTestCase.java index 6f532e15ce411c..951c593533e453 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/InitialPropsTestCase.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/InitialPropsTestCase.java @@ -12,6 +12,7 @@ import android.test.ActivityInstrumentationTestCase2; import com.facebook.react.bridge.BaseJavaModule; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactInstanceSpecForTest; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; @@ -70,6 +71,7 @@ public void testInitialProps() throws Throwable { @Override public void run() { ReactInstanceSpecForTest catalystInstanceSpec = new ReactInstanceSpecForTest(); + catalystInstanceSpec.addNativeModule(new FakeWebSocketModule()); catalystInstanceSpec.addNativeModule(mRecordingModule); Bundle props = new Bundle(); props.putString("key1", "string"); diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/JSLocaleTest.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/JSLocaleTest.java index 370f353c322cf9..d20b72fb47c613 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/JSLocaleTest.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/JSLocaleTest.java @@ -11,6 +11,7 @@ import java.util.Arrays; import java.util.List; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactIntegrationTestCase; import com.facebook.react.testing.ReactTestHelper; import com.facebook.react.testing.StringRecordingModule; @@ -59,9 +60,9 @@ public void run() { mInstance = ReactTestHelper.catalystInstanceBuilder(this) .addNativeModule(mStringRecordingModule) .addNativeModule(mUIManager) + .addNativeModule(new FakeWebSocketModule()) .addJSModule(TestJSLocaleModule.class) .build(); - } public void testToUpper() { @@ -100,6 +101,4 @@ public void testToLower() { assertEquals("γαζίες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο", answers[3]); assertEquals("chinese: 幓 厏吪吙 鈊釿閍 碞碠粻 曮禷", answers[4]); } - - } diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ProgressBarTestCase.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ProgressBarTestCase.java index b3282629bd11ce..0886f20fa4b0f5 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ProgressBarTestCase.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ProgressBarTestCase.java @@ -30,6 +30,7 @@ import com.facebook.react.uimanager.ViewManager; import com.facebook.react.views.progressbar.ReactProgressBarViewManager; import com.facebook.react.views.view.ReactViewManager; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactIntegrationTestCase; import com.facebook.react.testing.ReactTestHelper; @@ -83,6 +84,7 @@ public void run() { mInstance = ReactTestHelper.catalystInstanceBuilder(this) .addNativeModule(mUIManager) .addNativeModule(new AndroidInfoModule()) + .addNativeModule(new FakeWebSocketModule()) .addJSModule(ProgressBarTestModule.class) .build(); diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ViewRenderingTestCase.java b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ViewRenderingTestCase.java index f4f817c2b30482..38fff46acd7dc7 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ViewRenderingTestCase.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/tests/ViewRenderingTestCase.java @@ -26,6 +26,7 @@ import com.facebook.react.uimanager.ViewManager; import com.facebook.react.views.view.ReactViewGroup; import com.facebook.react.views.view.ReactViewManager; +import com.facebook.react.testing.FakeWebSocketModule; import com.facebook.react.testing.ReactIntegrationTestCase; import com.facebook.react.testing.ReactTestHelper; @@ -64,6 +65,7 @@ public void run() { mCatalystInstance = ReactTestHelper.catalystInstanceBuilder(this) .addNativeModule(uiManager) .addNativeModule(new AndroidInfoModule()) + .addNativeModule(new FakeWebSocketModule()) .addJSModule(ViewRenderingTestModule.class) .build();