react-native-navigation 7.24.1 → 7.24.3-snapshot.514

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.
Files changed (108) hide show
  1. package/lib/Mock/Components/ComponentScreen.tsx +1 -1
  2. package/lib/Mock/Components/NavigationButton.tsx +1 -1
  3. package/lib/Mock/Components/TopBar.tsx +6 -2
  4. package/lib/android/app/build.gradle +12 -9
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +1 -0
  6. package/lib/dist/Mock/Components/ComponentScreen.js +2 -2
  7. package/lib/dist/Mock/Components/NavigationButton.d.ts +1 -1
  8. package/lib/dist/Mock/Components/NavigationButton.js +3 -3
  9. package/lib/dist/Mock/Components/TopBar.d.ts +1 -2
  10. package/lib/dist/Mock/Components/TopBar.js +3 -3
  11. package/lib/ios/RNNComponentRootView.m +0 -14
  12. package/package.json +1 -1
  13. package/.buildkite/pipeline.yml +0 -59
  14. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
  15. package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
  16. package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
  17. package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
  18. package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
  19. package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
  20. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
  21. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
  22. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
  23. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
  24. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
  25. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
  26. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
  27. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
  28. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
  29. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
  30. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
  31. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
  32. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
  33. package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
  34. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
  35. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
  36. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
  37. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
  38. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
  39. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
  40. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
  41. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
  42. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
  43. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
  44. package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
  45. package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
  46. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
  47. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
  48. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
  49. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
  50. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
  51. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
  52. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
  53. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
  54. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
  55. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
  56. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
  57. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
  58. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
  59. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
  60. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
  61. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
  62. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
  63. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
  64. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
  65. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
  66. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -209
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
  84. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
  85. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
  86. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
  87. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
  88. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
  89. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
  90. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
  91. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
  92. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
  93. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
  94. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
  95. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
  96. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
  97. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
  98. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
  99. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
  100. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
  101. package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
  102. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
  103. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
  104. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
  105. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
  106. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
  107. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
  108. package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
