react-native-navigation 7.24.3 → 7.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/android/app/build.gradle +12 -9
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +2 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutInsets.kt +44 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutOptions.kt +71 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/PrimitiveExt.kt +9 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +4 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +5 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +23 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +12 -3
- package/lib/dist/src/interfaces/Options.d.ts +10 -0
- package/lib/ios/RNNBasePresenter.m +17 -0
- package/lib/ios/RNNBottomTabsController.m +1 -0
- package/lib/ios/RNNComponentViewController.m +5 -0
- package/lib/ios/RNNLayoutOptions.h +2 -1
- package/lib/ios/RNNLayoutOptions.m +4 -0
- package/lib/ios/RNNStackPresenter.m +1 -0
- package/lib/src/interfaces/Options.ts +12 -0
- package/package.json +3 -1
- package/.buildkite/pipeline.yml +0 -59
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutOptions.java +0 -48
- package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
- package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
- package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
- package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
- package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -216
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
- package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.ReactInstanceManager;
|
|
4
|
-
import com.facebook.react.bridge.Promise;
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext;
|
|
6
|
-
import com.facebook.react.bridge.ReadableMap;
|
|
7
|
-
import com.reactnativenavigation.BaseTest;
|
|
8
|
-
import com.reactnativenavigation.NavigationActivity;
|
|
9
|
-
import com.reactnativenavigation.options.LayoutFactory;
|
|
10
|
-
import com.reactnativenavigation.options.LayoutNode;
|
|
11
|
-
import com.reactnativenavigation.options.parsers.JSONParser;
|
|
12
|
-
import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
|
|
13
|
-
import com.reactnativenavigation.viewcontrollers.navigator.Navigator;
|
|
14
|
-
|
|
15
|
-
import org.json.JSONException;
|
|
16
|
-
import org.json.JSONObject;
|
|
17
|
-
import org.junit.Test;
|
|
18
|
-
import org.robolectric.annotation.LooperMode;
|
|
19
|
-
import org.robolectric.shadows.ShadowLooper;
|
|
20
|
-
|
|
21
|
-
import static org.mockito.ArgumentMatchers.any;
|
|
22
|
-
import static org.mockito.ArgumentMatchers.eq;
|
|
23
|
-
import static org.mockito.Mockito.mock;
|
|
24
|
-
import static org.mockito.Mockito.spy;
|
|
25
|
-
import static org.mockito.Mockito.times;
|
|
26
|
-
import static org.mockito.Mockito.verify;
|
|
27
|
-
import static org.mockito.Mockito.when;
|
|
28
|
-
|
|
29
|
-
@LooperMode(LooperMode.Mode.PAUSED)
|
|
30
|
-
public class NavigationModuleTest extends BaseTest {
|
|
31
|
-
private NavigationModule uut;
|
|
32
|
-
private Navigator navigator;
|
|
33
|
-
private JSONParser jsonParser;
|
|
34
|
-
private NavigationActivity activity;
|
|
35
|
-
private ReactApplicationContext reactApplicationContext;
|
|
36
|
-
private LayoutFactory layoutFactory;
|
|
37
|
-
|
|
38
|
-
@Override
|
|
39
|
-
public void beforeEach() {
|
|
40
|
-
jsonParser = mock(JSONParser.class);
|
|
41
|
-
navigator = mock(Navigator.class);
|
|
42
|
-
activity = mockActivity();
|
|
43
|
-
reactApplicationContext = mock(ReactApplicationContext.class);
|
|
44
|
-
layoutFactory = mock(LayoutFactory.class);
|
|
45
|
-
|
|
46
|
-
uut = spy(new NavigationModule(
|
|
47
|
-
reactApplicationContext,
|
|
48
|
-
mock(ReactInstanceManager.class),
|
|
49
|
-
jsonParser,
|
|
50
|
-
layoutFactory
|
|
51
|
-
));
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@Test
|
|
55
|
-
public void setRoot_delegatesToNavigator() throws JSONException {
|
|
56
|
-
when(reactApplicationContext.getCurrentActivity()).thenReturn(activity);
|
|
57
|
-
ReadableMap root = mock(ReadableMap.class);
|
|
58
|
-
when(jsonParser.parse(root)).thenReturn(rootJson());
|
|
59
|
-
ViewController rootViewController = mock(ViewController.class);
|
|
60
|
-
when(layoutFactory.create(any(LayoutNode.class))).thenReturn(rootViewController);
|
|
61
|
-
|
|
62
|
-
uut.setRoot("1", root, mock(Promise.class));
|
|
63
|
-
ShadowLooper.idleMainLooper();
|
|
64
|
-
verify(navigator).setRoot(eq(rootViewController), any(), any());
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
@Test
|
|
68
|
-
public void postCommandsOnMainThread_doesNotCrashIfActivityIsNull() {
|
|
69
|
-
NavigationModule spy = spy(uut);
|
|
70
|
-
when(spy.activity()).thenReturn(mock(NavigationActivity.class));
|
|
71
|
-
Runnable runnable = mock(Runnable.class);
|
|
72
|
-
spy.handle(runnable);
|
|
73
|
-
ShadowLooper.idleMainLooper();
|
|
74
|
-
verify(runnable).run();
|
|
75
|
-
|
|
76
|
-
when(spy.activity()).thenReturn(null);
|
|
77
|
-
Runnable dontRun = mock(Runnable.class);
|
|
78
|
-
spy.handle(dontRun);
|
|
79
|
-
ShadowLooper.idleMainLooper();
|
|
80
|
-
verify(dontRun, times(0)).run();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
private NavigationActivity mockActivity() {
|
|
84
|
-
NavigationActivity activity = mock(NavigationActivity.class);
|
|
85
|
-
when(activity.getNavigator()).thenReturn(navigator);
|
|
86
|
-
return activity;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private JSONObject rootJson() throws JSONException {
|
|
90
|
-
JSONObject root = new JSONObject();
|
|
91
|
-
root.put("root", componentJson());
|
|
92
|
-
return root;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
private JSONObject componentJson() throws JSONException {
|
|
96
|
-
JSONObject component = new JSONObject();
|
|
97
|
-
component.put("id", "Component1");
|
|
98
|
-
component.put("type", "Component");
|
|
99
|
-
component.put("data", new JSONObject().put("name", "mockComponent"));
|
|
100
|
-
return component;
|
|
101
|
-
}
|
|
102
|
-
}
|
package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.react;
|
|
2
|
-
|
|
3
|
-
import com.reactnativenavigation.BaseTest;
|
|
4
|
-
|
|
5
|
-
import org.junit.Test;
|
|
6
|
-
import org.mockito.Mockito;
|
|
7
|
-
|
|
8
|
-
public class ReloadListenerTest extends BaseTest {
|
|
9
|
-
private ReloadHandler uut;
|
|
10
|
-
private Runnable handler;
|
|
11
|
-
|
|
12
|
-
@Override
|
|
13
|
-
public void beforeEach() {
|
|
14
|
-
handler = Mockito.mock(Runnable.class);
|
|
15
|
-
uut = new ReloadHandler();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@Test
|
|
19
|
-
public void onSuccess_viewsAreDestroyed() {
|
|
20
|
-
uut.setOnReloadListener(handler);
|
|
21
|
-
uut.onSuccess();
|
|
22
|
-
Mockito.verify(handler).run();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils
|
|
2
|
-
|
|
3
|
-
import com.reactnativenavigation.options.AnimationOptions
|
|
4
|
-
import com.reactnativenavigation.options.ValueAnimationOptions
|
|
5
|
-
import com.reactnativenavigation.options.animations.ViewAnimationOptions
|
|
6
|
-
import org.json.JSONObject
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
fun createEnterExitAnimation(duration: Int = 300): ViewAnimationOptions {
|
|
10
|
-
val alpha = JSONObject().apply {
|
|
11
|
-
put("alpha", JSONObject().apply {
|
|
12
|
-
put("from", 0)
|
|
13
|
-
put("to", 0)
|
|
14
|
-
put("duration", duration)
|
|
15
|
-
})
|
|
16
|
-
}
|
|
17
|
-
val animation = JSONObject().apply {
|
|
18
|
-
put("enter", alpha)
|
|
19
|
-
put("exit", alpha)
|
|
20
|
-
}
|
|
21
|
-
return ViewAnimationOptions(animation)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
fun createContentJson(vararg values: Pair<String, ValueAnimationOptions>): AnimationOptions {
|
|
25
|
-
val content = JSONObject()
|
|
26
|
-
values.forEach {
|
|
27
|
-
content.put(it.first, JSONObject().apply {
|
|
28
|
-
put("from", it.second.from)
|
|
29
|
-
put("to", it.second.to)
|
|
30
|
-
})
|
|
31
|
-
}
|
|
32
|
-
return AnimationOptions(content)
|
|
33
|
-
}
|
package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java
DELETED
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import android.app.Activity;
|
|
4
|
-
import android.content.res.Configuration;
|
|
5
|
-
import android.graphics.Color;
|
|
6
|
-
import android.graphics.PorterDuff;
|
|
7
|
-
import android.graphics.PorterDuffColorFilter;
|
|
8
|
-
import android.graphics.drawable.Drawable;
|
|
9
|
-
import android.text.SpannableString;
|
|
10
|
-
import android.view.Menu;
|
|
11
|
-
import android.view.MenuItem;
|
|
12
|
-
import android.widget.TextView;
|
|
13
|
-
|
|
14
|
-
import androidx.appcompat.widget.ActionMenuView;
|
|
15
|
-
|
|
16
|
-
import com.reactnativenavigation.BaseTest;
|
|
17
|
-
import com.reactnativenavigation.fakes.IconResolverFake;
|
|
18
|
-
import com.reactnativenavigation.mocks.ImageLoaderMock;
|
|
19
|
-
import com.reactnativenavigation.options.ButtonOptions;
|
|
20
|
-
import com.reactnativenavigation.options.IconBackgroundOptions;
|
|
21
|
-
import com.reactnativenavigation.options.params.Bool;
|
|
22
|
-
import com.reactnativenavigation.options.params.Colour;
|
|
23
|
-
import com.reactnativenavigation.options.params.Number;
|
|
24
|
-
import com.reactnativenavigation.options.params.ThemeColour;
|
|
25
|
-
import com.reactnativenavigation.options.params.Text;
|
|
26
|
-
import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonController;
|
|
27
|
-
import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonPresenter;
|
|
28
|
-
import com.reactnativenavigation.views.stack.topbar.titlebar.ButtonBar;
|
|
29
|
-
import com.reactnativenavigation.views.stack.topbar.titlebar.IconBackgroundDrawable;
|
|
30
|
-
import com.reactnativenavigation.views.stack.topbar.titlebar.TitleBarButtonCreator;
|
|
31
|
-
|
|
32
|
-
import org.junit.Test;
|
|
33
|
-
import org.robolectric.annotation.LooperMode;
|
|
34
|
-
import org.robolectric.shadows.ShadowLooper;
|
|
35
|
-
|
|
36
|
-
import static java.util.Objects.requireNonNull;
|
|
37
|
-
import static org.assertj.core.api.Java6Assertions.assertThat;
|
|
38
|
-
import static org.mockito.Mockito.mock;
|
|
39
|
-
import static org.mockito.Mockito.spy;
|
|
40
|
-
import static org.mockito.Mockito.verify;
|
|
41
|
-
|
|
42
|
-
@LooperMode(LooperMode.Mode.PAUSED)
|
|
43
|
-
public class ButtonPresenterTest extends BaseTest {
|
|
44
|
-
private static final String BTN_TEXT = "button1";
|
|
45
|
-
|
|
46
|
-
private ButtonBar titleBar;
|
|
47
|
-
private ButtonPresenter uut;
|
|
48
|
-
private ButtonController buttonController;
|
|
49
|
-
private ButtonOptions button;
|
|
50
|
-
private Activity activity;
|
|
51
|
-
|
|
52
|
-
@Override
|
|
53
|
-
public void beforeEach() {
|
|
54
|
-
super.beforeEach();
|
|
55
|
-
activity = newActivity();
|
|
56
|
-
titleBar = new ButtonBar(activity);
|
|
57
|
-
activity.setContentView(titleBar);
|
|
58
|
-
button = createButton();
|
|
59
|
-
ImageLoader imageLoaderMock;
|
|
60
|
-
|
|
61
|
-
imageLoaderMock = ImageLoaderMock.mock();
|
|
62
|
-
initUUt(imageLoaderMock);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private void initUUt(ImageLoader imageLoaderMock) {
|
|
66
|
-
IconResolverFake iconResolver = new IconResolverFake(activity, imageLoaderMock);
|
|
67
|
-
uut = new ButtonPresenter(activity, button, iconResolver);
|
|
68
|
-
buttonController = new ButtonController(
|
|
69
|
-
activity,
|
|
70
|
-
uut,
|
|
71
|
-
button,
|
|
72
|
-
mock(TitleBarButtonCreator.class),
|
|
73
|
-
mock(ButtonController.OnClickListener.class)
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@Test
|
|
78
|
-
public void applyOptions_buttonIsAddedToMenu() {
|
|
79
|
-
addButtonAndApplyOptions();
|
|
80
|
-
assertThat(findButtonView().getText().toString()).isEqualTo(BTN_TEXT);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
@Test
|
|
84
|
-
public void applyOptions_appliesColorOnButtonTextView() {
|
|
85
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
86
|
-
addButtonAndApplyOptions();
|
|
87
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(Color.RED);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@Test
|
|
91
|
-
public void applyOptions_appliesColorOnButtonTextViewOnDarkMode() {
|
|
92
|
-
mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_NO;
|
|
93
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.BLACK));
|
|
94
|
-
MenuItem menuItem = addButtonAndApplyOptions();
|
|
95
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(Color.RED);
|
|
96
|
-
|
|
97
|
-
mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_YES;
|
|
98
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
99
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(Color.BLACK);
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
@Test
|
|
104
|
-
public void apply_disabledColor() {
|
|
105
|
-
button.enabled = new Bool(false);
|
|
106
|
-
addButtonAndApplyOptions();
|
|
107
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(ButtonPresenter.DISABLED_COLOR);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@Test
|
|
111
|
-
public void applyColor_shouldChangeColor() {
|
|
112
|
-
MenuItem menuItem = addMenuButton();
|
|
113
|
-
|
|
114
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
115
|
-
ThemeColour color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
116
|
-
uut.applyColor(titleBar, menuItem, color);
|
|
117
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(Color.RED);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
@Test
|
|
121
|
-
public void applyOptions_shouldChangeIconColorTint() {
|
|
122
|
-
IconBackgroundDrawable mockD = mock(IconBackgroundDrawable.class);
|
|
123
|
-
initUUt(ImageLoaderMock.mock(mockD));
|
|
124
|
-
button.enabled = new Bool(true);
|
|
125
|
-
button.icon = new Text("icon");
|
|
126
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
127
|
-
MenuItem menuItem = spy(addMenuButton());
|
|
128
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
129
|
-
|
|
130
|
-
Drawable icon = menuItem.getIcon();
|
|
131
|
-
assertThat(icon).isNotNull();
|
|
132
|
-
verify(icon).setColorFilter(new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_IN));
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
@Test
|
|
136
|
-
public void applyOptions_shouldChangeIconDisabledColorTint() {
|
|
137
|
-
IconBackgroundDrawable mockD = mock(IconBackgroundDrawable.class);
|
|
138
|
-
initUUt(ImageLoaderMock.mock(mockD));
|
|
139
|
-
button.enabled = new Bool(false);
|
|
140
|
-
button.icon = new Text("icon");
|
|
141
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
142
|
-
button.disabledColor = new ThemeColour(new Colour(Color.YELLOW), new Colour(Color.YELLOW));
|
|
143
|
-
MenuItem menuItem = spy(addMenuButton());
|
|
144
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
145
|
-
|
|
146
|
-
Drawable icon = menuItem.getIcon();
|
|
147
|
-
assertThat(icon).isNotNull();
|
|
148
|
-
verify(icon).setColorFilter(new PorterDuffColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN));
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
@Test
|
|
152
|
-
public void applyOptions_shouldChangeIconColorBackground() {
|
|
153
|
-
IconBackgroundDrawable mockD = mock(IconBackgroundDrawable.class);
|
|
154
|
-
initUUt(ImageLoaderMock.mock(mockD));
|
|
155
|
-
button.enabled = new Bool(true);
|
|
156
|
-
button.icon = new Text("icon");
|
|
157
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
158
|
-
IconBackgroundOptions iconBackground = new IconBackgroundOptions();
|
|
159
|
-
iconBackground.color = new ThemeColour(new Colour(Color.GREEN),new Colour(Color.GREEN));
|
|
160
|
-
button.iconBackground = iconBackground;
|
|
161
|
-
MenuItem menuItem = spy(addMenuButton());
|
|
162
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
163
|
-
|
|
164
|
-
Drawable icon = menuItem.getIcon();
|
|
165
|
-
assertThat(icon).isNotNull();
|
|
166
|
-
assertThat(icon).isInstanceOf(IconBackgroundDrawable.class);
|
|
167
|
-
IconBackgroundDrawable modifed = (IconBackgroundDrawable) icon;
|
|
168
|
-
verify(modifed.getWrappedDrawable()).setColorFilter(new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.SRC_IN));
|
|
169
|
-
assertThat(modifed.getBackgroundColor()).isEqualTo(Color.GREEN);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
@Test
|
|
173
|
-
public void applyOptions_shouldChangeIconDisabledColorBackground() {
|
|
174
|
-
IconBackgroundDrawable mockD = mock(IconBackgroundDrawable.class);
|
|
175
|
-
initUUt(ImageLoaderMock.mock(mockD));
|
|
176
|
-
button.enabled = new Bool(false);
|
|
177
|
-
button.icon = new Text("icon");
|
|
178
|
-
button.color = new ThemeColour(new Colour(Color.RED), new Colour(Color.RED));
|
|
179
|
-
button.disabledColor = new ThemeColour(new Colour(Color.YELLOW), new Colour(Color.YELLOW));
|
|
180
|
-
IconBackgroundOptions iconBackground = new IconBackgroundOptions();
|
|
181
|
-
iconBackground.color = new ThemeColour( new Colour(Color.GREEN), new Colour(Color.GREEN));
|
|
182
|
-
iconBackground.disabledColor = new ThemeColour(new Colour(Color.CYAN),new Colour(Color.CYAN));
|
|
183
|
-
button.iconBackground = iconBackground;
|
|
184
|
-
MenuItem menuItem = spy(addMenuButton());
|
|
185
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
186
|
-
|
|
187
|
-
Drawable icon = menuItem.getIcon();
|
|
188
|
-
assertThat(icon).isNotNull();
|
|
189
|
-
assertThat(icon).isInstanceOf(IconBackgroundDrawable.class);
|
|
190
|
-
IconBackgroundDrawable modifed = (IconBackgroundDrawable) icon;
|
|
191
|
-
verify(modifed.getWrappedDrawable()).setColorFilter(new PorterDuffColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN));
|
|
192
|
-
assertThat(modifed.getBackgroundColor()).isEqualTo(Color.CYAN);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
@Test
|
|
196
|
-
public void applyColor_shouldChangeDisabledColor() {
|
|
197
|
-
button.enabled = new Bool(false);
|
|
198
|
-
MenuItem menuItem = addMenuButton();
|
|
199
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
200
|
-
ThemeColour disabledColor = new ThemeColour(new Colour(Color.BLUE), new Colour(Color.BLUE));
|
|
201
|
-
uut.applyDisabledColor(titleBar, menuItem, disabledColor);
|
|
202
|
-
assertThat(findButtonView().getCurrentTextColor()).isEqualTo(Color.BLUE);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
private MenuItem addButtonAndApplyOptions() {
|
|
206
|
-
MenuItem menuItem = addMenuButton();
|
|
207
|
-
uut.applyOptions(titleBar, menuItem, buttonController::getView);
|
|
208
|
-
return menuItem;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
private MenuItem addMenuButton() {
|
|
212
|
-
return titleBar.addButton(Menu.NONE,
|
|
213
|
-
1,
|
|
214
|
-
0,
|
|
215
|
-
SpannableString.valueOf(button.text.get("text")));
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
@Test
|
|
219
|
-
public void apply_allCaps() {
|
|
220
|
-
button.allCaps = new Bool(false);
|
|
221
|
-
addButtonAndApplyOptions();
|
|
222
|
-
assertThat(findButtonView().isAllCaps()).isEqualTo(false);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
private TextView findButtonView() {
|
|
226
|
-
ShadowLooper.idleMainLooper();
|
|
227
|
-
return (TextView) ViewUtils.findChildrenByClass(
|
|
228
|
-
requireNonNull(ViewUtils.findChildByClass(titleBar, ActionMenuView.class)),
|
|
229
|
-
TextView.class,
|
|
230
|
-
child -> true
|
|
231
|
-
).get(0);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
private ButtonOptions createButton() {
|
|
235
|
-
ButtonOptions b = new ButtonOptions();
|
|
236
|
-
b.id = "btn1";
|
|
237
|
-
b.text = new Text(BTN_TEXT);
|
|
238
|
-
b.showAsAction = new Number(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
|
239
|
-
return b;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import android.app.Activity;
|
|
4
|
-
import android.graphics.Color;
|
|
5
|
-
import android.graphics.Paint;
|
|
6
|
-
|
|
7
|
-
import com.reactnativenavigation.BaseTest;
|
|
8
|
-
import com.reactnativenavigation.mocks.TypefaceLoaderMock;
|
|
9
|
-
import com.reactnativenavigation.options.ButtonOptions;
|
|
10
|
-
import com.reactnativenavigation.options.params.Colour;
|
|
11
|
-
import com.reactnativenavigation.options.params.Fraction;
|
|
12
|
-
import com.reactnativenavigation.options.params.ThemeColour;
|
|
13
|
-
import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonSpan;
|
|
14
|
-
|
|
15
|
-
import org.jetbrains.annotations.NotNull;
|
|
16
|
-
import org.junit.Test;
|
|
17
|
-
import org.robolectric.annotation.Config;
|
|
18
|
-
|
|
19
|
-
import static org.assertj.core.api.Java6Assertions.assertThat;
|
|
20
|
-
|
|
21
|
-
@Config(qualifiers = "xhdpi")
|
|
22
|
-
public class ButtonSpanTest extends BaseTest {
|
|
23
|
-
private ButtonSpan uut;
|
|
24
|
-
private ButtonOptions button;
|
|
25
|
-
private Activity activity;
|
|
26
|
-
|
|
27
|
-
@Override
|
|
28
|
-
public void beforeEach() {
|
|
29
|
-
button = createButton();
|
|
30
|
-
activity = newActivity();
|
|
31
|
-
uut = new ButtonSpan(activity, button, new TypefaceLoaderMock());
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@Test
|
|
35
|
-
public void apply_colorIsNotHandled() {
|
|
36
|
-
Paint paint = new Paint();
|
|
37
|
-
uut.apply(paint);
|
|
38
|
-
|
|
39
|
-
assertThat(paint.getColor()).isNotEqualTo(button.color.get());
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@Test
|
|
43
|
-
public void apply_fontSizeIsAppliedInDp() {
|
|
44
|
-
button.fontSize = new Fraction(14);
|
|
45
|
-
Paint paint = new Paint();
|
|
46
|
-
uut.apply(paint);
|
|
47
|
-
|
|
48
|
-
assertThat(paint.getTextSize()).isEqualTo(UiUtils.dpToPx(activity, 14));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@NotNull
|
|
52
|
-
private ButtonOptions createButton() {
|
|
53
|
-
ButtonOptions button = new ButtonOptions();
|
|
54
|
-
button.color = new ThemeColour(new Colour(Color.RED));
|
|
55
|
-
return button;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import com.reactnativenavigation.*;
|
|
4
|
-
|
|
5
|
-
import org.junit.*;
|
|
6
|
-
|
|
7
|
-
import static org.assertj.core.api.Java6Assertions.*;
|
|
8
|
-
|
|
9
|
-
public class CompatUtilsTest extends BaseTest {
|
|
10
|
-
|
|
11
|
-
@Test
|
|
12
|
-
public void generateViewId() throws Exception {
|
|
13
|
-
assertThat(CompatUtils.generateViewId())
|
|
14
|
-
.isPositive()
|
|
15
|
-
.isNotEqualTo(CompatUtils.generateViewId());
|
|
16
|
-
}
|
|
17
|
-
}
|
package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.ReactInstanceManager;
|
|
4
|
-
import com.reactnativenavigation.BaseTest;
|
|
5
|
-
import com.reactnativenavigation.options.LayoutFactory;
|
|
6
|
-
import com.reactnativenavigation.options.LayoutNode;
|
|
7
|
-
import com.reactnativenavigation.react.events.EventEmitter;
|
|
8
|
-
import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
|
|
9
|
-
|
|
10
|
-
import org.json.JSONException;
|
|
11
|
-
import org.json.JSONObject;
|
|
12
|
-
import org.junit.Test;
|
|
13
|
-
import org.mockito.Mockito;
|
|
14
|
-
|
|
15
|
-
import java.util.HashMap;
|
|
16
|
-
|
|
17
|
-
import static org.assertj.core.api.Java6Assertions.assertThat;
|
|
18
|
-
import static org.assertj.core.api.Java6Assertions.fail;
|
|
19
|
-
import static org.mockito.Mockito.mock;
|
|
20
|
-
import static org.mockito.Mockito.when;
|
|
21
|
-
|
|
22
|
-
public class LayoutFactoryTest extends BaseTest {
|
|
23
|
-
private LayoutFactory uut;
|
|
24
|
-
private ReactInstanceManager mockReactInstanceManager;
|
|
25
|
-
|
|
26
|
-
@Override
|
|
27
|
-
public void beforeEach() {
|
|
28
|
-
super.beforeEach();
|
|
29
|
-
mockReactInstanceManager = mock(ReactInstanceManager.class);
|
|
30
|
-
uut = new LayoutFactory(mockReactInstanceManager);
|
|
31
|
-
uut.init(
|
|
32
|
-
newActivity(),
|
|
33
|
-
Mockito.mock(EventEmitter.class),
|
|
34
|
-
new ChildControllersRegistry(),
|
|
35
|
-
new HashMap<>()
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Test
|
|
40
|
-
public void sanity() throws JSONException {
|
|
41
|
-
assertThat(uut.create(component())).isNotNull();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@Test
|
|
45
|
-
public void shouldParseOptionsWhenReactContextIsNull() {
|
|
46
|
-
when(mockReactInstanceManager.getCurrentReactContext()).thenReturn(null);
|
|
47
|
-
try {
|
|
48
|
-
uut.create(component());
|
|
49
|
-
} catch (Exception e) {
|
|
50
|
-
fail("Create should not fail! when react instance has null context");
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@Test
|
|
55
|
-
public void defaultOptionsAreNotNull() {
|
|
56
|
-
assertThat(uut.getDefaultOptions()).isNotNull();
|
|
57
|
-
boolean exceptionThrown = false;
|
|
58
|
-
try {
|
|
59
|
-
//noinspection ConstantConditions
|
|
60
|
-
uut.setDefaultOptions(null);
|
|
61
|
-
} catch (AssertionError exception) {
|
|
62
|
-
exceptionThrown = true;
|
|
63
|
-
}
|
|
64
|
-
assertThat(exceptionThrown).isTrue();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private LayoutNode component() throws JSONException {
|
|
68
|
-
final JSONObject component = new JSONObject();
|
|
69
|
-
final JSONObject layout = new JSONObject();
|
|
70
|
-
final JSONObject backgroundColor = new JSONObject();
|
|
71
|
-
backgroundColor.put("dark",0);
|
|
72
|
-
backgroundColor.put("light",1);
|
|
73
|
-
layout.put("backgroundColor",backgroundColor );
|
|
74
|
-
component.put("name", "com.component");
|
|
75
|
-
component.put("options",new JSONObject().put("layout", layout));
|
|
76
|
-
return new LayoutNode("Component1", LayoutNode.Type.Component, component, null);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils
|
|
2
|
-
|
|
3
|
-
import android.app.Activity
|
|
4
|
-
import android.view.MotionEvent
|
|
5
|
-
import android.view.View
|
|
6
|
-
import android.widget.FrameLayout
|
|
7
|
-
import org.mockito.kotlin.mock
|
|
8
|
-
import com.reactnativenavigation.BaseTest
|
|
9
|
-
import org.assertj.core.api.Java6Assertions.assertThat
|
|
10
|
-
import org.junit.Test
|
|
11
|
-
|
|
12
|
-
class MotionEventTest : BaseTest() {
|
|
13
|
-
private lateinit var uut: MotionEvent
|
|
14
|
-
private lateinit var activity: Activity
|
|
15
|
-
private lateinit var parent: FrameLayout
|
|
16
|
-
private val x = 173f
|
|
17
|
-
private val y = 249f
|
|
18
|
-
|
|
19
|
-
override fun beforeEach() {
|
|
20
|
-
uut = MotionEvent.obtain(0L, 0, 0, x, y, 0)
|
|
21
|
-
activity = newActivity()
|
|
22
|
-
parent = FrameLayout(activity)
|
|
23
|
-
activity.setContentView(parent)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Test
|
|
27
|
-
fun coordinatesInsideView() {
|
|
28
|
-
val v: View = mock()
|
|
29
|
-
assertThat(uut.coordinatesInsideView(v)).isFalse()
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@Test
|
|
33
|
-
fun coordinatesInsideView_inside() {
|
|
34
|
-
val view = View(activity)
|
|
35
|
-
parent.addView(view, 200, 300)
|
|
36
|
-
idleMainLooper()
|
|
37
|
-
assertThat(uut.coordinatesInsideView(view)).isTrue()
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@Test
|
|
41
|
-
fun coordinatesInsideView_outside() {
|
|
42
|
-
val view = View(activity)
|
|
43
|
-
parent.addView(view, 200, 300)
|
|
44
|
-
view.top = (y + 1).toInt()
|
|
45
|
-
assertThat(uut.coordinatesInsideView(view)).isFalse()
|
|
46
|
-
}
|
|
47
|
-
}
|
package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Promise;
|
|
4
|
-
import com.reactnativenavigation.BaseTest;
|
|
5
|
-
import com.reactnativenavigation.react.NativeCommandListener;
|
|
6
|
-
import com.reactnativenavigation.react.events.EventEmitter;
|
|
7
|
-
|
|
8
|
-
import org.junit.Test;
|
|
9
|
-
import org.mockito.ArgumentCaptor;
|
|
10
|
-
import org.mockito.Mockito;
|
|
11
|
-
|
|
12
|
-
import static org.assertj.core.api.Java6Assertions.assertThat;
|
|
13
|
-
import static org.mockito.Mockito.times;
|
|
14
|
-
import static org.mockito.Mockito.verify;
|
|
15
|
-
import static org.mockito.Mockito.when;
|
|
16
|
-
|
|
17
|
-
public class NativeCommandListenerTest extends BaseTest {
|
|
18
|
-
private static final String COMMAND_NAME = "someCommandName";
|
|
19
|
-
private static final String COMMAND_ID = "someCommand";
|
|
20
|
-
private static final String CHILD_ID = "someChild";
|
|
21
|
-
private static final long NOW = 1535374334;
|
|
22
|
-
|
|
23
|
-
private EventEmitter eventEmitter;
|
|
24
|
-
private Promise promise;
|
|
25
|
-
|
|
26
|
-
private NativeCommandListener uut;
|
|
27
|
-
|
|
28
|
-
@Override
|
|
29
|
-
public void beforeEach() {
|
|
30
|
-
promise = Mockito.mock(Promise.class);
|
|
31
|
-
eventEmitter = Mockito.mock(EventEmitter.class);
|
|
32
|
-
uut = new NativeCommandListener(COMMAND_NAME, COMMAND_ID, promise, eventEmitter, mockNow());
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
@Test
|
|
36
|
-
public void onSuccess() {
|
|
37
|
-
uut.onSuccess(CHILD_ID);
|
|
38
|
-
verify(promise, times(1)).resolve(CHILD_ID);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
@Test
|
|
42
|
-
public void onSuccess_emitsNavigationEvent() {
|
|
43
|
-
uut.onSuccess(CHILD_ID);
|
|
44
|
-
verify(eventEmitter, times(1)).emitCommandCompleted(COMMAND_NAME, COMMAND_ID, NOW);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@Test
|
|
48
|
-
public void onError() {
|
|
49
|
-
uut.onError("something which is wrong");
|
|
50
|
-
ArgumentCaptor<Throwable> captor = ArgumentCaptor.forClass(Throwable.class);
|
|
51
|
-
verify(promise, times(1)).reject(captor.capture());
|
|
52
|
-
assertThat(captor.getValue().getMessage().equals("something which is wrong"));
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
private Now mockNow() {
|
|
56
|
-
Now now = Mockito.mock(Now.class);
|
|
57
|
-
when(now.now()).then(i -> NOW);
|
|
58
|
-
return now;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
package com.reactnativenavigation.utils;
|
|
2
|
-
|
|
3
|
-
import com.reactnativenavigation.options.Options;
|
|
4
|
-
import com.reactnativenavigation.options.params.Text;
|
|
5
|
-
|
|
6
|
-
import java.util.ArrayList;
|
|
7
|
-
|
|
8
|
-
public class OptionHelper {
|
|
9
|
-
public static Options createBottomTabOptions() {
|
|
10
|
-
Options options = new Options();
|
|
11
|
-
options.topBar.buttons.left = new ArrayList<>();
|
|
12
|
-
options.bottomTabOptions.text = new Text("Tab");
|
|
13
|
-
options.bottomTabOptions.icon = new Text("http://127.0.0.1/icon.png");
|
|
14
|
-
return options;
|
|
15
|
-
}
|
|
16
|
-
}
|