react-native-navigation 7.24.2 → 7.24.3-snapshot.492

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 (100) hide show
  1. package/lib/android/app/build.gradle +12 -9
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +1 -0
  3. package/lib/ios/RNNComponentRootView.m +0 -14
  4. package/package.json +1 -1
  5. package/.buildkite/pipeline.yml +0 -59
  6. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
  7. package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
  8. package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
  9. package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
  10. package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
  11. package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
  12. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
  13. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
  14. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
  15. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
  16. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
  17. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
  18. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
  19. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
  20. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
  21. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
  22. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
  23. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
  24. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
  25. package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
  26. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
  27. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
  28. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
  29. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
  30. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
  31. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
  32. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
  33. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
  34. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
  35. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
  36. package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
  37. package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
  38. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
  39. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
  40. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
  41. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
  42. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
  43. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
  44. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
  45. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
  46. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
  47. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
  48. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
  49. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
  50. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
  51. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
  52. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
  53. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
  54. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
  55. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
  56. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
  57. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
  58. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
  59. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
  60. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
  61. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
  62. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
  63. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
  64. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
  65. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
  66. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -209
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
  84. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
  85. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
  86. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
  87. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
  88. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
  89. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
  90. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
  91. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
  92. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
  93. package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
  94. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
  95. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
  96. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
  97. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
  98. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
  99. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
  100. package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
