react-native-navigation 7.24.3 → 7.25.0-snapshot.543

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 (141) hide show
  1. package/lib/android/app/build.gradle +12 -9
  2. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +7 -9
  3. package/lib/android/app/src/main/java/com/reactnativenavigation/options/BottomTabOptions.java +4 -0
  4. package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +2 -0
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.java +3 -2
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/options/OverlayOptions.kt +31 -0
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutInsets.kt +44 -0
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/options/layout/LayoutOptions.kt +71 -0
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/JSONParser.java +0 -2
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/PrimitiveExt.kt +9 -0
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +2 -1
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +31 -4
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +6 -13
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +32 -10
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalStack.java +4 -0
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/navigator/Navigator.java +25 -6
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManager.kt +104 -33
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/parent/ParentController.java +86 -9
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuController.java +12 -0
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +18 -1
  21. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +51 -0
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonController.kt +7 -1
  23. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +23 -7
  24. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +0 -1
  25. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +24 -3
  26. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java +29 -1
  27. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainer.kt +1 -0
  28. package/lib/android/app/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabsLayout.java +10 -1
  29. package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java +10 -2
  30. package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/AttachedOverlayContainer.kt +69 -0
  31. package/lib/android/app/src/main/java/com/reactnativenavigation/views/overlay/ViewTooltip.java +921 -0
  32. package/lib/android/app/src/main/java/com/reactnativenavigation/views/sidemenu/SideMenuRoot.java +9 -1
  33. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/StackLayout.java +14 -4
  34. package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBar.java +0 -1
  35. package/lib/android/app/src/main/java/com/reactnativenavigation/views/toptabs/TopTabsStyleHelper.java +0 -1
  36. package/lib/dist/src/interfaces/Options.d.ts +34 -0
  37. package/lib/ios/RNNBasePresenter.m +17 -0
  38. package/lib/ios/RNNBottomTabsController.m +1 -0
  39. package/lib/ios/RNNComponentViewController.m +5 -0
  40. package/lib/ios/RNNLayoutOptions.h +2 -1
  41. package/lib/ios/RNNLayoutOptions.m +4 -0
  42. package/lib/ios/RNNStackPresenter.m +1 -0
  43. package/lib/src/interfaces/Options.ts +38 -0
  44. package/package.json +3 -1
  45. package/.buildkite/pipeline.yml +0 -59
  46. package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutOptions.java +0 -48
  47. package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +0 -178
  48. package/lib/android/app/src/test/java/com/reactnativenavigation/EnvironmentTest.java +0 -43
  49. package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +0 -23
  50. package/lib/android/app/src/test/java/com/reactnativenavigation/TestApplication.java +0 -35
  51. package/lib/android/app/src/test/java/com/reactnativenavigation/TestUtils.java +0 -62
  52. package/lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt +0 -8
  53. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/BackDrawable.java +0 -30
  54. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +0 -49
  55. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +0 -18
  56. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleComponentViewController.java +0 -15
  57. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleOverlay.java +0 -54
  58. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +0 -113
  59. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentLayout.java +0 -79
  60. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestComponentViewCreator.java +0 -18
  61. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TestReactView.java +0 -71
  62. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarButtonCreatorMock.java +0 -34
  63. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java +0 -20
  64. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java +0 -20
  65. package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +0 -21
  66. package/lib/android/app/src/test/java/com/reactnativenavigation/options/LayoutNodeParserTest.java +0 -51
  67. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OptionsTest.java +0 -315
  68. package/lib/android/app/src/test/java/com/reactnativenavigation/options/OrientationOptionsTest.java +0 -81
  69. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TopBarButtonsTest.kt +0 -95
  70. package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +0 -122
  71. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/BoolParserTest.java +0 -28
  72. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/ColorParseTest.java +0 -50
  73. package/lib/android/app/src/test/java/com/reactnativenavigation/options/parsers/JSONParserTest.java +0 -64
  74. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -56
  75. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/RenderCheckerTest.java +0 -59
  76. package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/SideMenuPresenterTest.java +0 -35
  77. package/lib/android/app/src/test/java/com/reactnativenavigation/react/NavigationModuleTest.java +0 -102
  78. package/lib/android/app/src/test/java/com/reactnativenavigation/react/ReloadListenerTest.java +0 -24
  79. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/AnimationHelper.kt +0 -33
  80. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -241
  81. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ButtonSpanTest.java +0 -57
  82. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/CompatUtilsTest.java +0 -17
  83. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -78
  84. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +0 -47
  85. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/NativeCommandListenerTest.java +0 -60
  86. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/OptionHelper.java +0 -16
  87. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ReflectionUtilsTest.java +0 -26
  88. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/StringUtilsTest.java +0 -19
  89. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +0 -27
  90. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleAndButtonsMeasurerTest.kt +0 -357
  91. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/TitleBarHelper.java +0 -54
  92. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +0 -29
  93. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +0 -22
  94. package/lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java +0 -9
  95. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -149
  96. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -206
  97. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAttacherTest.java +0 -62
  98. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -589
  99. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -173
  100. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AfterInitialTabTest.java +0 -38
  101. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/AttachModeTest.java +0 -86
  102. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/OnSwitchToTabTest.java +0 -31
  103. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/attacher/modes/TogetherTest.java +0 -20
  104. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/button/NavigationIconResolverTest.java +0 -78
  105. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +0 -80
  106. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllersRegistryTest.java +0 -56
  107. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -216
  108. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -97
  109. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/FragmentCreatorMock.java +0 -34
  110. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java +0 -8
  111. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +0 -33
  112. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorMock.java +0 -40
  113. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -213
  114. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -319
  115. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -367
  116. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -898
  117. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -254
  118. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -108
  119. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -299
  120. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -446
  121. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -77
  122. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -154
  123. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/IdStackTest.java +0 -114
  124. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -241
  125. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1165
  126. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1081
  127. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -61
  128. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -43
  129. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -120
  130. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -432
  131. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -249
  132. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -337
  133. package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/YellowBoxDelegateTest.java +0 -68
  134. package/lib/android/app/src/test/java/com/reactnativenavigation/views/OverlayTouchDelegateTest.java +0 -60
  135. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -477
  136. package/lib/android/app/src/test/java/com/reactnativenavigation/views/TopBarTest.java +0 -82
  137. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +0 -109
  138. package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreatorFake.kt +0 -36
  139. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +0 -101
  140. package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +0 -40
  141. package/lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker +0 -1
