Move SimpleArray and SimpleMap from test to src.

Summary:
As a part of this change I'm also renaming SimpleArray to JavaOnlyArray and SimpleMap to JavaOnlyMap. The main reason for the change is to support use-cases such as driving animations form the native code. In the case of native "animated" I'd like to be able to use the same interface as JS is using for updating the View properties. As view setters can take ReadableMap and ReadableArray as an argument in some cases it is necessary to create and pass those types to the setter. Using WritableNativeArray and WritableNativeMap for this purpose seems to me like a misuse and IMO will be less performant (vs java-only map/array) as those implementations of ReadableMap and ReadableArray proxies all their methods through JNI.

I'm also adding some additional class-level comments for the moved classes to avoid confusion and hopefuly prevent people from using those classess accidentally while writing native modules or methods that calls to JS.
Closes https://github.com/facebook/react-native/pull/5816

Reviewed By: svcscm

Differential Revision: D2911339

Pulled By: foghina

fb-gh-sync-id: 5b9a98d64f48d8bba34c15e3eecba2151da3577a
shipit-source-id: 5b9a98d64f48d8bba34c15e3eecba2151da3577a
This commit is contained in:
Krzysztof Magiera
2016-02-09 08:16:26 -08:00
committed by facebook-github-bot-3
parent 47dac4ff50
commit 788e25894e
15 changed files with 263 additions and 250 deletions

View File