@@ -1,173 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.bottomtabs
2
-
3
- import android.animation.AnimatorSet
4
- import android.content.res.Configuration
5
- import android.graphics.Color
6
- import org.mockito.kotlin.*
7
- import com.reactnativenavigation.BaseTest
8
- import com.reactnativenavigation.mocks.SimpleViewController
9
- import com.reactnativenavigation.options.Options
10
- import com.reactnativenavigation.options.ShadowOptions
11
- import com.reactnativenavigation.options.params.*
12
- import com.reactnativenavigation.options.params.Number
13
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry
14
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
15
- import com.reactnativenavigation.views.bottomtabs.BottomTabs
16
- import com.reactnativenavigation.views.bottomtabs.BottomTabsContainer
17
- import org.assertj.core.api.Java6Assertions.assertThat
18
- import org.junit.Test
19
-
20
- class BottomTabsPresenterTest : BaseTest() {
21
- private lateinit var tabs: List<ViewController<*>>
22
- private lateinit var uut: BottomTabsPresenter
23
- private lateinit var bottomTabs: BottomTabs
24
- private lateinit var bottomTabsContainer: BottomTabsContainer
25
- private lateinit var animator: BottomTabsAnimator
26
- private lateinit var tabSelector: TabSelector
27
-
28
- override fun beforeEach() {
29
- super.beforeEach()
30
- val activity = newActivity()
31
- val childRegistry = ChildControllersRegistry()
32
- val child1 = spy(SimpleViewController(activity, childRegistry, "child1", Options()))
33
- val child2 = spy(SimpleViewController(activity, childRegistry, "child2", Options()))
34
- tabs = listOf(child1, child2)
35
- bottomTabsContainer = mock()
36
- bottomTabs = mock()
37
- whenever(bottomTabsContainer.bottomTabs).thenReturn(bottomTabs)
38
- animator = spy(BottomTabsAnimator(bottomTabs))
39
- uut = BottomTabsPresenter(tabs, Options(), animator)
40
- tabSelector = mock()
41
- uut.bindView(bottomTabsContainer, tabSelector)
42
- }
43
-
44
- @Test
45
- fun onConfigurationChange_shouldApplyColors() {
46
- val options = Options.EMPTY
47
- options.bottomTabsOptions.backgroundColor = ThemeColour.of(Color.BLACK, Color.RED)
48
- options.bottomTabsOptions.borderColor = ThemeColour.of(Color.BLACK, Color.RED)
49
- options.bottomTabsOptions.shadowOptions = ShadowOptions(ThemeColour.of(Color.BLACK, Color.RED))
50
- mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_NO
51
- uut.onConfigurationChanged(options)
52
- verify(bottomTabs).setBackgroundColor(Color.BLACK)
53
- verify(bottomTabsContainer).setTopOutLineColor(Color.BLACK)
54
- verify(bottomTabsContainer).shadowColor = Color.BLACK
55
-
56
- mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_YES
57
- uut.onConfigurationChanged(options)
58
- verify(bottomTabs).setBackgroundColor(Color.RED)
59
- verify(bottomTabsContainer).setTopOutLineColor(Color.RED)
60
- verify(bottomTabsContainer).shadowColor = Color.RED
61
- }
62
-
63
- @Test
64
- fun mergeChildOptions_onlyDeclaredOptionsAreApplied() { // default options are not applied on merge
65
- val defaultOptions = Options()
66
- defaultOptions.bottomTabsOptions.visible = Bool(false)
67
- uut.setDefaultOptions(defaultOptions)
68
- val options = Options()
69
- options.bottomTabsOptions.backgroundColor = ThemeColour(Colour(10))
70
- uut.mergeChildOptions(options, tabs[0])
71
- verify(bottomTabs).setBackgroundColor(options.bottomTabsOptions.backgroundColor.get())
72
- verifyNoMoreInteractions(bottomTabs)
73
- }
74
-
75
- @Test
76
- fun mergeChildOptions_visibilityIsAppliedOnlyIfChildIsShown() {
77
- assertThat(tabs[0].isViewShown).isFalse()
78
- assertThat(bottomTabs.isHidden).isFalse()
79
-
80
- val options = Options()
81
- options.bottomTabsOptions.visible = Bool(false)
82
- uut.mergeChildOptions(options, tabs[0])
83
- verify(animator, never()).hide()
84
-
85
- whenever(tabs[0].isViewShown).thenAnswer { true }
86
- uut.mergeChildOptions(options, tabs[0])
87
- verify(animator).hide(any(), any(), anyOrNull())
88
- }
89
-
90
- @Test
91
- fun applyChildOptions_currentTabIndexIsConsumedAfterApply() {
92
- val defaultOptions = Options()
93
- defaultOptions.bottomTabsOptions.currentTabIndex = Number(1)
94
- uut.setDefaultOptions(defaultOptions)
95
- uut.applyChildOptions(Options.EMPTY, tabs[0])
96
- verify(tabSelector).selectTab(1)
97
- uut.applyChildOptions(Options.EMPTY, tabs[0])
98
- verifyNoMoreInteractions(tabSelector)
99
- }
100
-
101
- @Test
102
- fun applyChildOptions_currentTabIdIsConsumedAfterApply() {
103
- val defaultOptions = Options()
104
- defaultOptions.bottomTabsOptions.currentTabId = Text(tabs[1].id)
105
- uut.setDefaultOptions(defaultOptions)
106
- uut.applyChildOptions(Options.EMPTY, tabs[0])
107
- verify(tabSelector).selectTab(1)
108
- uut.applyChildOptions(Options.EMPTY, tabs[0])
109
- verifyNoMoreInteractions(tabSelector)
110
- }
111
-
112
- @Test
113
- fun getPushAnimation_returnsNullIfAnimateFalse() {
114
- val appearing = Options()
115
- appearing.bottomTabsOptions.animate = Bool(false)
116
- assertThat(uut.getPushAnimation(appearing)).isNull()
117
- }
118
-
119
- @Test
120
- fun getPushAnimation_delegatesToAnimator() {
121
- val someAnimator = AnimatorSet()
122
- val options = Options.EMPTY
123
- doReturn(someAnimator).whenever(animator).getPushAnimation(
124
- options.animations.push.bottomTabs,
125
- options.bottomTabsOptions.visible,
126
- 0f
127
- )
128
- val result = uut.getPushAnimation(options)
129
- assertThat(result).isEqualTo(someAnimator)
130
- }
131
-
132
- @Test
133
- fun getPopAnimation_returnsNullIfAnimateFalse() {
134
- val appearing = Options()
135
- val disappearing = Options()
136
- disappearing.bottomTabsOptions.animate = Bool(false)
137
- assertThat(uut.getPopAnimation(appearing, disappearing)).isNull()
138
- }
139
-
140
- @Test
141
- fun getPopAnimation_delegatesToAnimator() {
142
- val someAnimator = AnimatorSet()
143
- val appearing = Options.EMPTY
144
- val disappearing = Options.EMPTY
145
- doReturn(someAnimator).whenever(animator).getPopAnimation(
146
- disappearing.animations.pop.bottomTabs,
147
- appearing.bottomTabsOptions.visible,
148
- 0f
149
- )
150
- val result = uut.getPopAnimation(appearing, disappearing)
151
- assertThat(result).isEqualTo(someAnimator)
152
- }
153
-
154
- @Test
155
- fun getSetStackRootAnimation_returnsNullIfAnimateFalse() {
156
- val appearing = Options()
157
- appearing.bottomTabsOptions.animate = Bool(false)
158
- assertThat(uut.getSetStackRootAnimation(appearing)).isNull()
159
- }
160
-
161
- @Test
162
- fun getSetStackRootAnimation_delegatesToAnimator() {
163
- val someAnimator = AnimatorSet()
164
- val options = Options.EMPTY
165
- doReturn(someAnimator).whenever(animator).getSetStackRootAnimation(
166
- options.animations.setStackRoot.bottomTabs,
167
- options.bottomTabsOptions.visible,
168
- 0f
169
- )
170
- val result = uut.getSetStackRootAnimation(options)
171
- assertThat(result).isEqualTo(someAnimator)
172
- }
173
- }
@@ -1,38 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.bottomtabs.attacher.modes;
2
-
3
-
4
- import org.junit.Test;
5
-
6
- import static org.mockito.ArgumentMatchers.any;
7
- import static org.mockito.Mockito.verify;
8
-
9
- public class AfterInitialTabTest extends AttachModeTest {
10
-
11
- @Override
12
- public void beforeEach() {
13
- super.beforeEach();
14
- uut = new AfterInitialTab(parent, tabs, presenter, options);
15
- }
16
-
17
- @Test
18
- public void attach_initialTabIsAttached() {
19
- uut.attach();
20
- assertIsChild(parent, tab2);
21
- }
22
-
23
- @Test
24
- public void attach_otherTabsAreAttachedAfterInitialTab() {
25
- uut.attach();
26
- assertNotChildOf(parent, otherTabs());
27
-
28
- initialTab().onViewWillAppear();
29
- idleMainLooper();
30
- assertIsChild(parent, otherTabs());
31
- }
32
-
33
- @Test
34
- public void destroy() {
35
- uut.destroy();
36
- verify(initialTab()).removeOnAppearedListener(any());
37
- }
38
- }
@@ -1,86 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.bottomtabs.attacher.modes;
2
-
3
- import android.app.Activity;
4
- import android.view.View;
5
- import android.view.ViewGroup;
6
-
7
- import com.reactnativenavigation.BaseTest;
8
- import com.reactnativenavigation.mocks.SimpleViewController;
9
- import com.reactnativenavigation.options.Options;
10
- import com.reactnativenavigation.options.params.Number;
11
- import com.reactnativenavigation.viewcontrollers.bottomtabs.BottomTabsPresenter;
12
- import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
13
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
14
- import com.reactnativenavigation.views.bottomtabs.BottomTabsBehaviour;
15
-
16
- import org.junit.Test;
17
- import org.mockito.Mockito;
18
-
19
- import java.util.Arrays;
20
- import java.util.List;
21
-
22
- import androidx.coordinatorlayout.widget.CoordinatorLayout;
23
-
24
- import static com.reactnativenavigation.utils.CollectionUtils.*;
25
- import static org.assertj.core.api.Java6Assertions.assertThat;
26
- import static org.mockito.Mockito.spy;
27
-
28
- public abstract class AttachModeTest extends BaseTest {
29
- private static final int INITIAL_TAB = 1;
30
-
31
- private Activity activity;
32
- private ChildControllersRegistry childRegistry;
33
- protected ViewGroup parent;
34
- ViewController<?> tab1;
35
- ViewController<?> tab2;
36
- List<ViewController<?>> tabs;
37
- protected Options options;
38
- protected BottomTabsPresenter presenter;
39
- protected AttachMode uut;
40
-
41
- @Override
42
- public void beforeEach() {
43
- activity = newActivity();
44
- childRegistry = new ChildControllersRegistry();
45
- parent = new CoordinatorLayout(activity);
46
- tabs = createTabs();
47
- options = new Options();
48
- options.bottomTabsOptions.currentTabIndex = new Number(INITIAL_TAB);
49
- presenter = Mockito.mock(BottomTabsPresenter.class);
50
- }
51
-
52
- @Test
53
- public void attach_layoutOptionsAreApplied() {
54
- uut.attach(tab1);
55
- CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) tab1.getView().getLayoutParams();
56
- assertThat(lp).isNotNull();
57
- assertThat(lp.getBehavior()).isInstanceOf(BottomTabsBehaviour.class);
58
- }
59
-
60
- @Test
61
- public void attach_initialTabIsVisible() {
62
- uut.attach(initialTab());
63
- assertThat(initialTab().getView().getVisibility()).isEqualTo(View.VISIBLE);
64
- }
65
-
66
- @Test
67
- public void attach_otherTabsAreInvisibleWhenAttached() {
68
- forEach(otherTabs(), t -> uut.attach(t));
69
- forEach(otherTabs(), t -> assertThat(t.getView().getVisibility()).isEqualTo(View.INVISIBLE));
70
- }
71
-
72
- ViewController<?>[] otherTabs() {
73
- return filter(tabs, t -> t != initialTab()).toArray(new ViewController[0]);
74
- }
75
-
76
- ViewController<?> initialTab() {
77
- return tabs.get(INITIAL_TAB);
78
- }
79
-
80
- private List<ViewController<?>> createTabs() {
81
- tab1 = new SimpleViewController(activity, childRegistry, "child1", new Options());
82
- tab2 = spy(new SimpleViewController(activity, childRegistry, "child2", new Options()));
83
- ViewController<?> tab3 = new SimpleViewController(activity, childRegistry, "child3", new Options());
84
- return Arrays.asList(tab1, tab2, tab3);
85
- }
86
- }
@@ -1,31 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.bottomtabs.attacher.modes;
2
-
3
- import org.junit.*;
4
-
5
- public class OnSwitchToTabTest extends AttachModeTest {
6
-
7
- @Override
8
- public void beforeEach() {
9
- super.beforeEach();
10
- uut = new OnSwitchToTab(parent, tabs, presenter, options);
11
- }
12
-
13
- @Test
14
- public void attach_onlyInitialTabIsAttached() {
15
- uut.attach();
16
- assertIsChild(parent, initialTab());
17
- assertNotChildOf(parent, otherTabs());
18
- }
19
-
20
- @Test
21
- public void onTabSelected_initialTabIsNotHandled() {
22
- uut.onTabSelected(initialTab());
23
- assertNotChildOf(parent, initialTab());
24
- }
25
-
26
- @Test
27
- public void onTabSelected_otherTabIsAttached() {
28
- uut.onTabSelected(tab1);
29
- assertIsChild(parent, tab1);
30
- }
31
- }
@@ -1,20 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.bottomtabs.attacher.modes;
2
-
3
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
4
-
5
- import org.junit.*;
6
-
7
- public class TogetherTest extends AttachModeTest {
8
-
9
- @Override
10
- public void beforeEach() {
11
- super.beforeEach();
12
- uut = new Together(parent, tabs, presenter, options);
13
- }
14
-
15
- @Test
16
- public void attach_allTabsAreAttached() {
17
- uut.attach();
18
- assertIsChild(parent, tabs.toArray(new ViewController[0]));
19
- }
20
- }
@@ -1,78 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.button;
2
-
3
- import android.app.Activity;
4
- import android.graphics.Color;
5
- import android.graphics.drawable.Drawable;
6
-
7
- import com.reactnativenavigation.BaseTest;
8
- import com.reactnativenavigation.options.BackButton;
9
- import com.reactnativenavigation.options.params.ThemeColour;
10
- import com.reactnativenavigation.viewcontrollers.stack.topbar.button.IconResolver;
11
- import com.reactnativenavigation.mocks.BackDrawable;
12
- import com.reactnativenavigation.mocks.ImageLoaderMock;
13
- import com.reactnativenavigation.options.ButtonOptions;
14
- import com.reactnativenavigation.options.params.Colour;
15
- import com.reactnativenavigation.options.params.Text;
16
- import com.reactnativenavigation.react.Constants;
17
- import com.reactnativenavigation.utils.Functions.Func1;
18
- import com.reactnativenavigation.utils.ImageLoader;
19
-
20
- import org.junit.Test;
21
-
22
- import static org.mockito.ArgumentMatchers.any;
23
- import static org.mockito.ArgumentMatchers.eq;
24
- import static org.mockito.Mockito.spy;
25
- import static org.mockito.Mockito.verify;
26
-
27
- public class NavigationIconResolverTest extends BaseTest {
28
- private static final String ICON_URI = "someIconUri";
29
- private IconResolver uut;
30
- private ImageLoader imageLoader;
31
- private Activity context;
32
-
33
- @Override
34
- public void beforeEach() {
35
- imageLoader = ImageLoaderMock.mock();
36
- context = newActivity();
37
- uut = new IconResolver(context, imageLoader);
38
- }
39
-
40
- @Test
41
- public void create_iconButton() {
42
- @SuppressWarnings("Convert2Lambda") Func1<Drawable> onSuccess = spy(new Func1<Drawable>() {
43
- @Override
44
- public void run(Drawable icon) {
45
-
46
- }
47
- });
48
- uut.resolve(iconButton(), onSuccess);
49
- verify(imageLoader).loadIcon(eq(context), eq(ICON_URI), any());
50
- verify(onSuccess).run(any(Drawable.class));
51
- }
52
-
53
- @Test
54
- public void create_backButton() {
55
- @SuppressWarnings("Convert2Lambda") Func1<Drawable> onSuccess = spy(new Func1<Drawable>() {
56
- @Override
57
- public void run(Drawable param) {
58
-
59
- }
60
- });
61
- uut.resolve(backButton(), onSuccess);
62
- verify(onSuccess).run(any(BackDrawable.class));
63
- }
64
-
65
- private ButtonOptions iconButton() {
66
- ButtonOptions button = new ButtonOptions();
67
- button.id = "iconBtnId";
68
- button.icon = new Text(ICON_URI);
69
- button.color = new ThemeColour(new Colour(Color.RED));
70
- return button;
71
- }
72
-
73
- private BackButton backButton() {
74
- BackButton button = BackButton.parse(null, null);
75
- button.id = Constants.BACK_BUTTON_ID;
76
- return button;
77
- }
78
- }
@@ -1,80 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.child;
2
-
3
- import com.reactnativenavigation.BaseTest;
4
- import com.reactnativenavigation.mocks.SimpleViewController;
5
- import com.reactnativenavigation.options.Options;
6
- import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter;
7
- import com.reactnativenavigation.viewcontrollers.parent.ParentController;
8
-
9
- import org.junit.Test;
10
- import org.mockito.Mockito;
11
-
12
- import static org.mockito.ArgumentMatchers.any;
13
- import static org.mockito.Mockito.spy;
14
- import static org.mockito.Mockito.times;
15
- import static org.mockito.Mockito.verify;
16
-
17
- public class ChildControllerTest extends BaseTest {
18
-
19
- private ChildController<?> uut;
20
- private ChildControllersRegistry childRegistry;
21
- private Presenter presenter;
22
- private Options resolvedOptions = new Options();
23
-
24
- @Override
25
- public void beforeEach() {
26
- childRegistry = spy(new ChildControllersRegistry());
27
- presenter = Mockito.mock(Presenter.class);
28
- uut = new SimpleViewController(newActivity(), childRegistry, "childId", presenter, new Options()) {
29
- @Override
30
- public Options resolveCurrentOptions() {
31
- return resolvedOptions;
32
- }
33
- };
34
- ParentController<?> parent = Mockito.mock(ParentController.class);
35
- Mockito.when(parent.resolveChildOptions(uut)).thenReturn(Options.EMPTY);
36
- uut.setParentController(parent);
37
- }
38
-
39
- @Test
40
- public void onViewAppeared() {
41
- uut.onViewWillAppear();
42
- verify(childRegistry, times(1)).onViewAppeared(uut);
43
- }
44
-
45
- @Test
46
- public void onViewDisappear() {
47
- uut.onViewWillAppear();
48
-
49
- uut.onViewDisappear();
50
- verify(childRegistry, times(1)).onViewDisappear(uut);
51
- }
52
-
53
- @Test
54
- public void mergeOptions() {
55
- newActivity().setContentView(uut.getView());
56
-
57
- Options options = new Options();
58
- uut.mergeOptions(options);
59
- verify(presenter).mergeOptions(uut, options);
60
- }
61
-
62
- @Test
63
- public void mergeOptions_emptyOptionsAreIgnored() {
64
- uut.mergeOptions(Options.EMPTY);
65
- verify(presenter, times(0)).mergeOptions(any(), any());
66
- }
67
-
68
- @Test
69
- public void mergeOptions_mergeWithParentViewController() {
70
- Options options = new Options();
71
- uut.mergeOptions(options);
72
- verify(uut.getParentController()).mergeChildOptions(options, uut);
73
- }
74
-
75
- @Test
76
- public void destroy() {
77
- uut.destroy();
78
- verify(childRegistry).onChildDestroyed(uut);
79
- }
80
- }
@@ -1,56 +0,0 @@
1
- package com.reactnativenavigation.viewcontrollers.child;
2
-
3
- import android.app.Activity;
4
-
5
- import com.reactnativenavigation.BaseTest;
6
- import com.reactnativenavigation.mocks.SimpleViewController;
7
- import com.reactnativenavigation.options.Options;
8
-
9
- import org.junit.Test;
10
-
11
- import static org.assertj.core.api.Java6Assertions.assertThat;
12
- import static org.mockito.Mockito.spy;
13
- import static org.mockito.Mockito.times;
14
- import static org.mockito.Mockito.verify;
15
-
16
- public class ChildControllersRegistryTest extends BaseTest {
17
- private ChildControllersRegistry uut;
18
- private ChildController<?> child1;
19
- private ChildController<?> child2;
20
-
21
- @Override
22
- public void beforeEach() {
23
- Activity activity = newActivity();
24
- uut = new ChildControllersRegistry();
25
- child1 = spy(new SimpleViewController(activity, uut, "child1", new Options()));
26
- child2 = spy(new SimpleViewController(activity, uut, "child2", new Options()));
27
- }
28
-
29
- @Test
30
- public void onViewAppeared() {
31
- child1.onViewWillAppear();
32
- verify(child1, times(0)).onViewBroughtToFront();
33
- assertThat(uut.size()).isOne();
34
- }
35
-
36
- @Test
37
- public void onViewDisappear() {
38
- child1.onViewWillAppear();
39
- child2.onViewWillAppear();
40
- assertThat(uut.size()).isEqualTo(2);
41
- child2.onViewDisappear();
42
- verify(child1, times(1)).onViewBroughtToFront();
43
- assertThat(uut.size()).isOne();
44
- }
45
-
46
- @Test
47
- public void onChildDestroyed() {
48
- child1.destroy();
49
- assertThat(uut.size()).isEqualTo(0);
50
- }
51
-
52
- @Test
53
- public void onViewDisappear_doesNotCrashIfNoViewsHaveAppeared() {
54
- uut.onViewDisappear(child1);
55
- }
56
- }