@@ -1,209 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.component;
2
-
3
- import android.app.Activity;
4
-
5
- import com.reactnativenavigation.BaseTest;
6
- import com.reactnativenavigation.TestUtils;
7
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
8
- import com.reactnativenavigation.viewcontrollers.stack.StackController;
9
- import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter;
10
- import com.reactnativenavigation.mocks.TestComponentLayout;
11
- import com.reactnativenavigation.mocks.TestReactView;
12
- import com.reactnativenavigation.options.Options;
13
- import com.reactnativenavigation.options.params.Bool;
14
- import com.reactnativenavigation.utils.SystemUiUtils;
15
- import com.reactnativenavigation.views.component.ComponentLayout;
16
-
17
- import org.assertj.core.api.Java6Assertions;
18
- import org.junit.Test;
19
- import org.mockito.ArgumentMatchers;
20
- import org.mockito.Mockito;
21
-
22
- public class ComponentViewControllerTest extends BaseTest {
23
- private ComponentViewController uut;
24
- private ComponentLayout view;
25
- private ComponentPresenter presenter;
26
- private Options resolvedOptions = new Options();
27
- private StackController parent;
28
- private Activity activity;
29
-
30
- @Override
31
- public void beforeEach() {
32
- super.beforeEach();
33
- activity = newActivity();
34
- SystemUiUtils.saveStatusBarHeight(63);
35
- view = Mockito.spy(new TestComponentLayout(activity, new TestReactView(activity)));
36
- parent = TestUtils.newStackController(activity).build();
37
- Presenter presenter = new Presenter(activity, new Options());
38
- this.presenter = Mockito.spy(new ComponentPresenter(Options.EMPTY));
39
- uut = Mockito.spy(new ComponentViewController(activity, new ChildControllersRegistry(), "componentId1", "componentName", (activity1, componentId, componentName) -> view, new Options(), presenter, this.presenter) {
40
- @Override
41
- public Options resolveCurrentOptions(Options defaultOptions) {
42
- // Hacky way to return the same instance of resolvedOptions without copying it.
43
- return resolvedOptions
44
- .withDefaultOptions(uut.options)
45
- .withDefaultOptions(defaultOptions);
46
- }
47
- });
48
- uut.setParentController(parent);
49
- parent.ensureViewIsCreated();
50
- }
51
-
52
- @Test
53
- public void setDefaultOptions() {
54
- Options defaultOptions = new Options();
55
- uut.setDefaultOptions(defaultOptions);
56
- Mockito.verify(presenter).setDefaultOptions(defaultOptions);
57
- }
58
-
59
- @Test
60
- public void applyOptions() {
61
- Options options = new Options();
62
- uut.applyOptions(options);
63
- Mockito.verify(view).applyOptions(options);
64
- Mockito.verify(presenter).applyOptions(view, resolvedOptions);
65
- }
66
-
67
- @Test
68
- public void createsViewFromComponentViewCreator() {
69
- Java6Assertions.assertThat(uut.getView()).isSameAs(view);
70
- }
71
-
72
- @Test
73
- public void componentViewDestroyedOnDestroy() {
74
- uut.ensureViewIsCreated();
75
- Mockito.verify(view, Mockito.times(0)).destroy();
76
- uut.onViewWillAppear();
77
- uut.destroy();
78
- Mockito.verify(view, Mockito.times(1)).destroy();
79
- }
80
-
81
- @Test
82
- public void lifecycleMethodsSentToComponentView() {
83
- uut.ensureViewIsCreated();
84
- Mockito.verify(view, Mockito.times(0)).sendComponentStart();
85
- Mockito.verify(view, Mockito.times(0)).sendComponentStop();
86
- uut.onViewWillAppear();
87
- Mockito.verify(view, Mockito.times(0)).sendComponentStart();
88
- Mockito.verify(view, Mockito.times(0)).sendComponentStop();
89
- uut.onViewDidAppear();
90
- Mockito.verify(view, Mockito.times(1)).sendComponentStart();
91
- Mockito.verify(view, Mockito.times(0)).sendComponentStop();
92
- uut.onViewDisappear();
93
- Mockito.verify(view, Mockito.times(1)).sendComponentStart();
94
- Mockito.verify(view, Mockito.times(1)).sendComponentStop();
95
- }
96
-
97
- @Test
98
- public void shouldNotSendDidDisappearAboutDisappearedView() {
99
- uut.ensureViewIsCreated();
100
- uut.onViewDisappear();
101
- Mockito.verify(view, Mockito.times(0)).sendComponentStart();
102
- Mockito.verify(view, Mockito.times(0)).sendComponentStop();
103
-
104
- uut.onViewWillAppear();
105
- uut.onViewDidAppear();
106
- uut.onViewDisappear();
107
- Mockito.verify(view, Mockito.times(1)).sendComponentStart();
108
- Mockito.verify(view, Mockito.times(1)).sendComponentStop();
109
-
110
- uut.onViewDisappear();
111
- Mockito.verify(view, Mockito.times(1)).sendComponentStart();
112
- Mockito.verify(view, Mockito.times(1)).sendComponentStop();
113
- }
114
-
115
- @Test
116
- public void onViewDidAppear_componentStartIsEmittedOnlyIfComponentIsNotAppeared() {
117
- uut.ensureViewIsCreated();
118
-
119
- uut.onViewDidAppear();
120
- Mockito.verify(view).sendComponentStart();
121
-
122
- uut.onViewDidAppear();
123
- Mockito.verify(view).sendComponentStart();
124
-
125
- uut.onViewDisappear();
126
- uut.onViewDidAppear();
127
- Mockito.verify(view, Mockito.times(2)).sendComponentStart();
128
- }
129
-
130
- @Test
131
- public void isViewShownOnlyIfComponentViewIsReady() {
132
- Java6Assertions.assertThat(uut.isViewShown()).isFalse();
133
- uut.ensureViewIsCreated();
134
- Mockito.when(view.asView().isShown()).thenReturn(true);
135
- Java6Assertions.assertThat(uut.isViewShown()).isFalse();
136
- Mockito.when(view.isReady()).thenReturn(true);
137
- Java6Assertions.assertThat(uut.isViewShown()).isTrue();
138
- }
139
-
140
- @Test
141
- public void onNavigationButtonPressInvokedOnReactComponent() {
142
- uut.ensureViewIsCreated();
143
- uut.sendOnNavigationButtonPressed("btn1");
144
- Mockito.verify(view, Mockito.times(1)).sendOnNavigationButtonPressed("btn1");
145
- }
146
-
147
- @Test
148
- public void mergeOptions_emptyOptionsAreIgnored() {
149
- ComponentViewController spy = Mockito.spy(uut);
150
- spy.mergeOptions(Options.EMPTY);
151
- Mockito.verify(spy, Mockito.times(0)).performOnParentController(ArgumentMatchers.any());
152
- }
153
-
154
- @Test
155
- public void mergeOptions_delegatesToPresenterIfViewIsNotShown() {
156
- Options options = new Options();
157
- Java6Assertions.assertThat(uut.isViewShown()).isFalse();
158
- uut.mergeOptions(options);
159
- Mockito.verifyNoInteractions(presenter);
160
-
161
- Mockito.when(uut.isViewShown()).thenReturn(true);
162
- uut.mergeOptions(options);
163
- Mockito.verify(presenter).mergeOptions(uut.getView(), options);
164
- }
165
-
166
- @Test
167
- public void applyTopInset_delegatesToPresenter() {
168
- addToParent(activity, uut);
169
- uut.applyTopInset();
170
- Mockito.verify(presenter).applyTopInsets(uut.getView(), uut.getTopInset());
171
- }
172
-
173
- @Test
174
- public void getTopInset_returnsStatusBarHeight() {
175
- //noinspection ConstantConditions
176
- uut.setParentController(null);
177
- Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(SystemUiUtils.getStatusBarHeight(activity));
178
- }
179
-
180
- @Test
181
- public void getTopInset_resolveWithParent() {
182
- Java6Assertions
183
- .assertThat(uut.getTopInset()).isEqualTo(SystemUiUtils.getStatusBarHeight(activity) + parent.getTopInset(uut));
184
- }
185
-
186
- @Test
187
- public void getTopInset_drawBehind() {
188
- uut.options.statusBar.drawBehind = new Bool(true);
189
- uut.options.topBar.drawBehind = new Bool(true);
190
- Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(0);
191
- }
192
-
193
- @Test
194
- public void getTopInset_drawBehind_defaultOptions() {
195
- Options defaultOptions = new Options();
196
- defaultOptions.statusBar.drawBehind = new Bool(true);
197
- uut.setDefaultOptions(defaultOptions);
198
-
199
- uut.options.topBar.drawBehind = new Bool(true);
200
- Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(0);
201
- }
202
-
203
- @Test
204
- public void applyBottomInset_delegatesToPresenter() {
205
- addToParent(activity, uut);
206
- uut.applyBottomInset();
207
- Mockito.verify(presenter).applyBottomInset(uut.getView(), uut.getBottomInset());
208
- }
209
- }
@@ -1,97 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.externalcomponent;
2
-
3
- import android.app.Activity;
4
-
5
- import com.facebook.react.ReactInstanceManager;
6
- import com.reactnativenavigation.BaseTest;
7
- import com.reactnativenavigation.options.ExternalComponent;
8
- import com.reactnativenavigation.options.Options;
9
- import com.reactnativenavigation.options.params.Text;
10
- import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter;
11
- import com.reactnativenavigation.react.events.ComponentType;
12
- import com.reactnativenavigation.react.events.EventEmitter;
13
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
14
- import com.reactnativenavigation.views.ExternalComponentLayout;
15
-
16
- import org.json.JSONObject;
17
- import org.junit.Test;
18
- import org.mockito.Mockito;
19
-
20
- import androidx.coordinatorlayout.widget.CoordinatorLayout;
21
- import androidx.fragment.app.FragmentActivity;
22
-
23
- import static org.assertj.core.api.Java6Assertions.assertThat;
24
- import static org.mockito.Mockito.spy;
25
- import static org.mockito.Mockito.times;
26
- import static org.mockito.Mockito.verify;
27
-
28
- public class ExternalComponentViewControllerTest extends BaseTest {
29
- private ExternalComponentViewController uut;
30
- private FragmentCreatorMock componentCreator;
31
- private Activity activity;
32
- private ExternalComponent ec;
33
- private ReactInstanceManager reactInstanceManager;
34
- private EventEmitter emitter;
35
- private ChildControllersRegistry childRegistry;
36
-
37
- @Override
38
- public void beforeEach() {
39
- componentCreator = spy(new FragmentCreatorMock());
40
- activity = newActivity();
41
- ec = createExternalComponent();
42
- reactInstanceManager = Mockito.mock(ReactInstanceManager.class);
43
- emitter = Mockito.mock(EventEmitter.class);
44
- childRegistry = new ChildControllersRegistry();
45
- uut = spy(new ExternalComponentViewController(activity,
46
- childRegistry,
47
- "fragmentId",
48
- new Presenter(activity, Options.EMPTY),
49
- ec,
50
- componentCreator,
51
- reactInstanceManager,
52
- emitter,
53
- new ExternalComponentPresenter(),
54
- new Options())
55
- );
56
- }
57
-
58
- @Test
59
- public void createView_returnsFrameLayout() {
60
- ExternalComponentLayout view = uut.getView();
61
- assertThat(CoordinatorLayout.class.isAssignableFrom(view.getClass())).isTrue();
62
- }
63
-
64
- @Test
65
- public void createView_createsExternalComponent() {
66
- ExternalComponentLayout view = uut.getView();
67
- verify(componentCreator, times(1)).create((FragmentActivity) activity, reactInstanceManager, ec.passProps);
68
- assertThat(view.getChildCount()).isGreaterThan(0);
69
- }
70
-
71
- @Test
72
- public void onViewAppeared_appearEventIsEmitted() {
73
- uut.onViewWillAppear();
74
- verify(emitter).emitComponentDidAppear(uut.getId(), ec.name.get(), ComponentType.Component);
75
- }
76
-
77
- @Test
78
- public void onViewDisappear_disappearEventIsEmitted() {
79
- uut.onViewDisappear();
80
- verify(emitter).emitComponentDidDisappear(uut.getId(), ec.name.get(), ComponentType.Component);
81
- }
82
-
83
- @Test
84
- public void registersInChildRegister() {
85
- uut.onViewWillAppear();
86
- assertThat(childRegistry.size()).isOne();
87
- uut.onViewDisappear();
88
- assertThat(childRegistry.size()).isZero();
89
- }
90
-
91
- private ExternalComponent createExternalComponent() {
92
- ExternalComponent component = new ExternalComponent();
93
- component.name = new Text("fragmentComponent");
94
- component.passProps = new JSONObject();
95
- return component;
96
- }
97
- }
@@ -1,34 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.externalcomponent;
2
-
3
- import android.app.Activity;
4
- import android.app.FragmentManager;
5
- import android.app.FragmentTransaction;
6
- import androidx.fragment.app.FragmentActivity;
7
- import android.widget.FrameLayout;
8
-
9
- import com.facebook.react.ReactInstanceManager;
10
- import com.reactnativenavigation.R;
11
-
12
- import org.json.JSONObject;
13
-
14
- public class FragmentCreatorMock implements ExternalComponentCreator {
15
- @Override
16
- public ExternalComponent create(FragmentActivity activity, ReactInstanceManager reactInstanceManager, JSONObject props) {
17
- return createContent(activity);
18
- }
19
-
20
- private ExternalComponent createContent(Activity activity) {
21
- FrameLayout content = new FrameLayout(activity) {
22
- @Override
23
- protected void onAttachedToWindow() {
24
- super.onAttachedToWindow();
25
- FragmentManager fm = activity.getFragmentManager();
26
- FragmentTransaction ft = fm.beginTransaction();
27
- ft.add(R.id.fragment_screen_content, new SomeFragment());
28
- ft.commitAllowingStateLoss();
29
- }
30
- };
31
- content.setId(R.id.fragment_screen_content);
32
- return () -> content;
33
- }
34
- }
@@ -1,8 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.externalcomponent;
2
-
3
- import android.app.Fragment;
4
-
5
- public class SomeFragment extends Fragment {
6
- public SomeFragment() {
7
- }
8
- }
@@ -1,33 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.fakes
2
-
3
- import android.app.Activity
4
- import androidx.coordinatorlayout.widget.CoordinatorLayout
5
- import org.mockito.kotlin.mock
6
- import com.reactnativenavigation.options.Options
7
- import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter
8
- import com.reactnativenavigation.utils.CompatUtils
9
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry
10
- import com.reactnativenavigation.viewcontrollers.parent.ParentController
11
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
12
-
13
- class FakeParentController @JvmOverloads constructor(
14
- activity: Activity,
15
- childRegistry: ChildControllersRegistry,
16
- private val child: ViewController<*>,
17
- id: String = "Parent" + CompatUtils.generateViewId(),
18
- presenter: Presenter = mock(),
19
- initialOptions: Options = Options.EMPTY
20
- ) : ParentController<CoordinatorLayout>(activity, childRegistry, id, presenter, initialOptions) {
21
- init {
22
- child.parentController = this
23
- }
24
- override fun getCurrentChild(): ViewController<*> = child
25
-
26
- override fun createView() = CoordinatorLayout(activity).apply {
27
- addView(child.view)
28
- }
29
-
30
- override fun getChildControllers() = listOf(child)
31
-
32
- override fun sendOnNavigationButtonPressed(buttonId: String?) = child.sendOnNavigationButtonPressed(buttonId)
33
- }
@@ -1,40 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.modal;
2
-
3
- import android.content.Context;
4
-
5
- import com.reactnativenavigation.options.TransitionAnimationOptions;
6
- import com.reactnativenavigation.utils.ScreenAnimationListener;
7
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
8
-
9
- import org.jetbrains.annotations.NotNull;
10
-
11
- import androidx.annotation.Nullable;
12
-
13
- public class ModalAnimatorMock extends ModalAnimator {
14
-
15
- ModalAnimatorMock(Context context) {
16
- super(context);
17
- }
18
-
19
- @Override
20
- public void show(@NotNull ViewController<?> appearing, @Nullable ViewController<?> disappearing, @NotNull TransitionAnimationOptions show, @NotNull ScreenAnimationListener listener) {
21
- try {
22
- listener.onStart();
23
- Thread.sleep(10);
24
- listener.onEnd();
25
- } catch (InterruptedException e) {
26
- throw new RuntimeException(e);
27
- }
28
- }
29
-
30
- @Override
31
- public void dismiss(@Nullable ViewController<?> appearing, @NotNull ViewController<?> disappearing, @NotNull TransitionAnimationOptions dismiss, @NotNull ScreenAnimationListener listener) {
32
- try {
33
- listener.onStart();
34
- Thread.sleep(10);
35
- listener.onEnd();
36
- } catch (InterruptedException e) {
37
- throw new RuntimeException(e);
38
- }
39
- }
40
- }
@@ -1,213 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.modal
2
-
3
- import android.app.Activity
4
- import org.mockito.kotlin.*
5
- import com.reactnativenavigation.BaseTest
6
- import com.reactnativenavigation.mocks.SimpleViewController
7
- import com.reactnativenavigation.options.*
8
- import com.reactnativenavigation.options.animations.ViewAnimationOptions
9
- import com.reactnativenavigation.utils.ScreenAnimationListener
10
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry
11
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
12
- import com.reactnativenavigation.views.element.TransitionAnimatorCreator
13
- import org.assertj.core.api.Java6Assertions.assertThat
14
- import org.junit.Test
15
-
16
- class ModalAnimatorTest : BaseTest() {
17
- private lateinit var uut: ModalAnimator
18
- private lateinit var activity: Activity
19
- private lateinit var modal1: ViewController<*>
20
- private lateinit var root: ViewController<*>
21
- private lateinit var modal1View: SimpleViewController.SimpleView
22
- private lateinit var rootView: SimpleViewController.SimpleView
23
- private lateinit var mockDefaultAnimation: StackAnimationOptions
24
- private lateinit var screenAnimationListener: ScreenAnimationListener
25
- override fun beforeEach() {
26
- val mockTransitionAnimatorCreator = spy(TransitionAnimatorCreator())
27
- val childRegistry = mock<ChildControllersRegistry>()
28
- val enter = spy(AnimationOptions())
29
- val exit = spy(AnimationOptions())
30
-
31
- screenAnimationListener = mock { }
32
- activity = newActivity()
33
- modal1View = SimpleViewController.SimpleView(activity)
34
- rootView = SimpleViewController.SimpleView(activity)
35
-
36
- mockDefaultAnimation = StackAnimationOptions().apply {
37
- val viewAnimationOptions = ViewAnimationOptions()
38
- viewAnimationOptions.enter = enter
39
- viewAnimationOptions.exit = exit
40
- content = viewAnimationOptions
41
- }
42
- uut = spy(ModalAnimator(activity, defaultAnimation = mockDefaultAnimation, transitionAnimatorCreator = mockTransitionAnimatorCreator))
43
- modal1 = object : SimpleViewController(activity, childRegistry, "child1", Options()) {
44
- override fun createView(): SimpleView {
45
- return modal1View
46
- }
47
- }
48
-
49
- root = object : SimpleViewController(activity, childRegistry, "root", Options()) {
50
- override fun createView(): SimpleView {
51
- return rootView
52
- }
53
- }
54
- }
55
-
56
- @Test
57
- fun show_isRunning() {
58
- uut.show(modal1, root, TransitionAnimationOptions(), object : ScreenAnimationListener() {})
59
- assertThat(uut.isRunning).isTrue()
60
- }
61
-
62
- @Test
63
- fun `show shared elements - should make alpha 0 before animation`() {
64
- val sharedElements = SharedElements.parse(newAnimationOptionsJson(true).apply {
65
- put("sharedElementTransitions", newSharedElementAnimationOptionsJson())
66
- })
67
- val spyView = spy(modal1View)
68
- val mockModal = spy(modal1)
69
- whenever(mockModal.createView()).thenReturn(spyView)
70
- mockModal.onViewWillAppear() // to avoid wait for render
71
- uut.show(mockModal, root, TransitionAnimationOptions(sharedElements = sharedElements), screenAnimationListener)
72
- verify(spyView).alpha=0f
73
- }
74
-
75
- @Test
76
- fun `show shared elements - should play default fade-in`() {
77
- val sharedElements = SharedElements.parse(newAnimationOptionsJson(true).apply {
78
- put("sharedElementTransitions", newSharedElementAnimationOptionsJson())
79
- })
80
- val mockModal = spy(modal1)
81
- mockModal.onViewWillAppear() // to avoid wait for render
82
- uut.show(mockModal, root, TransitionAnimationOptions(sharedElements = sharedElements), screenAnimationListener)
83
- verify(mockDefaultAnimation.content.enter).getAnimation(mockModal.view)
84
- }
85
-
86
- @Test
87
- fun `dismiss shared elements - should play default fade-out`() {
88
- val sharedElements = SharedElements.parse(newAnimationOptionsJson(true).apply {
89
- put("sharedElementTransitions", newSharedElementAnimationOptionsJson())
90
- })
91
- val mockModal = spy(modal1)
92
- mockModal.onViewWillAppear() // to avoid wait for render
93
- uut.show(mockModal, root, TransitionAnimationOptions(sharedElements = sharedElements), screenAnimationListener)
94
- verify(mockDefaultAnimation.content.enter).getAnimation(mockModal.view)
95
-
96
- uut.dismiss(root, mockModal, TransitionAnimationOptions(sharedElements = sharedElements), screenAnimationListener)
97
- verify(mockDefaultAnimation.content.exit).getAnimation(mockModal.view)
98
- }
99
-
100
- @Test
101
- fun `show - should play shared transition if it has value`() {
102
- val sharedElements = SharedElements.parse(newAnimationOptionsJson(true).apply {
103
- put("sharedElementTransitions", newSharedElementAnimationOptionsJson())
104
- })
105
- val mockModal = spy(modal1)
106
- uut.show(mockModal, root, TransitionAnimationOptions(sharedElements = sharedElements), screenAnimationListener)
107
-
108
- verify(mockModal).setWaitForRender(any())
109
- }
110
-
111
- @Test
112
- fun `show - should not play shared transition if it does not has value`() {
113
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
114
- val mockModal = spy(modal1)
115
- uut.show(mockModal, root, TransitionAnimationOptions(enter = enter), screenAnimationListener)
116
- verify(mockModal, never()).setWaitForRender(any())
117
- }
118
-
119
- @Test
120
- fun `show - play enter animation on appearing if hasValue`() {
121
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
122
- val exit = spy(AnimationOptions())
123
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
124
- uut.show(modal1, root, animationOptions, screenAnimationListener)
125
-
126
- verify(enter).getAnimation(modal1.view)
127
- verify(exit, never()).getAnimation(root.view)
128
- }
129
-
130
- @Test
131
- fun `show - play default animation on appearing modal if enter does not hasValue`() {
132
- val enter = spy(AnimationOptions())
133
- val exit = spy(AnimationOptions())
134
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
135
- uut.show(modal1, root, animationOptions, screenAnimationListener)
136
-
137
- verify(uut).getDefaultPushAnimation(modal1.view)
138
- verify(enter, never()).getAnimation(modal1.view)
139
- verify(exit, never()).getAnimation(root.view)
140
- }
141
-
142
- @Test
143
- fun `show - play enter animation on appearing modal, exit on disappearing one`() {
144
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
145
- val exit = spy(AnimationOptions(newAnimationOptionsJson(true)))
146
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
147
- uut.show(modal1, root, animationOptions, screenAnimationListener)
148
-
149
- verify(enter).getAnimation(modal1.view)
150
- verify(exit).getAnimation(root.view)
151
- }
152
-
153
- @Test
154
- fun `show - should not play exit on null disappearing one`() {
155
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
156
- val exit = spy(AnimationOptions(newAnimationOptionsJson(true)))
157
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
158
- uut.show(modal1, null, animationOptions, screenAnimationListener)
159
-
160
- verify(enter).getAnimation(modal1.view)
161
- verify(exit, never()).getAnimation(root.view)
162
- }
163
-
164
- @Test
165
- fun `dismiss - play default animation on disappearing modal if exit does not hasValue`() {
166
- val enter = spy(AnimationOptions())
167
- val exit = spy(AnimationOptions())
168
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
169
- uut.dismiss(root, modal1, animationOptions, screenAnimationListener)
170
-
171
- verify(uut).getDefaultPopAnimation(modal1.view)
172
- verify(enter, never()).getAnimation(any())
173
- verify(exit, never()).getAnimation(any())
174
- }
175
-
176
- @Test
177
- fun `dismiss - play exit animation on disappearing modal, enter on appearing one`() {
178
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
179
- val exit = spy(AnimationOptions(newAnimationOptionsJson(true)))
180
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
181
- uut.dismiss(root, modal1, animationOptions, screenAnimationListener)
182
-
183
- verify(exit).getAnimation(modal1.view)
184
- verify(enter).getAnimation(root.view)
185
- }
186
-
187
- @Test
188
- fun `dismiss - should not play enter on null appearing one`() {
189
- val enter = spy(AnimationOptions(newAnimationOptionsJson(true)))
190
- val exit = spy(AnimationOptions(newAnimationOptionsJson(true)))
191
- val animationOptions = TransitionAnimationOptions(enter = enter, exit = exit)
192
- uut.dismiss(null, root, animationOptions, screenAnimationListener)
193
-
194
- verify(enter, never()).getAnimation(any())
195
- verify(exit).getAnimation(root.view)
196
- }
197
-
198
-
199
- @Test
200
- fun dismiss_dismissModalDuringShowAnimation() {
201
- val showListener = spy<ScreenAnimationListener>()
202
- uut.show(modal1, root, TransitionAnimationOptions(), showListener)
203
-
204
- verify(showListener).onStart()
205
- val dismissListener = spy<ScreenAnimationListener>()
206
- uut.dismiss(root, modal1, TransitionAnimationOptions(), dismissListener)
207
-
208
- verify(showListener).onCancel()
209
- verify(showListener, never()).onEnd()
210
- verify(dismissListener).onEnd()
211
- assertThat(uut.isRunning).isFalse()
212
- }
213
- }