@@ -19,8 +19,8 @@ import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.uimanager.UIManagerModule;
import com.facebook.react.uimanager.DisplayMetricsHolder;
@@ -68,13 +68,13 @@ public class RootViewTest {
PowerMockito.when(Arguments.createArray()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleArray();
return new JavaOnlyArray();
}
});
PowerMockito.when(Arguments.createMap()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
@@ -120,17 +120,17 @@ public class RootViewTest {
downEventCaptor.getValue().dispatch(eventEmitterModuleMock);
ArgumentCaptor<SimpleArray> downActionTouchesArgCaptor =
ArgumentCaptor.forClass(SimpleArray.class);
ArgumentCaptor<JavaOnlyArray> downActionTouchesArgCaptor =
ArgumentCaptor.forClass(JavaOnlyArray.class);
verify(eventEmitterModuleMock).receiveTouches(
eq("topTouchStart"),
downActionTouchesArgCaptor.capture(),
any(SimpleArray.class));
any(JavaOnlyArray.class));
verifyNoMoreInteractions(eventEmitterModuleMock);
assertThat(downActionTouchesArgCaptor.getValue().size()).isEqualTo(1);
assertThat(downActionTouchesArgCaptor.getValue().getMap(0)).isEqualTo(
SimpleMap.of(
JavaOnlyMap.of(
"pageX",
0.,
"pageY",
@@ -150,8 +150,8 @@ public class RootViewTest {
reset(eventEmitterModuleMock, eventDispatcher);
ArgumentCaptor<Event> upEventCaptor = ArgumentCaptor.forClass(Event.class);
ArgumentCaptor<SimpleArray> upActionTouchesArgCaptor =
ArgumentCaptor.forClass(SimpleArray.class);
ArgumentCaptor<JavaOnlyArray> upActionTouchesArgCaptor =
ArgumentCaptor.forClass(JavaOnlyArray.class);
rootView.onTouchEvent(
MotionEvent.obtain(50, ts, MotionEvent.ACTION_UP, 0, 0, 0));
@@ -167,7 +167,7 @@ public class RootViewTest {
assertThat(upActionTouchesArgCaptor.getValue().size()).isEqualTo(1);
assertThat(upActionTouchesArgCaptor.getValue().getMap(0)).isEqualTo(
SimpleMap.of(
JavaOnlyMap.of(
"pageX",
0.,
"pageY",

View File

@@ -1,145 +0,0 @@
/**
* Copyright (c) 2015-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.bridge;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* A simple read/write array that can be used in tests in place of {@link WritableNativeArray}.
*/
public class SimpleArray implements ReadableArray, WritableArray {
private final List mBackingList;
public static SimpleArray from(List list) {
return new SimpleArray(list);
}
public static SimpleArray of(Object... values) {
return new SimpleArray(values);
}
private SimpleArray(Object... values) {
mBackingList = Arrays.asList(values);
}
private SimpleArray(List list) {
mBackingList = new ArrayList(list);
}
public SimpleArray() {
mBackingList = new ArrayList();
}
@Override
public int size() {
return mBackingList.size();
}
@Override
public boolean isNull(int index) {
return mBackingList.get(index) == null;
}
@Override
public double getDouble(int index) {
return (Double) mBackingList.get(index);
}
@Override
public int getInt(int index) {
return (Integer) mBackingList.get(index);
}
@Override
public String getString(int index) {
return (String) mBackingList.get(index);
}
@Override
public SimpleArray getArray(int index) {
return (SimpleArray) mBackingList.get(index);
}
@Override
public boolean getBoolean(int index) {
return (Boolean) mBackingList.get(index);
}
@Override
public SimpleMap getMap(int index) {
return (SimpleMap) mBackingList.get(index);
}
@Override
public ReadableType getType(int index) {
return null;
}
@Override
public void pushBoolean(boolean value) {
mBackingList.add(value);
}
@Override
public void pushDouble(double value) {
mBackingList.add(value);
}
@Override
public void pushInt(int value) {
mBackingList.add(value);
}
@Override
public void pushString(String value) {
mBackingList.add(value);
}
@Override
public void pushArray(WritableArray array) {
mBackingList.add(array);
}
@Override
public void pushMap(WritableMap map) {
mBackingList.add(map);
}
@Override
public void pushNull() {
mBackingList.add(null);
}
@Override
public String toString() {
return mBackingList.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SimpleArray that = (SimpleArray) o;
if (mBackingList != null ? !mBackingList.equals(that.mBackingList) : that.mBackingList != null)
return false;
return true;
}
@Override
public int hashCode() {
return mBackingList != null ? mBackingList.hashCode() : 0;
}
}

View File

@@ -1,168 +0,0 @@
/**
* Copyright (c) 2015-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.bridge;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* A simple read/write map that can be used in tests in place of {@link WritableNativeMap}.
*/
public class SimpleMap implements ReadableMap, WritableMap {
private final Map mBackingMap;
public static SimpleMap of(Object... keysAndValues) {
return new SimpleMap(keysAndValues);
}
/**
* @param keysAndValues keys and values, interleaved
*/
private SimpleMap(Object... keysAndValues) {
if (keysAndValues.length % 2 != 0) {
throw new IllegalArgumentException("You must provide the same number of keys and values");
}
mBackingMap = new HashMap();
for (int i = 0; i < keysAndValues.length; i += 2) {
mBackingMap.put(keysAndValues[i], keysAndValues[i + 1]);
}
}
public SimpleMap() {
mBackingMap = new HashMap();
}
@Override
public boolean hasKey(String name) {
return mBackingMap.containsKey(name);
}
@Override
public boolean isNull(String name) {
return mBackingMap.get(name) == null;
}
@Override
public boolean getBoolean(String name) {
return (Boolean) mBackingMap.get(name);
}
@Override
public double getDouble(String name) {
return (Double) mBackingMap.get(name);
}
@Override
public int getInt(String name) {
return (Integer) mBackingMap.get(name);
}
@Override
public String getString(String name) {
return (String) mBackingMap.get(name);
}
@Override
public SimpleMap getMap(String name) {
return (SimpleMap) mBackingMap.get(name);
}
@Override
public SimpleArray getArray(String name) {
return (SimpleArray) mBackingMap.get(name);
}
@Override
public ReadableType getType(String name) {
throw new UnsupportedOperationException("Method not implemented");
}
@Override
public ReadableMapKeySetIterator keySetIterator() {
return new ReadableMapKeySetIterator() {
Iterator<String> mIterator = mBackingMap.keySet().iterator();
@Override
public boolean hasNextKey() {
return mIterator.hasNext();
}
@Override
public String nextKey() {
return mIterator.next();
}
};
}
@Override
public void putBoolean(String key, boolean value) {
mBackingMap.put(key, value);
}
@Override
public void putDouble(String key, double value) {
mBackingMap.put(key, value);
}
@Override
public void putInt(String key, int value) {
mBackingMap.put(key, value);
}
@Override
public void putString(String key, String value) {
mBackingMap.put(key, value);
}
@Override
public void putNull(String key) {
mBackingMap.put(key, null);
}
@Override
public void putMap(String key, WritableMap value) {
mBackingMap.put(key, value);
}
@Override
public void merge(ReadableMap source) {
mBackingMap.putAll(((SimpleMap) source).mBackingMap);
}
@Override
public void putArray(String key, WritableArray value) {
mBackingMap.put(key, value);
}
@Override
public String toString() {
return mBackingMap.toString();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SimpleMap that = (SimpleMap) o;
if (mBackingMap != null ? !mBackingMap.equals(that.mBackingMap) : that.mBackingMap != null)
return false;
return true;
}
@Override
public int hashCode() {
return mBackingMap != null ? mBackingMap.hashCode() : 0;
}
}

View File

@@ -15,7 +15,7 @@ import android.app.Activity;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyMap;
import org.junit.After;
import org.junit.Before;
@@ -84,7 +84,7 @@ public class DialogModuleTest {
@Test
public void testAllOptions() {
final SimpleMap options = new SimpleMap();
final JavaOnlyMap options = new JavaOnlyMap();
options.putString("title", "Title");
options.putString("message", "Message");
options.putString("buttonPositive", "OK");
@@ -104,7 +104,7 @@ public class DialogModuleTest {
@Test
public void testCallbackPositive() {
final SimpleMap options = new SimpleMap();
final JavaOnlyMap options = new JavaOnlyMap();
options.putString("buttonPositive", "OK");
final SimpleCallback actionCallback = new SimpleCallback();
@@ -120,7 +120,7 @@ public class DialogModuleTest {
@Test
public void testCallbackNegative() {
final SimpleMap options = new SimpleMap();
final JavaOnlyMap options = new JavaOnlyMap();
options.putString("buttonNegative", "Cancel");
final SimpleCallback actionCallback = new SimpleCallback();
@@ -136,7 +136,7 @@ public class DialogModuleTest {
@Test
public void testCallbackNeutral() {
final SimpleMap options = new SimpleMap();
final JavaOnlyMap options = new JavaOnlyMap();
options.putString("buttonNeutral", "Later");
final SimpleCallback actionCallback = new SimpleCallback();
@@ -152,7 +152,7 @@ public class DialogModuleTest {
@Test
public void testCallbackDismiss() {
final SimpleMap options = new SimpleMap();
final JavaOnlyMap options = new JavaOnlyMap();
final SimpleCallback actionCallback = new SimpleCallback();
mDialogModule.showAlert(options, null, actionCallback);

View File

@@ -16,8 +16,8 @@ import java.util.List;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule.RCTDeviceEventEmitter;
@@ -91,7 +91,7 @@ public class NetworkingModuleTest {
"GET",
"http://somedomain/foo",
0,
SimpleArray.of(),
JavaOnlyArray.of(),
null,
true,
0);
@@ -113,7 +113,7 @@ public class NetworkingModuleTest {
OkHttpClient httpClient = mock(OkHttpClient.class);
NetworkingModule networkingModule = new NetworkingModule(context, "", httpClient);
List<SimpleArray> invalidHeaders = Arrays.asList(SimpleArray.of("foo"));
List<JavaOnlyArray> invalidHeaders = Arrays.asList(JavaOnlyArray.of("foo"));
mockEvents();
@@ -121,7 +121,7 @@ public class NetworkingModuleTest {
"GET",
"http://somedoman/foo",
0,
SimpleArray.from(invalidHeaders),
JavaOnlyArray.from(invalidHeaders),
null,
true,
0);
@@ -138,7 +138,7 @@ public class NetworkingModuleTest {
OkHttpClient httpClient = mock(OkHttpClient.class);
NetworkingModule networkingModule = new NetworkingModule(context, "", httpClient);
SimpleMap body = new SimpleMap();
JavaOnlyMap body = new JavaOnlyMap();
body.putString("string", "This is request body");
mockEvents();
@@ -147,7 +147,7 @@ public class NetworkingModuleTest {
"POST",
"http://somedomain/bar",
0,
SimpleArray.of(),
JavaOnlyArray.of(),
body,
true,
0);
@@ -170,7 +170,7 @@ public class NetworkingModuleTest {
new Answer<WritableArray>() {
@Override
public WritableArray answer(InvocationOnMock invocation) throws Throwable {
return new SimpleArray();
return new JavaOnlyArray();
}
});
@@ -178,7 +178,7 @@ public class NetworkingModuleTest {
new Answer<WritableMap>() {
@Override
public WritableMap answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
}
@@ -196,14 +196,14 @@ public class NetworkingModuleTest {
NetworkingModule networkingModule = new NetworkingModule(null, "", httpClient);
SimpleMap body = new SimpleMap();
JavaOnlyMap body = new JavaOnlyMap();
body.putString("string", "This is request body");
networkingModule.sendRequest(
"POST",
"http://somedomain/bar",
0,
SimpleArray.of(SimpleArray.of("Content-Type", "text/plain")),
JavaOnlyArray.of(JavaOnlyArray.of("Content-Type", "text/plain")),
body,
true,
0);
@@ -232,15 +232,15 @@ public class NetworkingModuleTest {
});
NetworkingModule networkingModule = new NetworkingModule(null, "", httpClient);
List<SimpleArray> headers = Arrays.asList(
SimpleArray.of("Accept", "text/plain"),
SimpleArray.of("User-Agent", "React test agent/1.0"));
List<JavaOnlyArray> headers = Arrays.asList(
JavaOnlyArray.of("Accept", "text/plain"),
JavaOnlyArray.of("User-Agent", "React test agent/1.0"));
networkingModule.sendRequest(
"GET",
"http://someurl/baz",
0,
SimpleArray.from(headers),
JavaOnlyArray.from(headers),
null,
true,
0);
@@ -260,15 +260,15 @@ public class NetworkingModuleTest {
when(RequestBodyUtil.create(any(MediaType.class), any(InputStream.class)))
.thenReturn(mock(RequestBody.class));
SimpleMap body = new SimpleMap();
SimpleArray formData = new SimpleArray();
SimpleMap bodyPart = new SimpleMap();
JavaOnlyMap body = new JavaOnlyMap();
JavaOnlyArray formData = new JavaOnlyArray();
JavaOnlyMap bodyPart = new JavaOnlyMap();
bodyPart.putString("string", "value");
bodyPart.putArray(
"headers",
SimpleArray.from(
JavaOnlyArray.from(
Arrays.asList(
SimpleArray.of("content-disposition", "name"))));
JavaOnlyArray.of("content-disposition", "name"))));
formData.pushMap(bodyPart);
body.putArray("formData", formData);
@@ -287,7 +287,7 @@ public class NetworkingModuleTest {
"POST",
"http://someurl/uploadFoo",
0,
new SimpleArray(),
new JavaOnlyArray(),
body,
true,
0);
@@ -313,20 +313,20 @@ public class NetworkingModuleTest {
when(RequestBodyUtil.create(any(MediaType.class), any(InputStream.class)))
.thenReturn(mock(RequestBody.class));
List<SimpleArray> headers = Arrays.asList(
SimpleArray.of("Accept", "text/plain"),
SimpleArray.of("User-Agent", "React test agent/1.0"),
SimpleArray.of("content-type", "multipart/form-data"));
List<JavaOnlyArray> headers = Arrays.asList(
JavaOnlyArray.of("Accept", "text/plain"),
JavaOnlyArray.of("User-Agent", "React test agent/1.0"),
JavaOnlyArray.of("content-type", "multipart/form-data"));
SimpleMap body = new SimpleMap();
SimpleArray formData = new SimpleArray();
SimpleMap bodyPart = new SimpleMap();
JavaOnlyMap body = new JavaOnlyMap();
JavaOnlyArray formData = new JavaOnlyArray();
JavaOnlyMap bodyPart = new JavaOnlyMap();
bodyPart.putString("string", "value");
bodyPart.putArray(
"headers",
SimpleArray.from(
JavaOnlyArray.from(
Arrays.asList(
SimpleArray.of("content-disposition", "name"))));
JavaOnlyArray.of("content-disposition", "name"))));
formData.pushMap(bodyPart);
body.putArray("formData", formData);
@@ -345,7 +345,7 @@ public class NetworkingModuleTest {
"POST",
"http://someurl/uploadFoo",
0,
SimpleArray.from(headers),
JavaOnlyArray.from(headers),
body,
true,
0);
@@ -399,30 +399,30 @@ public class NetworkingModuleTest {
}
});
List<SimpleArray> headers = Arrays.asList(
SimpleArray.of("content-type", "multipart/form-data"));
List<JavaOnlyArray> headers = Arrays.asList(
JavaOnlyArray.of("content-type", "multipart/form-data"));
SimpleMap body = new SimpleMap();
SimpleArray formData = new SimpleArray();
JavaOnlyMap body = new JavaOnlyMap();
JavaOnlyArray formData = new JavaOnlyArray();
body.putArray("formData", formData);
SimpleMap bodyPart = new SimpleMap();
JavaOnlyMap bodyPart = new JavaOnlyMap();
bodyPart.putString("string", "locale");
bodyPart.putArray(
"headers",
SimpleArray.from(
JavaOnlyArray.from(
Arrays.asList(
SimpleArray.of("content-disposition", "user"))));
JavaOnlyArray.of("content-disposition", "user"))));
formData.pushMap(bodyPart);
SimpleMap imageBodyPart = new SimpleMap();
JavaOnlyMap imageBodyPart = new JavaOnlyMap();
imageBodyPart.putString("uri", "imageUri");
imageBodyPart.putArray(
"headers",
SimpleArray.from(
JavaOnlyArray.from(
Arrays.asList(
SimpleArray.of("content-type", "image/jpg"),
SimpleArray.of("content-disposition", "filename=photo.jpg"))));
JavaOnlyArray.of("content-type", "image/jpg"),
JavaOnlyArray.of("content-disposition", "filename=photo.jpg"))));
formData.pushMap(imageBodyPart);
OkHttpClient httpClient = mock(OkHttpClient.class);
@@ -440,7 +440,7 @@ public class NetworkingModuleTest {
"POST",
"http://someurl/uploadFoo",
0,
SimpleArray.from(headers),
JavaOnlyArray.from(headers),
body,
true,
0);

View File

@@ -21,8 +21,8 @@ import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.modules.storage.AsyncStorageModule;
import com.facebook.react.modules.storage.ReactDatabaseSupplier;
@@ -58,7 +58,7 @@ import static org.fest.assertions.api.Assertions.assertThat;
public class AsyncStorageModuleTest {
private AsyncStorageModule mStorage;
private SimpleArray mEmptyArray;
private JavaOnlyArray mEmptyArray;
@Rule
public PowerMockRule rule = new PowerMockRule();
@@ -70,7 +70,7 @@ public class AsyncStorageModuleTest {
new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleArray();
return new JavaOnlyArray();
}
});
@@ -78,13 +78,13 @@ public class AsyncStorageModuleTest {
new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
// don't use Robolectric before initializing mocks
mStorage = new AsyncStorageModule(ReactTestHelper.createCatalystContextForTest());
mEmptyArray = new SimpleArray();
mEmptyArray = new JavaOnlyArray();
}
@After
@@ -100,7 +100,7 @@ public class AsyncStorageModuleTest {
final String fakeKey = "fakeKey";
final String value1 = "bar1";
final String value2 = "bar2";
SimpleArray keyValues = new SimpleArray();
JavaOnlyArray keyValues = new JavaOnlyArray();
keyValues.pushArray(getArray(key1, value1));
keyValues.pushArray(getArray(key2, value2));
@@ -108,7 +108,7 @@ public class AsyncStorageModuleTest {
mStorage.multiSet(keyValues, setCallback);
Mockito.verify(setCallback, Mockito.times(1)).invoke();
SimpleArray keys = new SimpleArray();
JavaOnlyArray keys = new JavaOnlyArray();
keys.pushString(key1);
keys.pushString(key2);
@@ -117,7 +117,7 @@ public class AsyncStorageModuleTest {
Mockito.verify(getCallback, Mockito.times(1)).invoke(null, keyValues);
keys.pushString(fakeKey);
SimpleArray row3 = new SimpleArray();
JavaOnlyArray row3 = new JavaOnlyArray();
row3.pushString(fakeKey);
row3.pushString(null);
keyValues.pushArray(row3);
@@ -134,12 +134,12 @@ public class AsyncStorageModuleTest {
final String value1 = "bar1";
final String value2 = "bar2";
SimpleArray keyValues = new SimpleArray();
JavaOnlyArray keyValues = new JavaOnlyArray();
keyValues.pushArray(getArray(key1, value1));
keyValues.pushArray(getArray(key2, value2));
mStorage.multiSet(keyValues, mock(Callback.class));
SimpleArray keys = new SimpleArray();
JavaOnlyArray keys = new JavaOnlyArray();
keys.pushString(key1);
keys.pushString(key2);
@@ -173,12 +173,12 @@ public class AsyncStorageModuleTest {
value.put("foo3", 1001);
value.put("foo4", createJSONObject("key1", "randomValueThatWillNeverBeUsed"));
mStorage.multiSet(SimpleArray.of(getArray(mergeKey, value.toString())), mock(Callback.class));
mStorage.multiSet(JavaOnlyArray.of(getArray(mergeKey, value.toString())), mock(Callback.class));
{
Callback callback = mock(Callback.class);
mStorage.multiGet(getArray(mergeKey), callback);
Mockito.verify(callback, Mockito.times(1))
.invoke(null, SimpleArray.of(getArray(mergeKey, value.toString())));
.invoke(null, JavaOnlyArray.of(getArray(mergeKey, value.toString())));
}
value.put("foo1", 1001);
@@ -193,29 +193,29 @@ public class AsyncStorageModuleTest {
newValue2.put("foo2", createJSONObject("key1", "val3"));
mStorage.multiMerge(
SimpleArray.of(
SimpleArray.of(mergeKey, value.toString()),
SimpleArray.of(mergeKey, newValue.toString()),
SimpleArray.of(mergeKey, newValue2.toString())),
JavaOnlyArray.of(
JavaOnlyArray.of(mergeKey, value.toString()),
JavaOnlyArray.of(mergeKey, newValue.toString()),
JavaOnlyArray.of(mergeKey, newValue2.toString())),
mock(Callback.class));
value.put("foo2", createJSONObject("key1", "val3", "key2", "val2"));
Callback callback = mock(Callback.class);
mStorage.multiGet(getArray(mergeKey), callback);
Mockito.verify(callback, Mockito.times(1))
.invoke(null, SimpleArray.of(getArray(mergeKey, value.toString())));
.invoke(null, JavaOnlyArray.of(getArray(mergeKey, value.toString())));
}
@Test
public void testGetAllKeys() {
final String[] keys = {"foo", "foo2"};
final String[] values = {"bar", "bar2"};
SimpleArray keyValues = new SimpleArray();
JavaOnlyArray keyValues = new JavaOnlyArray();
keyValues.pushArray(getArray(keys[0], values[0]));
keyValues.pushArray(getArray(keys[1], values[1]));
mStorage.multiSet(keyValues, mock(Callback.class));
SimpleArray storedKeys = new SimpleArray();
JavaOnlyArray storedKeys = new JavaOnlyArray();
storedKeys.pushString(keys[0]);
storedKeys.pushString(keys[1]);
@@ -237,7 +237,7 @@ public class AsyncStorageModuleTest {
@Test
public void testClear() {
SimpleArray keyValues = new SimpleArray();
JavaOnlyArray keyValues = new JavaOnlyArray();
keyValues.pushArray(getArray("foo", "foo2"));
keyValues.pushArray(getArray("bar", "bar2"));
mStorage.multiSet(keyValues, mock(Callback.class));
@@ -259,14 +259,14 @@ public class AsyncStorageModuleTest {
// and returns null for missing keys
final int magicalNumber = 343;
SimpleArray keyValues = new SimpleArray();
JavaOnlyArray keyValues = new JavaOnlyArray();
for (int i = 0; i < keyCount; i++) {
if (i % magicalNumber > 0) {
keyValues.pushArray(getArray("key" + i, "value" + i));
}
}
mStorage.multiSet(keyValues, mock(Callback.class));
SimpleArray keys = new SimpleArray();
JavaOnlyArray keys = new JavaOnlyArray();
for (int i = 0; i < keyCount; i++) {
keys.pushString("key" + i);
}
@@ -275,7 +275,7 @@ public class AsyncStorageModuleTest {
@Override
public void invoke(Object... args) {
assertThat(args.length).isEqualTo(2);
SimpleArray resultArray = (SimpleArray) args[1];
JavaOnlyArray resultArray = (JavaOnlyArray) args[1];
assertThat(resultArray.size()).isEqualTo(keyCount);
boolean keyReceived[] = new boolean[keyCount];
@@ -297,7 +297,7 @@ public class AsyncStorageModuleTest {
// Test removal in same test, since it's costly to set up the test again.
// Remove only odd keys
SimpleArray keyRemoves = new SimpleArray();
JavaOnlyArray keyRemoves = new JavaOnlyArray();
for (int i = 0; i < keyCount; i++) {
if (i % 2 > 0) {
keyRemoves.pushString("key" + i);
@@ -308,7 +308,7 @@ public class AsyncStorageModuleTest {
new Callback() {
@Override
public void invoke(Object... args) {
SimpleArray resultArray = (SimpleArray) args[1];
JavaOnlyArray resultArray = (JavaOnlyArray) args[1];
assertThat(resultArray.size()).isEqualTo(499);
for (int i = 0; i < resultArray.size(); i++) {
String key = resultArray.getString(i).substring(3);
@@ -334,8 +334,8 @@ public class AsyncStorageModuleTest {
return new JSONObject(map);
}
private SimpleArray getArray(String... values) {
SimpleArray array = new SimpleArray();
private JavaOnlyArray getArray(String... values) {
JavaOnlyArray array = new JavaOnlyArray();
for (String value : values) {
array.pushString(value);
}

View File

@@ -14,7 +14,7 @@ import android.view.Choreographer;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.common.SystemClock;
import com.facebook.react.modules.core.JSTimersExecution;
@@ -65,7 +65,7 @@ public class TimingModuleTest {
new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleArray();
return new JavaOnlyArray();
}
});
@@ -109,7 +109,7 @@ public class TimingModuleTest {
mTiming.onHostResume();
mTiming.createTimer(1, 0, 0, false);
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(1));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(1));
reset(mJSTimersMock);
stepChoreographerFrame();
verifyNoMoreInteractions(mJSTimersMock);
@@ -120,11 +120,11 @@ public class TimingModuleTest {
mTiming.createTimer(100, 0, 0, true);
mTiming.onHostResume();
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(100));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(100));
reset(mJSTimersMock);
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(100));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(100));
}
@Test
@@ -133,7 +133,7 @@ public class TimingModuleTest {
mTiming.createTimer(105, 0, 0, true);
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(105));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(105));
reset(mJSTimersMock);
mTiming.deleteTimer(105);
@@ -147,7 +147,7 @@ public class TimingModuleTest {
mTiming.createTimer(41, 0, 0, true);
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(41));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(41));
reset(mJSTimersMock);
mTiming.onHostPause();
@@ -157,7 +157,7 @@ public class TimingModuleTest {
reset(mJSTimersMock);
mTiming.onHostResume();
stepChoreographerFrame();
verify(mJSTimersMock).callTimers(SimpleArray.of(41));
verify(mJSTimersMock).callTimers(JavaOnlyArray.of(41));
}
private static class PostFrameCallbackHandler implements Answer<Void> {

View File

@@ -17,7 +17,7 @@ import com.facebook.csslayout.CSSFlexDirection;
import com.facebook.csslayout.CSSJustify;
import com.facebook.csslayout.CSSPositionType;
import com.facebook.csslayout.Spacing;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyMap;
import org.junit.After;
import org.junit.Before;
@@ -63,7 +63,7 @@ public class LayoutPropertyApplicatorTest {
}
public ReactStylesDiffMap buildStyles(Object... keysAndValues) {
return new ReactStylesDiffMap(SimpleMap.of(keysAndValues));
return new ReactStylesDiffMap(JavaOnlyMap.of(keysAndValues));
}
@Test

View File

@@ -14,8 +14,8 @@ import android.view.View;
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.facebook.react.uimanager.annotations.ReactPropGroup;
@@ -201,7 +201,7 @@ public class ReactPropAnnotationSetterTest {
}
public static ReactStylesDiffMap buildStyles(Object... keysAndValues) {
return new ReactStylesDiffMap(SimpleMap.of(keysAndValues));
return new ReactStylesDiffMap(JavaOnlyMap.of(keysAndValues));
}
private ViewManagerUnderTest mViewManager;
@@ -356,7 +356,7 @@ public class ReactPropAnnotationSetterTest {
@Test
public void testArraySetter() {
ReadableArray array = new SimpleArray();
ReadableArray array = new JavaOnlyArray();
mViewManager.updateProperties(null, buildStyles("arrayProp", array));
verify(mUpdatesReceiverMock).onArraySetterCalled(array);
verifyNoMoreInteractions(mUpdatesReceiverMock);
@@ -370,7 +370,7 @@ public class ReactPropAnnotationSetterTest {
@Test
public void testMapSetter() {
ReadableMap map = new SimpleMap();
ReadableMap map = new JavaOnlyMap();
mViewManager.updateProperties(null, buildStyles("mapProp", map));
verify(mUpdatesReceiverMock).onMapSetterCalled(map);
verifyNoMoreInteractions(mUpdatesReceiverMock);
@@ -458,7 +458,7 @@ public class ReactPropAnnotationSetterTest {
@Test(expected = JSApplicationIllegalArgumentException.class)
public void testFailToUpdateBoolPropWithMap() {
mViewManager.updateProperties(null, buildStyles("boolProp", new SimpleMap()));
mViewManager.updateProperties(null, buildStyles("boolProp", new JavaOnlyMap()));
}
@Test(expected = JSApplicationIllegalArgumentException.class)
@@ -483,7 +483,7 @@ public class ReactPropAnnotationSetterTest {
@Test(expected = JSApplicationIllegalArgumentException.class)
public void testFailToUpdateMapPropWithArray() {
mViewManager.updateProperties(null, buildStyles("mapProp", new SimpleArray()));
mViewManager.updateProperties(null, buildStyles("mapProp", new JavaOnlyArray()));
}
@Test(expected = JSApplicationIllegalArgumentException.class)

View File

@@ -17,7 +17,7 @@ import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.touch.JSResponderHandler;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.uimanager.annotations.ReactProp;
@@ -79,7 +79,7 @@ public class SimpleViewPropertyTest {
}
public ReactStylesDiffMap buildStyles(Object... keysAndValues) {
return new ReactStylesDiffMap(SimpleMap.of(keysAndValues));
return new ReactStylesDiffMap(JavaOnlyMap.of(keysAndValues));
}
@Test

View File

@@ -27,8 +27,8 @@ import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.views.text.ReactRawTextManager;
import com.facebook.react.views.text.ReactTextShadowNode;
import com.facebook.react.views.text.ReactTextViewManager;
@@ -81,13 +81,13 @@ public class UIManagerModuleTest {
PowerMockito.when(Arguments.createArray()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleArray();
return new JavaOnlyArray();
}
});
PowerMockito.when(Arguments.createMap()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
PowerMockito.when(ReactChoreographer.getInstance()).thenReturn(choreographerMock);
@@ -141,7 +141,7 @@ public class UIManagerModuleTest {
uiManager.updateView(
rawTextTag,
ReactRawTextManager.REACT_CLASS,
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "New text"));
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "New text"));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -163,27 +163,27 @@ public class UIManagerModuleTest {
viewTag,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
subViewTag,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.manageChildren(
viewTag,
null,
null,
SimpleArray.of(subViewTag),
SimpleArray.of(0),
JavaOnlyArray.of(subViewTag),
JavaOnlyArray.of(0),
null);
uiManager.manageChildren(
rootTag,
null,
null,
SimpleArray.of(viewTag),
SimpleArray.of(0),
JavaOnlyArray.of(viewTag),
JavaOnlyArray.of(0),
null);
uiManager.onBatchComplete();
@@ -211,8 +211,8 @@ public class UIManagerModuleTest {
uiManager.manageChildren(
hierarchy.rootView,
SimpleArray.of(1, 0, 2),
SimpleArray.of(0, 2, 1),
JavaOnlyArray.of(1, 0, 2),
JavaOnlyArray.of(0, 2, 1),
null,
null,
null);
@@ -242,7 +242,7 @@ public class UIManagerModuleTest {
null,
null,
null,
SimpleArray.of(0, 3));
JavaOnlyArray.of(0, 3));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -264,11 +264,11 @@ public class UIManagerModuleTest {
uiManager.manageChildren(
hierarchy.rootView,
SimpleArray.of(3),
SimpleArray.of(1),
JavaOnlyArray.of(3),
JavaOnlyArray.of(1),
null,
null,
SimpleArray.of(1));
JavaOnlyArray.of(1));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -287,11 +287,11 @@ public class UIManagerModuleTest {
uiManager.manageChildren(
hierarchy.rootView,
SimpleArray.of(3),
SimpleArray.of(1),
JavaOnlyArray.of(3),
JavaOnlyArray.of(1),
null,
null,
SimpleArray.of(3));
JavaOnlyArray.of(3));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -308,7 +308,7 @@ public class UIManagerModuleTest {
null,
null,
null,
SimpleArray.of(3, 3));
JavaOnlyArray.of(3, 3));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -324,7 +324,7 @@ public class UIManagerModuleTest {
textViewTag,
ReactTextViewManager.REACT_CLASS,
hierarchy.rootView,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
View expectedViewAt0 = hierarchy.nativeRootView.getChildAt(0);
View expectedViewAt1 = hierarchy.nativeRootView.getChildAt(3);
@@ -333,10 +333,10 @@ public class UIManagerModuleTest {
uiManager.manageChildren(
hierarchy.rootView,
SimpleArray.of(1, 2, 3),
SimpleArray.of(3, 4, 1),
SimpleArray.of(textViewTag),
SimpleArray.of(2),
JavaOnlyArray.of(1, 2, 3),
JavaOnlyArray.of(3, 4, 1),
JavaOnlyArray.of(textViewTag),
JavaOnlyArray.of(2),
null);
uiManager.onBatchComplete();
@@ -361,8 +361,8 @@ public class UIManagerModuleTest {
uiManager.manageChildren(
hierarchy.rootView,
SimpleArray.of(1, 2),
SimpleArray.of(2, 1),
JavaOnlyArray.of(1, 2),
JavaOnlyArray.of(2, 1),
null,
null,
null);
@@ -394,7 +394,7 @@ public class UIManagerModuleTest {
null,
null,
null,
SimpleArray.of(1));
JavaOnlyArray.of(1));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -417,15 +417,15 @@ public class UIManagerModuleTest {
newViewTag,
ReactViewManager.REACT_CLASS,
hierarchy.rootView,
SimpleMap
JavaOnlyMap
.of("left", 10.0, "top", 20.0, "width", 30.0, "height", 40.0, "collapsable", false));
uiManager.manageChildren(
hierarchy.rootView,
null,
null,
SimpleArray.of(newViewTag),
SimpleArray.of(4),
JavaOnlyArray.of(newViewTag),
JavaOnlyArray.of(4),
null);
uiManager.onBatchComplete();
@@ -453,20 +453,20 @@ public class UIManagerModuleTest {
newViewTag,
ReactViewManager.REACT_CLASS,
hierarchy.rootView,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.manageChildren(
hierarchy.rootView,
null,
null,
SimpleArray.of(newViewTag),
SimpleArray.of(4),
JavaOnlyArray.of(newViewTag),
JavaOnlyArray.of(4),
null);
uiManager.updateView(
newViewTag,
ReactViewManager.REACT_CLASS,
SimpleMap.of("backgroundColor", Color.RED));
JavaOnlyMap.of("backgroundColor", Color.RED));
uiManager.manageChildren(
hierarchy.rootView,
@@ -474,7 +474,7 @@ public class UIManagerModuleTest {
null,
null,
null,
SimpleArray.of(4));
JavaOnlyArray.of(4));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -521,7 +521,7 @@ public class UIManagerModuleTest {
uiManager.updateView(
hierarchy.view0,
ReactViewManager.REACT_CLASS,
SimpleMap.of("left", 10.0, "top", 20.0, "width", 30.0, "height", 40.0));
JavaOnlyMap.of("left", 10.0, "top", 20.0, "width", 30.0, "height", 40.0));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
assertThat(view0.getLeft()).isGreaterThan(2);
@@ -532,7 +532,7 @@ public class UIManagerModuleTest {
uiManager.updateView(
hierarchy.view0,
ReactViewManager.REACT_CLASS,
SimpleMap.of("backgroundColor", Color.RED));
JavaOnlyMap.of("backgroundColor", Color.RED));
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
assertThat(view0.getLeft()).isEqualTo(1);
@@ -563,7 +563,7 @@ public class UIManagerModuleTest {
hierarchy.rootView,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManagerModule.registerAnimation(mockAnimation);
uiManagerModule.addAnimation(hierarchy.rootView, 1000, callbackMock);
@@ -591,7 +591,7 @@ public class UIManagerModuleTest {
newViewTag,
ReactViewManager.REACT_CLASS,
hierarchy.rootView,
SimpleMap.of("backgroundColor", Color.RED));
JavaOnlyMap.of("backgroundColor", Color.RED));
uiManager.replaceExistingNonRootView(hierarchy.view2, newViewTag);
@@ -622,12 +622,12 @@ public class UIManagerModuleTest {
containerTag,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
containerSiblingTag,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
addChild(uiManager, rootTag, containerTag, 0);
addChild(uiManager, rootTag, containerSiblingTag, 1);
@@ -635,12 +635,12 @@ public class UIManagerModuleTest {
containerTag + 2,
ReactTextViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
containerTag + 3,
ReactTextViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
addChild(uiManager, containerTag, containerTag + 2, 0);
addChild(uiManager, containerTag, containerTag + 3, 1);
@@ -674,27 +674,27 @@ public class UIManagerModuleTest {
textTag,
ReactTextViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
rawTextTag,
ReactRawTextManager.REACT_CLASS,
rootTag,
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, text, "collapsable", false));
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, text, "collapsable", false));
uiManager.manageChildren(
textTag,
null,
null,
SimpleArray.of(rawTextTag),
SimpleArray.of(0),
JavaOnlyArray.of(rawTextTag),
JavaOnlyArray.of(0),
null);
uiManager.manageChildren(
rootTag,
null,
null,
SimpleArray.of(textTag),
SimpleArray.of(0),
JavaOnlyArray.of(textTag),
JavaOnlyArray.of(0),
null);
uiManager.onBatchComplete();
@@ -713,32 +713,32 @@ public class UIManagerModuleTest {
hierarchy.view0,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
hierarchy.viewWithChildren1,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
hierarchy.view2,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
hierarchy.view3,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
hierarchy.childView0,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
uiManager.createView(
hierarchy.childView1,
ReactViewManager.REACT_CLASS,
rootTag,
SimpleMap.of("collapsable", false));
JavaOnlyMap.of("collapsable", false));
addChild(uiManager, rootTag, hierarchy.view0, 0);
addChild(uiManager, rootTag, hierarchy.viewWithChildren1, 1);
@@ -759,8 +759,8 @@ public class UIManagerModuleTest {
parentTag,
null,
null,
SimpleArray.of(childTag),
SimpleArray.of(index),
JavaOnlyArray.of(childTag),
JavaOnlyArray.of(index),
null);
}

View File

@@ -17,7 +17,7 @@ import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.uimanager.ReactStylesDiffMap;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.uimanager.ThemedReactContext;
@@ -68,7 +68,7 @@ public class ReactImagePropertyTest {
}
public ReactStylesDiffMap buildStyles(Object... keysAndValues) {
return new ReactStylesDiffMap(SimpleMap.of(keysAndValues));
return new ReactStylesDiffMap(JavaOnlyMap.of(keysAndValues));
}
@Test(expected=JSApplicationIllegalArgumentException.class)

View File

@@ -21,17 +21,17 @@ import android.graphics.drawable.Drawable;
import android.os.Build;
import android.text.Spanned;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.text.style.AbsoluteSizeSpan;
import android.util.DisplayMetrics;
import android.view.Choreographer;
import android.widget.TextView;
import com.facebook.react.ReactRootView;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.uimanager.UIImplementation;
@@ -40,8 +40,8 @@ import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.uimanager.ViewProps;
import org.junit.Before;
import org.junit.Test;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -49,7 +49,6 @@ import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.rule.PowerMockRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -79,7 +78,7 @@ public class ReactTextTest {
PowerMockito.when(Arguments.createMap()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
PowerMockito.when(ReactChoreographer.getInstance()).thenReturn(choreographerMock);
@@ -103,8 +102,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_SIZE, 21.0),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_SIZE, 21.0),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
AbsoluteSizeSpan sizeSpan = getSingleSpan(
(TextView) rootView.getChildAt(0), AbsoluteSizeSpan.class);
@@ -117,8 +116,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_WEIGHT, "bold"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_WEIGHT, "bold"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView)rootView.getChildAt(0), CustomStyleSpan.class);
@@ -132,8 +131,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_WEIGHT, "500"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_WEIGHT, "500"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -147,8 +146,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_STYLE, "italic"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_STYLE, "italic"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -162,8 +161,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_WEIGHT, "bold", ViewProps.FONT_STYLE, "italic"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_WEIGHT, "bold", ViewProps.FONT_STYLE, "italic"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -177,8 +176,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_WEIGHT, "normal"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_WEIGHT, "normal"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -191,8 +190,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_WEIGHT, "200"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_WEIGHT, "200"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -205,8 +204,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_STYLE, "normal"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_STYLE, "normal"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -219,8 +218,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_FAMILY, "sans-serif"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_FAMILY, "sans-serif"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -235,8 +234,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_FAMILY, "sans-serif", ViewProps.FONT_WEIGHT, "bold"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_FAMILY, "sans-serif", ViewProps.FONT_WEIGHT, "bold"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -251,8 +250,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.FONT_FAMILY, "sans-serif", ViewProps.FONT_STYLE, "italic"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.FONT_FAMILY, "sans-serif", ViewProps.FONT_STYLE, "italic"),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -267,11 +266,11 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(
JavaOnlyMap.of(
ViewProps.FONT_FAMILY, "sans-serif",
ViewProps.FONT_WEIGHT, "500",
ViewProps.FONT_STYLE, "italic"),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
CustomStyleSpan customStyleSpan =
getSingleSpan((TextView) rootView.getChildAt(0), CustomStyleSpan.class);
@@ -286,8 +285,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.BACKGROUND_COLOR, Color.BLUE),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.BACKGROUND_COLOR, Color.BLUE),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
Drawable backgroundDrawable = ((TextView) rootView.getChildAt(0)).getBackground();
assertThat(((ColorDrawable) backgroundDrawable).getColor()).isEqualTo(Color.BLUE);
@@ -302,8 +301,8 @@ public class ReactTextTest {
ReactRootView rootView = createText(
uiManager,
SimpleMap.of(ViewProps.NUMBER_OF_LINES, 2),
SimpleMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
JavaOnlyMap.of(ViewProps.NUMBER_OF_LINES, 2),
JavaOnlyMap.of(ReactTextShadowNode.PROP_TEXT, "test text"));
TextView textView = (TextView) rootView.getChildAt(0);
assertThat(textView.getText().toString()).isEqualTo("test text");
@@ -323,8 +322,8 @@ public class ReactTextTest {
private ReactRootView createText(
UIManagerModule uiManager,
SimpleMap textProps,
SimpleMap rawTextProps) {
JavaOnlyMap textProps,
JavaOnlyMap rawTextProps) {
ReactRootView rootView = new ReactRootView(RuntimeEnvironment.application);
int rootTag = uiManager.addMeasuredRootView(rootView);
int textTag = rootTag + 1;
@@ -345,16 +344,16 @@ public class ReactTextTest {
textTag,
null,
null,
SimpleArray.of(rawTextTag),
SimpleArray.of(0),
JavaOnlyArray.of(rawTextTag),
JavaOnlyArray.of(0),
null);
uiManager.manageChildren(
rootTag,
null,
null,
SimpleArray.of(textTag),
SimpleArray.of(0),
JavaOnlyArray.of(textTag),
JavaOnlyArray.of(0),
null);
uiManager.onBatchComplete();

View File

@@ -20,7 +20,7 @@ import com.facebook.react.bridge.CatalystInstance;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.JSApplicationCausedNativeException;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.uimanager.ReactStylesDiffMap;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.views.text.DefaultStyleValuesUtil;
@@ -64,7 +64,7 @@ public class ReactTextInputPropertyTest {
}
public ReactStylesDiffMap buildStyles(Object... keysAndValues) {
return new ReactStylesDiffMap(SimpleMap.of(keysAndValues));
return new ReactStylesDiffMap(JavaOnlyMap.of(keysAndValues));
}
@Test

View File

@@ -19,10 +19,10 @@ import android.widget.EditText;
import com.facebook.react.ReactRootView;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.bridge.JavaOnlyArray;
import com.facebook.react.bridge.JavaOnlyMap;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.SimpleArray;
import com.facebook.react.bridge.SimpleMap;
import com.facebook.react.bridge.ReactTestHelper;
import com.facebook.react.uimanager.DisplayMetricsHolder;
import com.facebook.react.uimanager.ReactChoreographer;
import com.facebook.react.uimanager.UIImplementation;
@@ -31,8 +31,8 @@ import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.uimanager.ViewProps;
import org.junit.Before;
import org.junit.Test;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -40,7 +40,6 @@ import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.rule.PowerMockRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -70,7 +69,7 @@ public class TextInputTest {
PowerMockito.when(Arguments.createMap()).thenAnswer(new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
return new SimpleMap();
return new JavaOnlyMap();
}
});
PowerMockito.when(ReactChoreographer.getInstance()).thenReturn(choreographerMock);
@@ -101,15 +100,15 @@ public class TextInputTest {
textInputTag,
ReactTextInputManager.REACT_CLASS,
rootTag,
SimpleMap.of(
JavaOnlyMap.of(
ViewProps.FONT_SIZE, 13.37, ViewProps.HEIGHT, 20.0, "placeholder", hintStr));
uiManager.manageChildren(
rootTag,
null,
null,
SimpleArray.of(textInputTag),
SimpleArray.of(0),
JavaOnlyArray.of(textInputTag),
JavaOnlyArray.of(0),
null);
uiManager.onBatchComplete();
@@ -134,15 +133,15 @@ public class TextInputTest {
textInputTag,
ReactTextInputManager.REACT_CLASS,
rootTag,
SimpleMap.of(
JavaOnlyMap.of(
ViewProps.FONT_SIZE, 13.37, ViewProps.HEIGHT, 20.0, "placeholder", hintStr));
uiManager.manageChildren(
rootTag,
null,
null,
SimpleArray.of(textInputTag),
SimpleArray.of(0),
JavaOnlyArray.of(textInputTag),
JavaOnlyArray.of(0),
null);
uiManager.onBatchComplete();
executePendingChoreographerCallbacks();
@@ -156,7 +155,7 @@ public class TextInputTest {
uiManager.updateView(
textInputTag,
ReactTextInputManager.REACT_CLASS,
SimpleMap.of(
JavaOnlyMap.of(
ViewProps.FONT_SIZE, 26.74, ViewProps.HEIGHT, 40.0, "placeholder", hintStr2));
uiManager.onBatchComplete();