mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-02 17:47:21 +08:00
Add dynamic type for javascript arguments passed over bridge with unkown type
Reviewed By: astreet Differential Revision: D4380882 fbshipit-source-id: f1b9fb9cf727d003dcc2264626e75fc300a47dee
This commit is contained in:
committed by
Facebook Github Bot
parent
3b5f04b002
commit
e3c8d80b3c
@@ -16,6 +16,7 @@ import java.util.Set;
|
||||
|
||||
import com.facebook.react.bridge.BaseJavaModule;
|
||||
import com.facebook.react.bridge.CatalystInstance;
|
||||
import com.facebook.react.bridge.Dynamic;
|
||||
import com.facebook.react.bridge.InvalidIteratorException;
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
import com.facebook.react.bridge.NoSuchKeyException;
|
||||
@@ -45,6 +46,7 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
|
||||
private interface TestJSToJavaParametersModule extends JavaScriptModule {
|
||||
void returnBasicTypes();
|
||||
void returnDynamicTypes();
|
||||
|
||||
void returnArrayWithBasicTypes();
|
||||
void returnNestedArray();
|
||||
@@ -113,6 +115,17 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
assertNull(args[3]);
|
||||
}
|
||||
|
||||
public void testDynamicType() {
|
||||
mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnDynamicTypes();
|
||||
waitForBridgeAndUIIdle();
|
||||
|
||||
List<Dynamic> dynamicCalls = mRecordingTestModule.getDynamicCalls();
|
||||
assertEquals(2, dynamicCalls.size());
|
||||
|
||||
assertEquals("foo", dynamicCalls.get(0).asString());
|
||||
assertEquals(3.14, dynamicCalls.get(1).asDouble());
|
||||
}
|
||||
|
||||
public void testArrayWithBasicTypes() {
|
||||
mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnArrayWithBasicTypes();
|
||||
waitForBridgeAndUIIdle();
|
||||
@@ -673,6 +686,7 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
private final List<Object[]> mBasicTypesCalls = new ArrayList<Object[]>();
|
||||
private final List<ReadableArray> mArrayCalls = new ArrayList<ReadableArray>();
|
||||
private final List<ReadableMap> mMapCalls = new ArrayList<ReadableMap>();
|
||||
private final List<Dynamic> mDynamicCalls = new ArrayList<Dynamic>();
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
@@ -694,6 +708,11 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
mMapCalls.add(map);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void receiveDynamic(Dynamic dynamic) {
|
||||
mDynamicCalls.add(dynamic);
|
||||
}
|
||||
|
||||
public List<Object[]> getBasicTypesCalls() {
|
||||
return mBasicTypesCalls;
|
||||
}
|
||||
@@ -705,5 +724,9 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
public List<ReadableMap> getMapCalls() {
|
||||
return mMapCalls;
|
||||
}
|
||||
|
||||
public List<Dynamic> getDynamicCalls() {
|
||||
return mDynamicCalls;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user