@@ -1,109 +0,0 @@
1
- package com.reactnativenavigation.views.animations
2
-
3
- import android.animation.Animator
4
- import android.view.View
5
- import com.reactnativenavigation.BaseTest
6
- import com.reactnativenavigation.options.AnimationOptions
7
- import org.assertj.core.api.Java6Assertions.assertThat
8
- import org.junit.Test
9
- import org.mockito.kotlin.mock
10
- import org.mockito.kotlin.spy
11
- import org.mockito.kotlin.verify
12
- import org.mockito.kotlin.whenever
13
-
14
- class BaseViewAnimatorTest : BaseTest() {
15
- private lateinit var uut: BaseViewAnimator<View>
16
- private lateinit var view: View
17
- private lateinit var defaultAnimatorCreator: ViewAnimatorCreator
18
-
19
- private val defaultShowAnimator: Animator
20
- get() = defaultAnimatorCreator.getShowAnimator(view, BaseViewAnimator.HideDirection.Up, 0f)
21
- private val defaultHideAnimator: Animator
22
- get() = defaultAnimatorCreator.getHideAnimator(view, BaseViewAnimator.HideDirection.Up, 0f)
23
-
24
-
25
- override fun beforeEach() {
26
- view = View(newActivity())
27
- defaultAnimatorCreator = DefaultViewAnimatorCreatorFake()
28
- uut = BaseViewAnimator(
29
- hideDirection = BaseViewAnimator.HideDirection.Up,
30
- view = view,
31
- defaultAnimatorCreator = defaultAnimatorCreator
32
- )
33
- }
34
-
35
- @Test
36
- fun show() {
37
- view.visibility = View.GONE
38
-
39
- assertNotAnimating()
40
- uut.show()
41
- assertAnimatingShow()
42
- }
43
-
44
- @Test
45
- fun show_doesNothingIsAlreadyAnimatingShow() {
46
- view.visibility = View.GONE
47
- uut.show()
48
-
49
- val animator = uut.showAnimator
50
- uut.show()
51
- assertThat(animator).isEqualTo(uut.showAnimator)
52
- }
53
-
54
- @Test
55
- fun show_updatesTranslationDy() {
56
- view.visibility = View.GONE
57
- val options = spy<AnimationOptions>()
58
- whenever(options.hasValue()).thenReturn(true)
59
-
60
- uut.show(options, 123f)
61
- verify(options).setValueDy(View.TRANSLATION_Y, -123f, 0f)
62
- }
63
-
64
- @Test
65
- fun show_usesDefaultShowAnimatorIfAnimationIsNotSpecifiedInOptions() {
66
- view.visibility = View.GONE
67
- uut.show(mock())
68
- assertThat(uut.showAnimator).isEqualTo(defaultShowAnimator)
69
- }
70
-
71
- @Test
72
- fun hide() {
73
- assertNotAnimating()
74
- val onAnimationEnd = mock<Runnable>()
75
- uut.hide(mock(), 0f, onAnimationEnd)
76
- assertAnimatingHide()
77
-
78
- uut.hideAnimator.end()
79
- verify(onAnimationEnd).run()
80
- }
81
-
82
- @Test
83
- fun hide_doesNothingIfAlreadyAnimatingHide() {
84
- uut.hide(mock())
85
-
86
- val animator = uut.hideAnimator
87
- uut.hide(mock())
88
- assertThat(animator).isEqualTo(uut.hideAnimator)
89
- }
90
-
91
- @Test
92
- fun hide_updatesTranslationDy() {
93
- val options = spy<AnimationOptions>()
94
- whenever(options.hasValue()).thenReturn(true)
95
-
96
- uut.hide(options, 123f)
97
- verify(options).setValueDy(View.TRANSLATION_Y, 0f, -123f)
98
- }
99
-
100
- @Test
101
- fun hide_usesDefaultHideAnimatorIfAnimationIsNotSpecifiedInOptions() {
102
- uut.hide(mock())
103
- assertThat(uut.hideAnimator).isEqualTo(defaultHideAnimator)
104
- }
105
-
106
- private fun assertNotAnimating() = assertThat(uut.isAnimatingHide() && uut.isAnimatingShow()).isFalse()
107
- private fun assertAnimatingShow() = assertThat(uut.isAnimatingShow() && !uut.isAnimatingHide()).isTrue()
108
- private fun assertAnimatingHide() = assertThat(uut.isAnimatingHide() && !uut.isAnimatingShow()).isTrue()
109
- }
@@ -1,36 +0,0 @@
1
- package com.reactnativenavigation.views.animations
2
-
3
- import android.animation.Animator
4
- import android.animation.ObjectAnimator
5
- import android.view.View
6
- import com.reactnativenavigation.utils.ViewUtils
7
-
8
- class DefaultViewAnimatorCreatorFake : ViewAnimatorCreator {
9
- private var showAnimator: Animator? = null
10
- private var hideAnimator: Animator? = null
11
-
12
- override fun getShowAnimator(view: View, hideDirection: BaseViewAnimator.HideDirection, translationStart: Float): Animator {
13
- if (showAnimator == null) {
14
- val direction = if (hideDirection == BaseViewAnimator.HideDirection.Up) 1 else -1
15
- showAnimator = ObjectAnimator.ofFloat(
16
- view,
17
- View.TRANSLATION_Y,
18
- direction * (-ViewUtils.getHeight(view) - translationStart),
19
- 0f)
20
- }
21
- return showAnimator!!
22
- }
23
-
24
- override fun getHideAnimator(view: View, hideDirection: BaseViewAnimator.HideDirection, additionalDy: Float): Animator {
25
- if (hideAnimator == null) {
26
- val direction = if (hideDirection == BaseViewAnimator.HideDirection.Up) -1 else 1
27
- hideAnimator = ObjectAnimator.ofFloat(
28
- view,
29
- View.TRANSLATION_Y,
30
- view.translationY,
31
- direction * (view.measuredHeight + additionalDy)
32
- )
33
- }
34
- return hideAnimator!!
35
- }
36
- }
@@ -1,101 +0,0 @@
1
- package com.reactnativenavigation.views.bottomtabs
2
-
3
- import android.app.Activity
4
- import android.graphics.Color
5
- import android.graphics.drawable.ColorDrawable
6
- import android.view.View
7
- import android.widget.LinearLayout
8
- import androidx.core.graphics.ColorUtils
9
- import org.mockito.kotlin.*
10
- import com.reactnativenavigation.BaseTest
11
- import org.assertj.core.api.Assertions.assertThat
12
- import org.junit.Test
13
- import kotlin.math.roundToInt
14
-
15
- class BottomTabsContainerTest : BaseTest() {
16
- private lateinit var uut: BottomTabsContainer
17
- private lateinit var bottomTabs: BottomTabs
18
-
19
- private lateinit var activity: Activity
20
-
21
- override fun beforeEach() {
22
- this.bottomTabs = mock()
23
- this.activity = newActivity()
24
- uut = spy(BottomTabsContainer(activity, bottomTabs))
25
- }
26
-
27
- @Test
28
- fun `init - should have only one child as vertical LinearLayout with border and bottom tabs`() {
29
- assertThat(uut.childCount).isEqualTo(1)
30
- val childAt = uut.getChildAt(0)
31
- assertThat(childAt).isInstanceOf(LinearLayout::class.java)
32
- val linearLayout = childAt as LinearLayout
33
- assertThat(linearLayout.getChildAt(0)).isInstanceOf(TopOutlineView::class.java)
34
- assertThat(linearLayout.getChildAt(1)).isInstanceOf(BottomTabs::class.java)
35
- }
36
-
37
- @Test
38
- fun `init - should have defaults set for shadow and topOutline`() {
39
- val topOutLineView = uut.topOutLineView
40
- val background = topOutLineView.background as? ColorDrawable
41
- assertThat(background?.color).isEqualTo(DEFAULT_TOP_OUTLINE_COLOR)
42
- assertThat(topOutLineView.layoutParams.height).isEqualTo(DEFAULT_TOP_OUTLINE_SIZE_PX)
43
- assertThat(uut.shadowColor).isEqualTo(DEFAULT_SHADOW_COLOR)
44
- assertThat(uut.shadowDistance).isEqualTo(DEFAULT_SHADOW_DISTANCE)
45
- assertThat(uut.shadowAngle).isEqualTo(DEFAULT_SHADOW_ANGLE)
46
-
47
- }
48
-
49
- @Test
50
- fun `should change top outline color, no visible changes`() {
51
- uut.setTopOutLineColor(Color.RED)
52
- val topOutLineView = uut.topOutLineView
53
- val background = topOutLineView.background as? ColorDrawable
54
- assertThat(background?.color).isEqualTo(Color.RED)
55
- assertThat(topOutLineView.visibility).isEqualTo(View.GONE)
56
- }
57
-
58
- @Test
59
- fun `should change top outline width, no visible changes`() {
60
- uut.setTopOutlineWidth(10)
61
- val topOutLineView = uut.topOutLineView
62
- assertThat(topOutLineView.layoutParams.height).isEqualTo(10)
63
- assertThat(topOutLineView.visibility).isEqualTo(View.GONE)
64
- }
65
-
66
- @Test
67
- fun `should show top outline when calling show`() {
68
- val topOutLineView = uut.topOutLineView
69
- assertThat(topOutLineView.visibility).isEqualTo(View.GONE)
70
-
71
- uut.showTopLine()
72
- assertThat(topOutLineView.visibility).isEqualTo(View.VISIBLE)
73
- }
74
-
75
- @Test
76
- fun `should clear top outline when calling show`() {
77
- val topOutLineView = uut.topOutLineView
78
- uut.showTopLine()
79
- assertThat(topOutLineView.visibility).isEqualTo(View.VISIBLE)
80
-
81
- uut.clearTopOutline()
82
- assertThat(topOutLineView.visibility).isEqualTo(View.GONE)
83
- }
84
-
85
- @Test
86
- fun `should update layout upon shadow color change`() {
87
- uut.shadowColor = Color.RED
88
- verify(uut, times(1)).requestLayout()
89
- assertThat(uut.shadowColor).isEqualTo(Color.RED)
90
- }
91
-
92
- @Test
93
- fun `should update color alpha upon changing opacity`() {
94
- uut.shadowColor = Color.RED
95
- assertThat(uut.shadowColor).isEqualTo(Color.RED)
96
- uut.setShadowOpacity(0.5f)
97
- assertThat(uut.shadowColor).isEqualTo(ColorUtils.setAlphaComponent(Color.RED, (0.5f * 0xFF).roundToInt()))
98
- }
99
-
100
-
101
- }
@@ -1,40 +0,0 @@
1
- package com.reactnativenavigation.views.bottomtabs
2
-
3
- import org.mockito.kotlin.never
4
- import org.mockito.kotlin.spy
5
- import org.mockito.kotlin.times
6
- import org.mockito.kotlin.verify
7
- import com.reactnativenavigation.BaseTest
8
- import org.junit.Test
9
-
10
- class BottomTabsTest : BaseTest() {
11
- private lateinit var uut: BottomTabs
12
-
13
- override fun beforeEach() {
14
- uut = spy(BottomTabs(newActivity()))
15
- }
16
-
17
- @Test
18
- fun createItems_triggersSuperCall() {
19
- uut.createItems()
20
- verify(uut).superCreateItems()
21
- }
22
-
23
- @Test
24
- fun createItems_superNotInvokedWhenDisabled() {
25
- uut.disableItemsCreation()
26
- uut.createItems()
27
- verify(uut, never()).superCreateItems()
28
- }
29
-
30
- @Test
31
- fun createItems_superInvokedAfterItemCreationIsEnabledOnlyOnce() {
32
- uut.disableItemsCreation()
33
- uut.createItems()
34
- verify(uut, never()).superCreateItems()
35
-
36
- uut.enableItemsCreation()
37
- uut.enableItemsCreation()
38
- verify(uut, times(1)).superCreateItems()
39
- }
40
- }