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
|
@@ -1,216 +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 shouldCallApplyWindowInsetsWhenViewFullyAppeared(){
|
|
132
|
-
uut.ensureViewIsCreated();
|
|
133
|
-
uut.onViewDidAppear();
|
|
134
|
-
Mockito.verify(view).requestApplyInsets();
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
@Test
|
|
138
|
-
public void isViewShownOnlyIfComponentViewIsReady() {
|
|
139
|
-
Java6Assertions.assertThat(uut.isViewShown()).isFalse();
|
|
140
|
-
uut.ensureViewIsCreated();
|
|
141
|
-
Mockito.when(view.asView().isShown()).thenReturn(true);
|
|
142
|
-
Java6Assertions.assertThat(uut.isViewShown()).isFalse();
|
|
143
|
-
Mockito.when(view.isReady()).thenReturn(true);
|
|
144
|
-
Java6Assertions.assertThat(uut.isViewShown()).isTrue();
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
@Test
|
|
148
|
-
public void onNavigationButtonPressInvokedOnReactComponent() {
|
|
149
|
-
uut.ensureViewIsCreated();
|
|
150
|
-
uut.sendOnNavigationButtonPressed("btn1");
|
|
151
|
-
Mockito.verify(view, Mockito.times(1)).sendOnNavigationButtonPressed("btn1");
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
@Test
|
|
155
|
-
public void mergeOptions_emptyOptionsAreIgnored() {
|
|
156
|
-
ComponentViewController spy = Mockito.spy(uut);
|
|
157
|
-
spy.mergeOptions(Options.EMPTY);
|
|
158
|
-
Mockito.verify(spy, Mockito.times(0)).performOnParentController(ArgumentMatchers.any());
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
@Test
|
|
162
|
-
public void mergeOptions_delegatesToPresenterIfViewIsNotShown() {
|
|
163
|
-
Options options = new Options();
|
|
164
|
-
Java6Assertions.assertThat(uut.isViewShown()).isFalse();
|
|
165
|
-
uut.mergeOptions(options);
|
|
166
|
-
Mockito.verifyNoInteractions(presenter);
|
|
167
|
-
|
|
168
|
-
Mockito.when(uut.isViewShown()).thenReturn(true);
|
|
169
|
-
uut.mergeOptions(options);
|
|
170
|
-
Mockito.verify(presenter).mergeOptions(uut.getView(), options);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
@Test
|
|
174
|
-
public void applyTopInset_delegatesToPresenter() {
|
|
175
|
-
addToParent(activity, uut);
|
|
176
|
-
uut.applyTopInset();
|
|
177
|
-
Mockito.verify(presenter).applyTopInsets(uut.getView(), uut.getTopInset());
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
@Test
|
|
181
|
-
public void getTopInset_returnsStatusBarHeight() {
|
|
182
|
-
//noinspection ConstantConditions
|
|
183
|
-
uut.setParentController(null);
|
|
184
|
-
Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(SystemUiUtils.getStatusBarHeight(activity));
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
@Test
|
|
188
|
-
public void getTopInset_resolveWithParent() {
|
|
189
|
-
Java6Assertions
|
|
190
|
-
.assertThat(uut.getTopInset()).isEqualTo(SystemUiUtils.getStatusBarHeight(activity) + parent.getTopInset(uut));
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
@Test
|
|
194
|
-
public void getTopInset_drawBehind() {
|
|
195
|
-
uut.options.statusBar.drawBehind = new Bool(true);
|
|
196
|
-
uut.options.topBar.drawBehind = new Bool(true);
|
|
197
|
-
Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(0);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
@Test
|
|
201
|
-
public void getTopInset_drawBehind_defaultOptions() {
|
|
202
|
-
Options defaultOptions = new Options();
|
|
203
|
-
defaultOptions.statusBar.drawBehind = new Bool(true);
|
|
204
|
-
uut.setDefaultOptions(defaultOptions);
|
|
205
|
-
|
|
206
|
-
uut.options.topBar.drawBehind = new Bool(true);
|
|
207
|
-
Java6Assertions.assertThat(uut.getTopInset()).isEqualTo(0);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
@Test
|
|
211
|
-
public void applyBottomInset_delegatesToPresenter() {
|
|
212
|
-
addToParent(activity, uut);
|
|
213
|
-
uut.applyBottomInset();
|
|
214
|
-
Mockito.verify(presenter).applyBottomInset(uut.getView(), uut.getBottomInset());
|
|
215
|
-
}
|
|
216
|
-
}
|
|
@@ -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,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
|
-
}
|