react-native-navigation 7.23.1 → 7.24.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/.buildkite/pipeline.yml +51 -11
- package/.nvmrc +1 -0
- package/Mock.d.ts +1 -0
- package/Mock.js +4 -0
- package/Mock.ts +1 -1
- package/README.md +0 -1
- package/jest.config.js +40 -0
- package/lib/{src/Mock → Mock}/Application.tsx +0 -0
- package/lib/{src/Mock → Mock}/ComponentProps.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/BottomTabs.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/ComponentScreen.tsx +13 -2
- package/lib/{src/Mock → Mock}/Components/LayoutComponent.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/Modals.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/NavigationButton.tsx +1 -1
- package/lib/{src/Mock → Mock}/Components/Overlays.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/Stack.tsx +0 -0
- package/lib/{src/Mock → Mock}/Components/TopBar.tsx +2 -2
- package/lib/{src/Mock → Mock}/Layouts/BottomTabsNode.ts +1 -1
- package/lib/{src/Mock → Mock}/Layouts/ComponentNode.ts +1 -1
- package/lib/{src/Mock → Mock}/Layouts/LayoutNodeFactory.ts +0 -0
- package/lib/{src/Mock → Mock}/Layouts/Node.ts +1 -1
- package/lib/{src/Mock → Mock}/Layouts/ParentNode.ts +2 -2
- package/lib/{src/Mock → Mock}/Layouts/StackNode.ts +0 -0
- package/lib/{src/Mock → Mock}/Stores/EventsStore.ts +10 -2
- package/lib/{src/Mock → Mock}/Stores/LayoutStore.ts +3 -2
- package/lib/{src/Mock → Mock}/connect.ts +0 -0
- package/lib/Mock/constants.d.ts +2 -0
- package/lib/Mock/constants.js +5 -0
- package/lib/{src/Mock → Mock}/constants.ts +0 -0
- package/lib/Mock/index.d.ts +3 -0
- package/lib/Mock/index.js +14 -0
- package/lib/{src/Mock → Mock}/index.ts +0 -0
- package/lib/{src/Mock → Mock}/mocks/AppRegistryService.ts +0 -0
- package/lib/{src/Mock → Mock}/mocks/NativeCommandsSender.tsx +1 -1
- package/lib/{src/Mock → Mock}/mocks/NativeEventsReceiver.ts +7 -4
- package/lib/android/app/build.gradle +23 -21
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/FontOptions.kt +2 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/HardwareBackButtonOptions.kt +35 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutFactory.java +32 -17
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/Options.java +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/options/parsers/TypefaceLoader.kt +16 -10
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationModule.java +5 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalFrameLayout.kt +3 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalViewManager.kt +11 -8
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +168 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +5 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +42 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +12 -16
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +19 -11
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewController.java +2 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenter.java +6 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManager.kt +8 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +15 -7
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +127 -138
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +183 -22
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonController.kt +25 -4
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonPresenter.kt +9 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/button/ButtonSpan.kt +1 -1
- package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +52 -71
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/component/ComponentLayout.java +2 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ReactImageMatrixAnimator.kt +2 -3
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/TopBar.java +1 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/ButtonBar.kt +7 -12
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleAndButtonsContainer.kt +0 -2
- package/lib/android/app/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleSubTitleLayout.kt +0 -7
- package/lib/android/app/src/reactNative51/java/com/reactnativenavigation/react/NavigationReactNativeHost.java +2 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java +7 -6
- package/lib/android/app/src/test/java/com/reactnativenavigation/TestActivity.java +5 -0
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/ImageLoaderMock.kt +5 -4
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/Mocks.kt +3 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/mocks/TypefaceLoaderMock.kt +5 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/options/TransitionAnimationOptionsTest.kt +2 -3
- package/lib/android/app/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +25 -10
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +25 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/MotionEventTest.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/{TitleAndButtonsMeasurer.kt → TitleAndButtonsMeasurerTest.kt} +2 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiThreadTest.java +2 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/utils/UiUtilsTest.java +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +572 -0
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/child/ChildControllerTest.java +2 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +5 -5
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/fakes/FakeParentController.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +7 -3
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +17 -4
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +2 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +5 -5
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +1 -0
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +4 -0
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +6 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +13 -8
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +58 -51
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +219 -41
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +4 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +2 -2
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/animations/BaseViewAnimatorTest.kt +4 -4
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsContainerTest.kt +1 -1
- package/lib/android/app/src/test/java/com/reactnativenavigation/views/bottomtabs/BottomTabsTest.kt +4 -4
- package/lib/dist/Mock/Application.js +2 -2
- package/lib/dist/Mock/Components/BottomTabs.js +2 -2
- package/lib/dist/Mock/Components/ComponentScreen.js +15 -5
- package/lib/dist/Mock/Components/LayoutComponent.js +3 -2
- package/lib/dist/Mock/Components/Modals.js +2 -2
- package/lib/dist/Mock/Components/NavigationButton.d.ts +1 -1
- package/lib/dist/Mock/Components/NavigationButton.js +8 -10
- package/lib/dist/Mock/Components/Overlays.js +2 -2
- package/lib/dist/Mock/Components/Stack.js +2 -2
- package/lib/dist/Mock/Components/TopBar.d.ts +2 -2
- package/lib/dist/Mock/Components/TopBar.js +7 -6
- package/lib/dist/Mock/Layouts/BottomTabsNode.d.ts +1 -1
- package/lib/dist/Mock/Layouts/BottomTabsNode.js +3 -3
- package/lib/dist/Mock/Layouts/ComponentNode.d.ts +1 -1
- package/lib/dist/Mock/Layouts/ComponentNode.js +4 -4
- package/lib/dist/Mock/Layouts/LayoutNodeFactory.js +3 -3
- package/lib/dist/Mock/Layouts/Node.d.ts +1 -1
- package/lib/dist/Mock/Layouts/Node.js +5 -0
- package/lib/dist/Mock/Layouts/ParentNode.d.ts +2 -2
- package/lib/dist/Mock/Layouts/ParentNode.js +4 -3
- package/lib/dist/Mock/Layouts/StackNode.js +1 -1
- package/lib/dist/Mock/Stores/EventsStore.d.ts +5 -2
- package/lib/dist/Mock/Stores/EventsStore.js +7 -0
- package/lib/dist/Mock/Stores/LayoutStore.js +6 -3
- package/lib/dist/Mock/connect.js +1 -1
- package/lib/dist/Mock/index.js +1 -1
- package/lib/dist/Mock/mocks/NativeCommandsSender.d.ts +1 -1
- package/lib/dist/Mock/mocks/NativeCommandsSender.js +2 -2
- package/lib/dist/Mock/mocks/NativeEventsReceiver.d.ts +3 -3
- package/lib/dist/Mock/mocks/NativeEventsReceiver.js +6 -3
- package/lib/dist/{Navigation.d.ts → src/Navigation.d.ts} +0 -0
- package/lib/dist/{Navigation.js → src/Navigation.js} +19 -3
- package/lib/dist/{NavigationDelegate.d.ts → src/NavigationDelegate.d.ts} +0 -0
- package/lib/dist/{NavigationDelegate.js → src/NavigationDelegate.js} +1 -0
- package/lib/dist/{adapters → src/adapters}/AppRegistryService.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/AppRegistryService.js +0 -0
- package/lib/dist/{adapters → src/adapters}/AssetResolver.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/AssetResolver.js +0 -0
- package/lib/dist/src/adapters/ColorService.d.ts +3 -0
- package/lib/dist/{adapters → src/adapters}/ColorService.js +1 -1
- package/lib/dist/{adapters → src/adapters}/Constants.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/Constants.js +10 -6
- package/lib/dist/{adapters → src/adapters}/NativeCommandsSender.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/NativeCommandsSender.js +1 -0
- package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.js +1 -0
- package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.mock.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/NativeEventsReceiver.mock.js +0 -0
- package/lib/dist/{adapters → src/adapters}/TouchablePreview.d.ts +0 -0
- package/lib/dist/src/adapters/TouchablePreview.js +89 -0
- package/lib/dist/{adapters → src/adapters}/UniqueIdProvider.d.ts +0 -0
- package/lib/dist/{adapters → src/adapters}/UniqueIdProvider.js +2 -2
- package/lib/dist/{commands → src/commands}/Commands.d.ts +0 -0
- package/lib/dist/{commands → src/commands}/Commands.js +24 -10
- package/lib/dist/{commands → src/commands}/Deprecations.d.ts +0 -0
- package/lib/dist/src/commands/Deprecations.js +80 -0
- package/lib/dist/{commands → src/commands}/LayoutTreeCrawler.d.ts +0 -0
- package/lib/dist/{commands → src/commands}/LayoutTreeCrawler.js +4 -2
- package/lib/dist/{commands → src/commands}/LayoutTreeParser.d.ts +0 -0
- package/lib/dist/{commands → src/commands}/LayoutTreeParser.js +1 -0
- package/lib/dist/{commands → src/commands}/LayoutType.d.ts +0 -0
- package/lib/dist/{commands → src/commands}/LayoutType.js +0 -0
- package/lib/dist/{commands → src/commands}/OptionsCrawler.d.ts +0 -0
- package/lib/dist/{commands → src/commands}/OptionsCrawler.js +6 -4
- package/lib/dist/{commands → src/commands}/OptionsProcessor.d.ts +1 -1
- package/lib/dist/{commands → src/commands}/OptionsProcessor.js +50 -42
- package/lib/dist/{components → src/components}/ComponentRegistry.d.ts +0 -0
- package/lib/dist/{components → src/components}/ComponentRegistry.js +4 -0
- package/lib/dist/{components → src/components}/ComponentWrapper.d.ts +0 -0
- package/lib/dist/{components → src/components}/ComponentWrapper.js +17 -17
- package/lib/dist/{components → src/components}/Modal.d.ts +0 -0
- package/lib/dist/{components → src/components}/Modal.js +8 -8
- package/lib/dist/{components → src/components}/Store.d.ts +2 -0
- package/lib/dist/{components → src/components}/Store.js +13 -6
- package/lib/dist/{events → src/events}/CommandsObserver.d.ts +0 -0
- package/lib/dist/{events → src/events}/CommandsObserver.js +2 -1
- package/lib/dist/{events → src/events}/ComponentEventsObserver.d.ts +4 -2
- package/lib/dist/{events → src/events}/ComponentEventsObserver.js +16 -14
- package/lib/dist/{events → src/events}/EventsRegistry.d.ts +2 -2
- package/lib/dist/{events → src/events}/EventsRegistry.js +3 -0
- package/lib/dist/{index.d.ts → src/index.d.ts} +0 -0
- package/lib/dist/src/index.js +22 -0
- package/lib/dist/{interfaces → src/interfaces}/CommandName.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/CommandName.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/ComponentEvents.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/ComponentEvents.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/EventSubscription.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/EventSubscription.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Events.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Events.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Layout.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Layout.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponent.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponent.js +8 -1
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponentListener.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponentListener.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponentProps.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationComponentProps.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationFunctionComponent.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/NavigationFunctionComponent.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Options.d.ts +9 -0
- package/lib/dist/{interfaces → src/interfaces}/Options.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/ProcessorSubscription.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/ProcessorSubscription.js +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Processors.d.ts +0 -0
- package/lib/dist/{interfaces → src/interfaces}/Processors.js +0 -0
- package/lib/dist/{processors → src/processors}/LayoutProcessor.d.ts +0 -0
- package/lib/dist/{processors → src/processors}/LayoutProcessor.js +1 -0
- package/lib/dist/{processors → src/processors}/LayoutProcessorsStore.d.ts +0 -0
- package/lib/dist/{processors → src/processors}/LayoutProcessorsStore.js +1 -3
- package/lib/dist/{processors → src/processors}/OptionProcessorsStore.d.ts +0 -0
- package/lib/dist/{processors → src/processors}/OptionProcessorsStore.js +1 -3
- package/lib/dist/{types.d.ts → src/types.d.ts} +0 -0
- package/lib/dist/{types.js → src/types.js} +0 -0
- package/lib/ios/AnimationObserver.h +17 -0
- package/lib/ios/AnimationObserver.m +41 -0
- package/lib/ios/BottomTabPresenter.h +0 -3
- package/lib/ios/BottomTabPresenter.m +0 -8
- package/lib/ios/RNNAssert.h +2 -2
- package/lib/ios/RNNBasePresenter.h +0 -4
- package/lib/ios/RNNBasePresenter.m +0 -12
- package/lib/ios/RNNBottomTabOptions.m +2 -1
- package/lib/ios/RNNBottomTabsController.m +8 -8
- package/lib/ios/RNNBridgeManager.mm +0 -1
- package/lib/ios/RNNButtonBuilder.m +2 -0
- package/lib/ios/RNNButtonOptions.h +1 -0
- package/lib/ios/RNNButtonOptions.m +4 -0
- package/lib/ios/RNNCommandsHandler.m +15 -8
- package/lib/ios/RNNComponentPresenter.m +0 -4
- package/lib/ios/RNNComponentViewController.m +2 -4
- package/lib/ios/RNNDotIndicatorPresenter.m +2 -1
- package/lib/ios/RNNExternalViewController.m +2 -4
- package/lib/ios/RNNModalManager.h +2 -1
- package/lib/ios/RNNModalManager.m +12 -21
- package/lib/ios/RNNSegmentedControl.h +1 -1
- package/lib/ios/RNNSideMenuChildVC.m +0 -4
- package/lib/ios/RNNSideMenuController.m +0 -4
- package/lib/ios/RNNSplitViewController.m +0 -4
- package/lib/ios/RNNStackController.m +0 -4
- package/lib/ios/RNNStackPresenter.m +3 -0
- package/lib/ios/RNNSwizzles.m +20 -0
- package/lib/ios/RNNTabBarItemCreator.m +3 -2
- package/lib/ios/RNNUIBarButtonItem.h +2 -0
- package/lib/ios/RNNUIBarButtonItem.m +17 -0
- package/lib/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +8 -0
- package/lib/ios/TopBarPresenter.m +8 -4
- package/lib/ios/UIViewController+RNNOptions.m +1 -1
- package/lib/src/commands/Commands.ts +6 -1
- package/lib/src/commands/LayoutTreeCrawler.ts +2 -2
- package/lib/src/commands/OptionsCrawler.ts +2 -1
- package/lib/src/commands/OptionsProcessor.ts +15 -13
- package/lib/src/components/Store.ts +9 -0
- package/lib/src/events/ComponentEventsObserver.ts +5 -1
- package/lib/src/events/EventsRegistry.ts +2 -1
- package/lib/src/interfaces/Options.ts +10 -0
- package/package.json +19 -60
- package/tsconfig.mocks.json +7 -0
- package/lib/android/app/src/main/java/com/reactnativenavigation/utils/StatusBarUtils.java +0 -41
- package/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java +0 -511
- package/lib/dist/adapters/ColorService.d.ts +0 -3
- package/lib/dist/adapters/TouchablePreview.js +0 -91
- package/lib/dist/commands/Deprecations.js +0 -82
- package/lib/dist/index.js +0 -22
|
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.never;
|
|
|
34
34
|
import static org.mockito.Mockito.spy;
|
|
35
35
|
import static org.mockito.Mockito.times;
|
|
36
36
|
import static org.mockito.Mockito.verify;
|
|
37
|
-
import static org.mockito.Mockito.
|
|
37
|
+
import static org.mockito.Mockito.verifyNoInteractions;
|
|
38
38
|
|
|
39
39
|
public class ModalPresenterTest extends BaseTest {
|
|
40
40
|
private static final String MODAL_ID_1 = "modalId1";
|
|
@@ -50,6 +50,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
50
50
|
|
|
51
51
|
@Override
|
|
52
52
|
public void beforeEach() {
|
|
53
|
+
super.beforeEach();
|
|
53
54
|
Activity activity = newActivity();
|
|
54
55
|
ChildControllersRegistry childRegistry = new ChildControllersRegistry();
|
|
55
56
|
|
|
@@ -108,7 +109,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
108
109
|
defaultOptions.animations.showModal = TransitionAnimationOptionsKt.parseTransitionAnimationOptions(disabledShowModalAnimation);
|
|
109
110
|
uut.setDefaultOptions(defaultOptions);
|
|
110
111
|
uut.showModal(modal1, root, new CommandListenerAdapter());
|
|
111
|
-
|
|
112
|
+
verifyNoInteractions(animator);
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
@Test
|
|
@@ -162,7 +163,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
162
163
|
modal1.options.animations.showModal.setWaitForRender(new Bool(true));
|
|
163
164
|
uut.showModal(modal1, root, new CommandListenerAdapter());
|
|
164
165
|
verify(modal1).addOnAppearedListener(any());
|
|
165
|
-
|
|
166
|
+
verifyNoInteractions(animator);
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
@Test
|
|
@@ -210,6 +211,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
210
211
|
uut.setRootLayout(spy);
|
|
211
212
|
|
|
212
213
|
uut.showModal(modal1, root, new CommandListenerAdapter());
|
|
214
|
+
idleMainLooper();
|
|
213
215
|
uut.dismissModal(modal1, root, root, new CommandListenerAdapter());
|
|
214
216
|
|
|
215
217
|
verify(spy).addView(root.getView(), 0);
|
|
@@ -237,6 +239,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
237
239
|
verify(modal1).onViewWillAppear();
|
|
238
240
|
|
|
239
241
|
uut.showModal(modal2, modal1, new CommandListenerAdapter());
|
|
242
|
+
idleMainLooper();
|
|
240
243
|
assertThat(modal1.getView().getParent()).isNull();
|
|
241
244
|
|
|
242
245
|
Shadows.shadowOf(Looper.getMainLooper()).idle();
|
|
@@ -253,6 +256,7 @@ public class ModalPresenterTest extends BaseTest {
|
|
|
253
256
|
|
|
254
257
|
uut.showModal(modal1, root, new CommandListenerAdapter());
|
|
255
258
|
uut.showModal(modal2, modal1, new CommandListenerAdapter());
|
|
259
|
+
idleMainLooper();
|
|
256
260
|
assertThat(modal1.getView().getParent()).isNull();
|
|
257
261
|
assertThat(root.getView().getParent()).isNull();
|
|
258
262
|
|
|
@@ -13,7 +13,7 @@ import com.reactnativenavigation.react.events.EventEmitter;
|
|
|
13
13
|
import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
|
|
14
14
|
import com.reactnativenavigation.viewcontrollers.stack.StackController;
|
|
15
15
|
import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController;
|
|
16
|
-
|
|
16
|
+
import com.reactnativenavigation.options.TransitionAnimationOptions;
|
|
17
17
|
import org.junit.Test;
|
|
18
18
|
import org.mockito.Mockito;
|
|
19
19
|
|
|
@@ -30,7 +30,8 @@ import static org.mockito.Mockito.never;
|
|
|
30
30
|
import static org.mockito.Mockito.spy;
|
|
31
31
|
import static org.mockito.Mockito.times;
|
|
32
32
|
import static org.mockito.Mockito.verify;
|
|
33
|
-
import static org.mockito.Mockito.
|
|
33
|
+
import static org.mockito.Mockito.verifyNoInteractions;
|
|
34
|
+
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|
34
35
|
import static org.mockito.Mockito.when;
|
|
35
36
|
|
|
36
37
|
public class ModalStackTest extends BaseTest {
|
|
@@ -54,6 +55,7 @@ public class ModalStackTest extends BaseTest {
|
|
|
54
55
|
|
|
55
56
|
@Override
|
|
56
57
|
public void beforeEach() {
|
|
58
|
+
super.beforeEach();
|
|
57
59
|
activity = newActivity();
|
|
58
60
|
childRegistry = new ChildControllersRegistry();
|
|
59
61
|
root = new SimpleViewController(activity, childRegistry, "root", new Options());
|
|
@@ -81,6 +83,16 @@ public class ModalStackTest extends BaseTest {
|
|
|
81
83
|
.build();
|
|
82
84
|
}
|
|
83
85
|
|
|
86
|
+
@Test
|
|
87
|
+
public void showModal_DidAppearEventShouldWaitForReactViewToBeShown(){
|
|
88
|
+
CommandListener listener = spy(new CommandListenerAdapter());
|
|
89
|
+
uut.showModal(modal1, root, listener);
|
|
90
|
+
verify(modal1).addOnAppearedListener(any());
|
|
91
|
+
verify(listener).onSuccess(modal1.getId());
|
|
92
|
+
idleMainLooper();
|
|
93
|
+
verify(modal1).onViewDidAppear();
|
|
94
|
+
}
|
|
95
|
+
|
|
84
96
|
@Test
|
|
85
97
|
public void modalRefIsSaved() {
|
|
86
98
|
disableShowModalAnimation(modal1);
|
|
@@ -94,6 +106,7 @@ public class ModalStackTest extends BaseTest {
|
|
|
94
106
|
public void showModal() {
|
|
95
107
|
CommandListener listener = spy(new CommandListenerAdapter());
|
|
96
108
|
uut.showModal(modal1, root, listener);
|
|
109
|
+
idleMainLooper();
|
|
97
110
|
verify(listener).onSuccess(modal1.getId());
|
|
98
111
|
verify(modal1).onViewDidAppear();
|
|
99
112
|
assertThat(uut.size()).isOne();
|
|
@@ -140,7 +153,7 @@ public class ModalStackTest extends BaseTest {
|
|
|
140
153
|
uut.dismissModal(MODAL_ID_1, root, listener);
|
|
141
154
|
verify(onModalWillDismiss, times(0)).run();
|
|
142
155
|
verify(listener, times(1)).onError(anyString());
|
|
143
|
-
|
|
156
|
+
verifyNoMoreInteractions(listener);
|
|
144
157
|
}
|
|
145
158
|
|
|
146
159
|
@Test
|
|
@@ -176,7 +189,7 @@ public class ModalStackTest extends BaseTest {
|
|
|
176
189
|
});
|
|
177
190
|
uut.dismissAllModals(root, Options.EMPTY, listener);
|
|
178
191
|
verify(listener, times(1)).onSuccess(anyString());
|
|
179
|
-
|
|
192
|
+
verifyNoMoreInteractions(listener);
|
|
180
193
|
}
|
|
181
194
|
|
|
182
195
|
@Test
|
|
@@ -507,7 +507,7 @@ public class NavigatorTest extends BaseTest {
|
|
|
507
507
|
StackController stack2 = newStack(child2, child3, child4);
|
|
508
508
|
BottomTabsController bottomTabsController = newTabs(Arrays.asList(stack1, stack2));
|
|
509
509
|
uut.setRoot(bottomTabsController, new CommandListenerAdapter(), reactInstanceManager);
|
|
510
|
-
|
|
510
|
+
idleMainLooper();
|
|
511
511
|
CommandListenerAdapter listener = spy(new CommandListenerAdapter() {
|
|
512
512
|
@Override
|
|
513
513
|
public void onSuccess(String childId) {
|
|
@@ -670,7 +670,7 @@ public class NavigatorTest extends BaseTest {
|
|
|
670
670
|
final StackController stack2 = newStack(child2, child3);
|
|
671
671
|
BottomTabsController bottomTabsController = newTabs(Arrays.asList(stack1, stack2));
|
|
672
672
|
uut.setRoot(bottomTabsController, new CommandListenerAdapter(), reactInstanceManager);
|
|
673
|
-
|
|
673
|
+
idleMainLooper();
|
|
674
674
|
CommandListenerAdapter listener = spy(new CommandListenerAdapter() {
|
|
675
675
|
@Override
|
|
676
676
|
public void onSuccess(String childId) {
|
|
@@ -3,9 +3,6 @@ package com.reactnativenavigation.viewcontrollers.navigator
|
|
|
3
3
|
import android.app.Activity
|
|
4
4
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
|
5
5
|
import com.facebook.react.ReactInstanceManager
|
|
6
|
-
import com.nhaarman.mockitokotlin2.any
|
|
7
|
-
import com.nhaarman.mockitokotlin2.eq
|
|
8
|
-
import com.nhaarman.mockitokotlin2.never
|
|
9
6
|
import com.reactnativenavigation.BaseTest
|
|
10
7
|
import com.reactnativenavigation.TestActivity
|
|
11
8
|
import com.reactnativenavigation.hierarchy.root.RootAnimator
|
|
@@ -22,6 +19,9 @@ import org.assertj.core.api.Java6Assertions
|
|
|
22
19
|
import org.junit.Test
|
|
23
20
|
import org.mockito.ArgumentCaptor
|
|
24
21
|
import org.mockito.Mockito
|
|
22
|
+
import org.mockito.kotlin.any
|
|
23
|
+
import org.mockito.kotlin.eq
|
|
24
|
+
import org.mockito.kotlin.never
|
|
25
25
|
import org.robolectric.android.controller.ActivityController
|
|
26
26
|
|
|
27
27
|
class RootPresenterTest : BaseTest() {
|
|
@@ -76,7 +76,7 @@ class RootPresenterTest : BaseTest() {
|
|
|
76
76
|
fun setRoot_doesNotAnimateByDefault() {
|
|
77
77
|
val listener = Mockito.spy(CommandListenerAdapter())
|
|
78
78
|
uut.setRoot(root, null, defaultOptions, listener, reactInstanceManager)
|
|
79
|
-
Mockito.
|
|
79
|
+
Mockito.verifyNoInteractions(animator)
|
|
80
80
|
Mockito.verify(listener).onSuccess(root.id)
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -210,7 +210,7 @@ class RootPresenterTest : BaseTest() {
|
|
|
210
210
|
uut.setRoot(spy, null, defaultOptions, listener, reactInstanceManager)
|
|
211
211
|
Mockito.verify(spy).addOnAppearedListener(any())
|
|
212
212
|
Java6Assertions.assertThat(spy.view.alpha).isZero()
|
|
213
|
-
Mockito.
|
|
213
|
+
Mockito.verifyNoInteractions(listener)
|
|
214
214
|
spy.onViewWillAppear()
|
|
215
215
|
idleMainLooper()
|
|
216
216
|
Java6Assertions.assertThat(spy.view.alpha).isOne()
|
|
@@ -264,6 +264,8 @@ public class ParentControllerTest extends BaseTest {
|
|
|
264
264
|
@Test
|
|
265
265
|
public void getTopInsetForChild() {
|
|
266
266
|
ParentController<?> parent = Mockito.mock(ParentController.class);
|
|
267
|
+
Mockito.when(parent.resolveChildOptions(uut)).thenReturn(Options.EMPTY);
|
|
268
|
+
|
|
267
269
|
when(parent.getTopInset(any())).thenReturn(123);
|
|
268
270
|
uut.setParentController(parent);
|
|
269
271
|
|
|
@@ -280,6 +282,8 @@ public class ParentControllerTest extends BaseTest {
|
|
|
280
282
|
@Test
|
|
281
283
|
public void getBottomInsetForChild() {
|
|
282
284
|
ParentController<?> parent = Mockito.mock(ParentController.class);
|
|
285
|
+
Mockito.when(parent.resolveChildOptions(uut)).thenReturn(Options.EMPTY);
|
|
286
|
+
|
|
283
287
|
when(parent.getBottomInset(any())).thenReturn(123);
|
|
284
288
|
uut.setParentController(parent);
|
|
285
289
|
|
|
@@ -2,6 +2,7 @@ package com.reactnativenavigation.viewcontrollers.sidemenu;
|
|
|
2
2
|
|
|
3
3
|
import android.app.Activity;
|
|
4
4
|
import android.content.res.Resources;
|
|
5
|
+
import android.graphics.Path;
|
|
5
6
|
import android.util.TypedValue;
|
|
6
7
|
import android.view.Gravity;
|
|
7
8
|
import android.view.View;
|
|
@@ -55,6 +56,7 @@ public class SideMenuControllerTest extends BaseTest {
|
|
|
55
56
|
|
|
56
57
|
@Override
|
|
57
58
|
public void beforeEach() {
|
|
59
|
+
super.beforeEach();
|
|
58
60
|
activity = createActivity();
|
|
59
61
|
|
|
60
62
|
childRegistry = new ChildControllersRegistry();
|
|
@@ -72,6 +74,7 @@ public class SideMenuControllerTest extends BaseTest {
|
|
|
72
74
|
};
|
|
73
75
|
uut.setCenterController(center);
|
|
74
76
|
parent = mock(ParentController.class);
|
|
77
|
+
Mockito.when(parent.resolveChildOptions(uut)).thenReturn(Options.EMPTY);
|
|
75
78
|
uut.setParentController(parent);
|
|
76
79
|
}
|
|
77
80
|
|
|
@@ -118,12 +121,12 @@ public class SideMenuControllerTest extends BaseTest {
|
|
|
118
121
|
|
|
119
122
|
@Test
|
|
120
123
|
public void onViewAppeared() {
|
|
121
|
-
ViewController
|
|
124
|
+
ViewController left = spy(this.left);
|
|
122
125
|
ViewGroup leftView = spy(left.getView());
|
|
123
126
|
when(left.findController(leftView)).thenReturn(left);
|
|
124
127
|
Mockito.doReturn(leftView).when(left).getView();
|
|
125
128
|
|
|
126
|
-
ViewController
|
|
129
|
+
ViewController right = spy(this.right);
|
|
127
130
|
ViewGroup rightView = spy(right.getView());
|
|
128
131
|
when(right.findController(rightView)).thenReturn(right);
|
|
129
132
|
Mockito.doReturn(rightView).when(right).getView();
|
|
@@ -369,6 +372,7 @@ public class SideMenuControllerTest extends BaseTest {
|
|
|
369
372
|
@Test
|
|
370
373
|
public void onMeasureChild_topInsetsAreApplied() {
|
|
371
374
|
setLeftRight(spy(left), spy(right));
|
|
375
|
+
idleMainLooper();
|
|
372
376
|
uut.applyTopInset();
|
|
373
377
|
forEach(uut.getChildControllers(), c -> verify(c).applyTopInset());
|
|
374
378
|
}
|
|
@@ -4,7 +4,7 @@ import android.animation.AnimatorSet
|
|
|
4
4
|
import android.animation.ObjectAnimator
|
|
5
5
|
import android.app.Activity
|
|
6
6
|
import android.widget.FrameLayout
|
|
7
|
-
import
|
|
7
|
+
import org.mockito.kotlin.*
|
|
8
8
|
import com.reactnativenavigation.BaseTest
|
|
9
9
|
import com.reactnativenavigation.mocks.Mocks
|
|
10
10
|
import com.reactnativenavigation.mocks.SimpleViewController
|
|
@@ -6,7 +6,7 @@ import android.content.Context
|
|
|
6
6
|
import android.view.View
|
|
7
7
|
import android.widget.FrameLayout
|
|
8
8
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
|
9
|
-
import
|
|
9
|
+
import org.mockito.kotlin.*
|
|
10
10
|
import com.reactnativenavigation.BaseTest
|
|
11
11
|
import com.reactnativenavigation.TestUtils
|
|
12
12
|
import com.reactnativenavigation.mocks.*
|
|
@@ -61,7 +61,7 @@ class StackControllerTest : BaseTest() {
|
|
|
61
61
|
eventEmitter = mock()
|
|
62
62
|
backButtonHelper = spy(BackButtonHelper())
|
|
63
63
|
activity = newActivity()
|
|
64
|
-
|
|
64
|
+
SystemUiUtils.saveStatusBarHeight(63)
|
|
65
65
|
animator = spy(StackAnimator(activity))
|
|
66
66
|
childRegistry = ChildControllersRegistry()
|
|
67
67
|
presenter = spy(StackPresenter(
|
|
@@ -197,7 +197,7 @@ class StackControllerTest : BaseTest() {
|
|
|
197
197
|
fun setRoot_pushDuringSetRootAnimationShouldNotCrash() {
|
|
198
198
|
uut.push(child1, CommandListenerAdapter())
|
|
199
199
|
uut.push(child2, CommandListenerAdapter())
|
|
200
|
-
|
|
200
|
+
idleMainLooper()
|
|
201
201
|
uut.setRoot(listOf(child1), CommandListenerAdapter())
|
|
202
202
|
uut.push(child3, CommandListenerAdapter())
|
|
203
203
|
assertThat(uut.currentChild).isEqualTo(child3)
|
|
@@ -281,6 +281,7 @@ class StackControllerTest : BaseTest() {
|
|
|
281
281
|
disablePushAnimation(child1, child2)
|
|
282
282
|
uut.push(child1, CommandListenerAdapter()) // Initialize stack with a child
|
|
283
283
|
uut.push(child2, CommandListenerAdapter())
|
|
284
|
+
idleMainLooper()
|
|
284
285
|
verify(child2).onViewDidAppear()
|
|
285
286
|
}
|
|
286
287
|
|
|
@@ -608,8 +609,9 @@ class StackControllerTest : BaseTest() {
|
|
|
608
609
|
assertNotChildOf(uut.view, child1.view)
|
|
609
610
|
uut.push(child1, CommandListenerAdapter())
|
|
610
611
|
assertIsChild(uut.view, child1.view)
|
|
611
|
-
|
|
612
|
+
idleMainLooper()
|
|
612
613
|
uut.push(child2, CommandListenerAdapter())
|
|
614
|
+
idleMainLooper()
|
|
613
615
|
assertIsChild(uut.view, child2)
|
|
614
616
|
assertNotChildOf(uut.view, child1)
|
|
615
617
|
}
|
|
@@ -663,7 +665,7 @@ class StackControllerTest : BaseTest() {
|
|
|
663
665
|
val child1View: View = child1.view
|
|
664
666
|
uut.push(child1, CommandListenerAdapter())
|
|
665
667
|
uut.push(child2, CommandListenerAdapter())
|
|
666
|
-
|
|
668
|
+
idleMainLooper()
|
|
667
669
|
assertIsChild(uut.view, child2View)
|
|
668
670
|
assertNotChildOf(uut.view, child1View)
|
|
669
671
|
uut.pop(Options.EMPTY, CommandListenerAdapter())
|
|
@@ -715,7 +717,7 @@ class StackControllerTest : BaseTest() {
|
|
|
715
717
|
uut.push(child2, CommandListenerAdapter())
|
|
716
718
|
uut.push(child3, CommandListenerAdapter())
|
|
717
719
|
uut.push(child4, CommandListenerAdapter())
|
|
718
|
-
|
|
720
|
+
idleMainLooper()
|
|
719
721
|
uut.popTo(child2, Options.EMPTY, CommandListenerAdapter())
|
|
720
722
|
verify(animator, never()).pop(any(), eq(child1), any(), any(), any())
|
|
721
723
|
verify(animator, never()).pop(any(), eq(child2), any(), any(), any())
|
|
@@ -729,6 +731,7 @@ class StackControllerTest : BaseTest() {
|
|
|
729
731
|
uut.push(child1, mock())
|
|
730
732
|
uut.push(child2, mock())
|
|
731
733
|
uut.push(child3, mock())
|
|
734
|
+
idleMainLooper()
|
|
732
735
|
uut.popTo(child1, Options.EMPTY, mock())
|
|
733
736
|
animator.endPushAnimation(child3)
|
|
734
737
|
assertContainsOnlyId(child1.id)
|
|
@@ -759,8 +762,8 @@ class StackControllerTest : BaseTest() {
|
|
|
759
762
|
disablePushAnimation(child1, child2, child3)
|
|
760
763
|
uut.push(child1, CommandListenerAdapter())
|
|
761
764
|
uut.push(child2, CommandListenerAdapter())
|
|
762
|
-
|
|
763
765
|
uut.push(child3, CommandListenerAdapter())
|
|
766
|
+
idleMainLooper()
|
|
764
767
|
uut.popToRoot(Options.EMPTY, object : CommandListenerAdapter() {
|
|
765
768
|
override fun onSuccess(childId: String) {
|
|
766
769
|
verify(animator).pop(eq(child1), eq(child3), any(), any(), any())
|
|
@@ -776,6 +779,7 @@ class StackControllerTest : BaseTest() {
|
|
|
776
779
|
uut.push(child1, CommandListenerAdapter())
|
|
777
780
|
uut.push(child2, CommandListenerAdapter())
|
|
778
781
|
uut.push(child3, CommandListenerAdapter())
|
|
782
|
+
idleMainLooper()
|
|
779
783
|
uut.popToRoot(Options.EMPTY, object : CommandListenerAdapter() {
|
|
780
784
|
override fun onSuccess(childId: String) {
|
|
781
785
|
verify(child1, never()).destroy()
|
|
@@ -811,6 +815,7 @@ class StackControllerTest : BaseTest() {
|
|
|
811
815
|
uut.push(child1, mock())
|
|
812
816
|
uut.push(child2, mock())
|
|
813
817
|
uut.push(child3, mock())
|
|
818
|
+
idleMainLooper()
|
|
814
819
|
uut.popToRoot(Options.EMPTY, mock())
|
|
815
820
|
animator.endPushAnimation(child3)
|
|
816
821
|
assertContainsOnlyId(child1.id)
|
|
@@ -1084,7 +1089,7 @@ class StackControllerTest : BaseTest() {
|
|
|
1084
1089
|
disablePushAnimation(child1)
|
|
1085
1090
|
uut.push(child1, CommandListenerAdapter())
|
|
1086
1091
|
ShadowLooper.idleMainLooper()
|
|
1087
|
-
assertThat(ViewUtils.topMargin(uut.topBar)).isEqualTo(
|
|
1092
|
+
assertThat(ViewUtils.topMargin(uut.topBar)).isEqualTo(SystemUiUtils.getStatusBarHeight(activity))
|
|
1088
1093
|
}
|
|
1089
1094
|
|
|
1090
1095
|
@Test
|
|
@@ -7,7 +7,7 @@ import android.graphics.Color
|
|
|
7
7
|
import android.graphics.Typeface
|
|
8
8
|
import android.view.View
|
|
9
9
|
import android.view.ViewGroup
|
|
10
|
-
import
|
|
10
|
+
import org.mockito.kotlin.*
|
|
11
11
|
import com.reactnativenavigation.BaseTest
|
|
12
12
|
import com.reactnativenavigation.TestUtils
|
|
13
13
|
import com.reactnativenavigation.fakes.IconResolverFake
|
|
@@ -17,7 +17,10 @@ import com.reactnativenavigation.options.params.*
|
|
|
17
17
|
import com.reactnativenavigation.options.params.Number
|
|
18
18
|
import com.reactnativenavigation.options.parsers.TypefaceLoader
|
|
19
19
|
import com.reactnativenavigation.react.CommandListenerAdapter
|
|
20
|
-
import com.reactnativenavigation.utils
|
|
20
|
+
import com.reactnativenavigation.utils.CollectionUtils
|
|
21
|
+
import com.reactnativenavigation.utils.RenderChecker
|
|
22
|
+
import com.reactnativenavigation.utils.TitleBarHelper
|
|
23
|
+
import com.reactnativenavigation.utils.UiUtils
|
|
21
24
|
import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry
|
|
22
25
|
import com.reactnativenavigation.viewcontrollers.stack.topbar.TopBarController
|
|
23
26
|
import com.reactnativenavigation.viewcontrollers.stack.topbar.button.ButtonController
|
|
@@ -99,6 +102,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
99
102
|
|
|
100
103
|
@Test
|
|
101
104
|
fun onConfigurationChange_shouldApplyColors() {
|
|
105
|
+
parent.setRoot(listOf(child), CommandListenerAdapter())
|
|
102
106
|
val options = Options.EMPTY.copy()
|
|
103
107
|
options.topBar.borderColor = ThemeColour.of(Color.BLACK, Color.RED)
|
|
104
108
|
options.topBar.background = TopBarBackgroundOptions().apply {
|
|
@@ -122,7 +126,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
122
126
|
options.topTabs.unselectedTabColor = ThemeColour.of(Color.BLACK, Color.RED)
|
|
123
127
|
|
|
124
128
|
mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_NO
|
|
125
|
-
uut.onConfigurationChanged(options)
|
|
129
|
+
uut.onConfigurationChanged(options, getCurrentChild())
|
|
126
130
|
|
|
127
131
|
verify(topBar).setTitleTextColor(Color.BLACK)
|
|
128
132
|
verify(topBar).setSubtitleColor(Color.BLACK)
|
|
@@ -133,7 +137,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
133
137
|
verify(topBar).setBackButton(any())
|
|
134
138
|
|
|
135
139
|
mockConfiguration.uiMode = Configuration.UI_MODE_NIGHT_YES
|
|
136
|
-
uut.onConfigurationChanged(options)
|
|
140
|
+
uut.onConfigurationChanged(options, getCurrentChild())
|
|
137
141
|
|
|
138
142
|
verify(topBar).setTitleTextColor(Color.RED)
|
|
139
143
|
verify(topBar).setSubtitleColor(Color.RED)
|
|
@@ -147,15 +151,18 @@ class StackPresenterTest : BaseTest() {
|
|
|
147
151
|
|
|
148
152
|
@Test
|
|
149
153
|
fun onConfigurationChange_shouldApplyColorsOnTopBarButtons() {
|
|
154
|
+
parent.setRoot(listOf(child), CommandListenerAdapter())
|
|
155
|
+
|
|
150
156
|
val options = Options.EMPTY.copy()
|
|
151
157
|
options.topBar.buttons.left = arrayListOf(ButtonOptions())
|
|
152
158
|
options.topBar.buttons.right = arrayListOf(ButtonOptions())
|
|
153
|
-
uut.applyChildOptions(options,parent,child)
|
|
154
159
|
|
|
155
|
-
uut.
|
|
160
|
+
uut.applyChildOptions(options,parent,child)
|
|
161
|
+
verify(topBarController, times(1)).applyRightButtonsOptions(any(),any(),any())
|
|
162
|
+
verify(topBarController, times(1)).applyLeftButtonsOptions(any(),any(),any())
|
|
156
163
|
|
|
157
|
-
|
|
158
|
-
verify(topBarController, times(
|
|
164
|
+
uut.onConfigurationChanged(options, getCurrentChild())
|
|
165
|
+
verify(topBarController, times(1)).onConfigurationChanged(any(), any(), any())
|
|
159
166
|
}
|
|
160
167
|
|
|
161
168
|
@Test
|
|
@@ -252,19 +259,19 @@ class StackPresenterTest : BaseTest() {
|
|
|
252
259
|
@Test
|
|
253
260
|
fun mergeButtons() {
|
|
254
261
|
uut.mergeChildOptions(EMPTY_OPTIONS, EMPTY_OPTIONS, parent, child)
|
|
255
|
-
verify(topBarController, never()).
|
|
256
|
-
verify(topBarController, never()).
|
|
262
|
+
verify(topBarController, never()).mergeLeftButtonsOptions(any(),any(),any())
|
|
263
|
+
verify(topBarController, never()).mergeRightButtonsOptions(any(),any(),any())
|
|
257
264
|
|
|
258
265
|
val options = Options()
|
|
259
266
|
val button = ButtonOptions()
|
|
260
267
|
button.text = Text("btn")
|
|
261
268
|
options.topBar.buttons.right = ArrayList(setOf(button))
|
|
262
269
|
uut.mergeChildOptions(options, EMPTY_OPTIONS, parent, child)
|
|
263
|
-
verify(topBarController).
|
|
270
|
+
verify(topBarController).mergeRightButtonsOptions(any(), any(),any())
|
|
264
271
|
|
|
265
272
|
options.topBar.buttons.left = ArrayList(setOf(button))
|
|
266
273
|
uut.mergeChildOptions(options, EMPTY_OPTIONS, parent, child)
|
|
267
|
-
verify(topBarController).
|
|
274
|
+
verify(topBarController).mergeLeftButtonsOptions(any(), any(), any())
|
|
268
275
|
}
|
|
269
276
|
|
|
270
277
|
@Test
|
|
@@ -313,8 +320,8 @@ class StackPresenterTest : BaseTest() {
|
|
|
313
320
|
toApply.topBar.buttons.right = arrayListOf(textBtn1, componentBtn1)
|
|
314
321
|
uut.applyChildOptions(toApply, parent, child)
|
|
315
322
|
|
|
316
|
-
val captor1 = argumentCaptor<List<
|
|
317
|
-
verify(topBarController).
|
|
323
|
+
val captor1 = argumentCaptor<List<ButtonOptions>>()
|
|
324
|
+
verify(topBarController).applyRightButtonsOptions(any(),captor1.capture(), any())
|
|
318
325
|
assertThat(topBar.rightButtonBar.menu.size()).isEqualTo(2)
|
|
319
326
|
|
|
320
327
|
val appliedButtons = captor1.firstValue
|
|
@@ -325,12 +332,12 @@ class StackPresenterTest : BaseTest() {
|
|
|
325
332
|
uut.mergeChildOptions(toMerge, Options.EMPTY, parent, child)
|
|
326
333
|
|
|
327
334
|
assertThat(topBar.rightButtonBar.menu.size()).isEqualTo(3)
|
|
328
|
-
val captor2 = argumentCaptor<List<
|
|
329
|
-
verify(topBarController).
|
|
335
|
+
val captor2 = argumentCaptor<List<ButtonOptions>>()
|
|
336
|
+
verify(topBarController).mergeRightButtonsOptions(any(),captor2.capture(), any())
|
|
330
337
|
val mergedButtons = captor2.firstValue
|
|
331
338
|
assertThat(mergedButtons).hasSize(3)
|
|
332
|
-
assertThat(appliedButtons[0]).isNotEqualTo(mergedButtons[
|
|
333
|
-
assertThat(appliedButtons[1]).isEqualTo(mergedButtons[2])
|
|
339
|
+
assertThat(appliedButtons[0].id).isNotEqualTo(mergedButtons[1].id)
|
|
340
|
+
assertThat(appliedButtons[1].id).isEqualTo(mergedButtons[2].id)
|
|
334
341
|
}
|
|
335
342
|
|
|
336
343
|
@Test
|
|
@@ -357,15 +364,14 @@ class StackPresenterTest : BaseTest() {
|
|
|
357
364
|
options.topBar.buttons.left = ArrayList(listOf(textBtn2))
|
|
358
365
|
uut.applyChildOptions(options, parent, child)
|
|
359
366
|
ShadowLooper.idleMainLooper()
|
|
360
|
-
verify(
|
|
361
|
-
verify(topBar,
|
|
367
|
+
verify(topBarController, times(1)).applyLeftButtonsOptions(any(), any(), any())
|
|
368
|
+
verify(topBar, never()).setBackButton(any())
|
|
362
369
|
|
|
363
370
|
val backButtonHidden = Options()
|
|
364
371
|
backButtonHidden.topBar.buttons.back.setHidden()
|
|
365
372
|
uut.mergeChildOptions(backButtonHidden, options, parent, child)
|
|
366
373
|
ShadowLooper.idleMainLooper()
|
|
367
|
-
verify(topBar, times(1)).
|
|
368
|
-
verify(topBar, times(2)).clearBackButton()
|
|
374
|
+
verify(topBar, times(1)).clearBackButton()
|
|
369
375
|
}
|
|
370
376
|
|
|
371
377
|
@Test
|
|
@@ -400,7 +406,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
400
406
|
|
|
401
407
|
assertThat(toMerge.topBar.buttons.back.hasValue()).isTrue()
|
|
402
408
|
uut.mergeChildOptions(toMerge, Options.EMPTY, parent, child)
|
|
403
|
-
verify(topBarController).
|
|
409
|
+
verify(topBarController).mergeLeftButtonsOptions(any(), any(),any())
|
|
404
410
|
verify(topBar, never()).clearLeftButtons()
|
|
405
411
|
}
|
|
406
412
|
|
|
@@ -662,15 +668,15 @@ class StackPresenterTest : BaseTest() {
|
|
|
662
668
|
options.topBar.buttons.left = ArrayList()
|
|
663
669
|
options.topBar.buttons.left!!.add(leftButton)
|
|
664
670
|
uut.applyChildOptions(options, parent, child)
|
|
665
|
-
val rightCaptor = argumentCaptor<List<
|
|
666
|
-
verify(topBarController).
|
|
667
|
-
assertThat(rightCaptor.firstValue[0].
|
|
668
|
-
assertThat(rightCaptor.firstValue[1].
|
|
671
|
+
val rightCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
672
|
+
verify(topBarController).applyRightButtonsOptions(any(),rightCaptor.capture(), any())
|
|
673
|
+
assertThat(rightCaptor.firstValue[0].color.get()).isEqualTo(options.topBar.rightButtonColor.get())
|
|
674
|
+
assertThat(rightCaptor.firstValue[1].color.get()).isEqualTo(options.topBar.rightButtonColor.get())
|
|
669
675
|
assertThat(rightCaptor.firstValue[0]).isNotEqualTo(rightButton1)
|
|
670
676
|
assertThat(rightCaptor.firstValue[1]).isNotEqualTo(rightButton2)
|
|
671
|
-
val leftCaptor = argumentCaptor<List<
|
|
672
|
-
verify(topBarController).
|
|
673
|
-
assertThat(leftCaptor.firstValue[0].
|
|
677
|
+
val leftCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
678
|
+
verify(topBarController).applyLeftButtonsOptions(any(),leftCaptor.capture(),any())
|
|
679
|
+
assertThat(leftCaptor.firstValue[0].color).isEqualTo(options.topBar.leftButtonColor)
|
|
674
680
|
assertThat(leftCaptor.firstValue[0]).isNotEqualTo(leftButton)
|
|
675
681
|
}
|
|
676
682
|
|
|
@@ -790,15 +796,15 @@ class StackPresenterTest : BaseTest() {
|
|
|
790
796
|
options2.topBar.buttons.left = ArrayList(listOf(leftButton))
|
|
791
797
|
|
|
792
798
|
uut.mergeChildOptions(options2, appliedOptions, parent, child)
|
|
793
|
-
val rightCaptor = argumentCaptor<List<
|
|
794
|
-
verify(topBarController).
|
|
795
|
-
assertThat(rightCaptor.firstValue[0].
|
|
796
|
-
assertThat(rightCaptor.firstValue[1].
|
|
799
|
+
val rightCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
800
|
+
verify(topBarController).mergeRightButtonsOptions(any(),rightCaptor.capture(), any())
|
|
801
|
+
assertThat(rightCaptor.firstValue[0].color.get()).isEqualTo(appliedOptions.topBar.rightButtonColor.get())
|
|
802
|
+
assertThat(rightCaptor.firstValue[1].color.get()).isEqualTo(appliedOptions.topBar.rightButtonColor.get())
|
|
797
803
|
assertThat(rightCaptor.firstValue[0]).isNotEqualTo(rightButton1)
|
|
798
804
|
assertThat(rightCaptor.firstValue[1]).isNotEqualTo(rightButton2)
|
|
799
|
-
val leftCaptor = argumentCaptor<List<
|
|
800
|
-
verify(topBarController).
|
|
801
|
-
assertThat(leftCaptor.firstValue[0].
|
|
805
|
+
val leftCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
806
|
+
verify(topBarController).mergeLeftButtonsOptions(any(),leftCaptor.capture(), any())
|
|
807
|
+
assertThat(leftCaptor.firstValue[0].color.get()).isEqualTo(appliedOptions.topBar.leftButtonColor.get())
|
|
802
808
|
assertThat(leftCaptor.firstValue[0]).isNotEqualTo(leftButton)
|
|
803
809
|
}
|
|
804
810
|
|
|
@@ -816,15 +822,15 @@ class StackPresenterTest : BaseTest() {
|
|
|
816
822
|
options2.topBar.buttons.left = ArrayList(listOf(leftButton))
|
|
817
823
|
|
|
818
824
|
uut.mergeChildOptions(options2, resolvedOptions, parent, child)
|
|
819
|
-
val rightCaptor = argumentCaptor<List<
|
|
820
|
-
verify(topBarController).
|
|
821
|
-
assertThat(rightCaptor.firstValue[0].
|
|
822
|
-
assertThat(rightCaptor.firstValue[1].
|
|
825
|
+
val rightCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
826
|
+
verify(topBarController).mergeRightButtonsOptions(any(),rightCaptor.capture(), any())
|
|
827
|
+
assertThat(rightCaptor.firstValue[0].color.get()).isEqualTo(resolvedOptions.topBar.rightButtonColor.get())
|
|
828
|
+
assertThat(rightCaptor.firstValue[1].color.get()).isEqualTo(resolvedOptions.topBar.rightButtonColor.get())
|
|
823
829
|
assertThat(rightCaptor.firstValue[0]).isNotEqualTo(rightButton1)
|
|
824
830
|
assertThat(rightCaptor.firstValue[1]).isNotEqualTo(rightButton2)
|
|
825
|
-
val leftCaptor = argumentCaptor<List<
|
|
826
|
-
verify(topBarController).
|
|
827
|
-
assertThat(leftCaptor.firstValue[0].
|
|
831
|
+
val leftCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
832
|
+
verify(topBarController).mergeLeftButtonsOptions(any(),leftCaptor.capture(), any())
|
|
833
|
+
assertThat(leftCaptor.firstValue[0].color.get()).isEqualTo(resolvedOptions.topBar.leftButtonColor.get())
|
|
828
834
|
assertThat(leftCaptor.firstValue[0]).isNotEqualTo(leftButton)
|
|
829
835
|
}
|
|
830
836
|
|
|
@@ -834,10 +840,10 @@ class StackPresenterTest : BaseTest() {
|
|
|
834
840
|
options.topBar.buttons.right = ArrayList(listOf(textBtn1))
|
|
835
841
|
options.topBar.buttons.left = ArrayList(listOf(textBtn1))
|
|
836
842
|
uut.applyChildOptions(options, parent, child)
|
|
837
|
-
val rightCaptor = argumentCaptor<List<
|
|
838
|
-
val leftCaptor = argumentCaptor<List<
|
|
839
|
-
verify(topBarController).
|
|
840
|
-
verify(topBarController).
|
|
843
|
+
val rightCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
844
|
+
val leftCaptor = argumentCaptor<List<ButtonOptions>>()
|
|
845
|
+
verify(topBarController).applyRightButtonsOptions(any(),rightCaptor.capture(),any())
|
|
846
|
+
verify(topBarController).applyLeftButtonsOptions(any(),leftCaptor.capture(),any())
|
|
841
847
|
assertThat(rightCaptor.firstValue.size).isOne()
|
|
842
848
|
assertThat(leftCaptor.firstValue.size).isOne()
|
|
843
849
|
}
|
|
@@ -939,7 +945,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
939
945
|
statusBar.drawBehind = Bool(true)
|
|
940
946
|
}
|
|
941
947
|
Mockito.`when`(child.resolveCurrentOptions()).thenReturn(options)
|
|
942
|
-
|
|
948
|
+
mockSystemUiUtils(statusBarHeight, statusBarHeightDp) {
|
|
943
949
|
uut.applyChildOptions(Options.EMPTY.copy().apply {
|
|
944
950
|
topBar.height = Number(topBarHeightDp)
|
|
945
951
|
}, parent, child)
|
|
@@ -955,7 +961,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
955
961
|
val statusBarHeightDp = 20
|
|
956
962
|
val topBarHeightDp = 100
|
|
957
963
|
|
|
958
|
-
|
|
964
|
+
mockSystemUiUtils(statusBarHeight, statusBarHeightDp) {
|
|
959
965
|
uut.mergeChildOptions(Options.EMPTY.copy().apply {
|
|
960
966
|
topBar.height = Number(topBarHeightDp)
|
|
961
967
|
statusBar.drawBehind = Bool(true)
|
|
@@ -972,7 +978,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
972
978
|
val statusBarHeightDp = 20
|
|
973
979
|
val topBarHeightDp = 100
|
|
974
980
|
|
|
975
|
-
|
|
981
|
+
mockSystemUiUtils(statusBarHeight, statusBarHeightDp) {
|
|
976
982
|
uut.mergeChildOptions(Options.EMPTY.copy().apply {
|
|
977
983
|
topBar.height = Number(topBarHeightDp)
|
|
978
984
|
statusBar.drawBehind = Bool(false)
|
|
@@ -1022,6 +1028,7 @@ class StackPresenterTest : BaseTest() {
|
|
|
1022
1028
|
assertThat((topBar.layoutParams as ViewGroup.MarginLayoutParams).topMargin).isEqualTo(10)
|
|
1023
1029
|
}
|
|
1024
1030
|
|
|
1031
|
+
private fun getCurrentChild()=parent.currentChild
|
|
1025
1032
|
private fun assertTopBarOptions(options: Options, t: Int) {
|
|
1026
1033
|
if (options.topBar.title.component.hasValue()) {
|
|
1027
1034
|
verify(topBar, never()).title = any()
|