Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 3368cda
Author: Ward Abbass <swabbass@gmail.com>
Date:   Mon Nov 29 09:56:50 2021 +0200

    Upgrade unit tests dependencies on android

commit 7fe8421
Author: Ward Abbass <swabbass@gmail.com>
Date:   Mon Nov 29 09:20:55 2021 +0200

    tmp

commit bcf0edb
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Thu Nov 25 13:32:27 2021 +0200

    Fix playground reanimated animations (#7375)

commit 623c239
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Thu Nov 25 11:37:42 2021 +0200

    Fix missing options processing (#7370)

    We missed `mergeOptions` processing on the following commands: `pop`, `popTo`, `popToRoot`, `dismissModal` and `dismissAllModals`. That resulted in a bug where using the old animations syntax didn't work.

commit e0da767
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Thu Nov 25 11:37:13 2021 +0200

    Fix statusBar blur option in dark mode (#7372)

commit 74beb27
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Thu Nov 25 11:36:56 2021 +0200

    Update documentation (#7373)

commit 6452157
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Wed Nov 24 23:20:11 2021 +0200

    Fix fast refresh crash (#7371)

    Closes #6176

commit 709ddb8
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Wed Nov 24 21:37:22 2021 +0200

    Fix dismissing modals with sideMenu (#7369)

    Dismissing a modal that has a `sideMenu` layout exposed a bug we have where we look for the component in the top ViewController presented children, with `sideMenu` it's not enough because its children are not components.
    Instead, We should recursively look for that component in all of the top viewController children tree.

    Closes #7367

commit 5cc967b
Author: Yogev Ben David <yogev132@gmail.com>
Date:   Wed Nov 24 15:26:08 2021 +0200

    [Navigation Mock] Fix bottomTabPressed event (#7368)
  • Loading branch information
swabbass committed Nov 29, 2021
1 parent e18945a commit 86fbbac
Show file tree
Hide file tree
Showing 49 changed files with 283 additions and 147 deletions.
7 changes: 7 additions & 0 deletions e2e/BottomTabs.test.js
Expand Up @@ -106,4 +106,11 @@ describe('BottomTabs', () => {
await elementById(TestIDs.POP_BTN).tap();
await expect(elementById(TestIDs.BOTTOM_TABS)).toBeVisible();
});

it('invoke bottomTabPressed event', async () => {
await elementById(TestIDs.THIRD_TAB_BAR_BTN).tap();
await expect(elementByLabel('BottomTabPressed')).toBeVisible();
await elementByLabel('OK').tap();
await expect(elementByLabel('First Tab')).toBeVisible();
});
});
9 changes: 9 additions & 0 deletions e2e/Modals.test.js
Expand Up @@ -203,4 +203,13 @@ describe('modal', () => {

await expect(elementByLabel('Toggle declared modal')).toBeVisible();
});

it.e2e('dismiss modal with side menu', async () => {
await elementById(TestIDs.MODAL_COMMANDS_BTN).tap();
await elementById(TestIDs.SHOW_SIDE_MENU_MODAL).tap();
await expect(elementByLabel('StatusBar Options')).toBeVisible();
await elementById(TestIDs.DISMISS_MODAL_TOPBAR_BTN).tap();
await expect(elementByLabel('StatusBar Options')).not.toBeVisible();
await expect(elementByLabel('Modal Commands')).toBeVisible();
});
});
12 changes: 6 additions & 6 deletions lib/android/app/build.gradle
Expand Up @@ -190,12 +190,12 @@ dependencies {
implementation 'com.facebook.react:react-native:+'

// tests
testImplementation 'junit:junit:4.12'
testImplementation "org.robolectric:robolectric:4.4"
testImplementation 'org.assertj:assertj-core:3.8.0'
testImplementation 'com.squareup.assertj:assertj-android:1.1.1'
testImplementation 'org.mockito:mockito-core:3.4.0'
testImplementation 'junit:junit:4.13.2'
testImplementation "org.robolectric:robolectric:4.7.2"
testImplementation 'org.assertj:assertj-core:3.11.1'
testImplementation 'org.mockito:mockito-core:4.0.0'
testImplementation 'com.squareup.assertj:assertj-android:1.2.0'
testImplementation 'org.mockito:mockito-inline:3.4.0'
testImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0"
testImplementation "org.mockito.kotlin:mockito-kotlin:4.0.0"
testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlinVersion"
}
Expand Up @@ -15,4 +15,9 @@ public ReactGateway getReactGateway() {
public void setNavigator(Navigator navigator) {
this.navigator = navigator;
}

@Override
public void onBackPressed() {
super.onBackPressed();
}
}
Expand Up @@ -3,12 +3,13 @@ package com.reactnativenavigation.mocks
import android.graphics.Canvas
import android.graphics.ColorFilter
import android.graphics.drawable.Drawable
import com.nhaarman.mockitokotlin2.any
import com.nhaarman.mockitokotlin2.doAnswer
import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.whenever

import com.reactnativenavigation.utils.ImageLoader
import com.reactnativenavigation.utils.ImageLoader.ImagesLoadingListener
import org.mockito.Mockito.doAnswer
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
import java.util.*

object ImageLoaderMock {
Expand Down
@@ -1,10 +1,11 @@
package com.reactnativenavigation.mocks

import android.view.ViewGroup
import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.whenever

import com.reactnativenavigation.options.Options
import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever

object Mocks {
fun viewController(): ViewController<*> {
Expand Down
@@ -1,8 +1,8 @@
package com.reactnativenavigation.mocks

import android.graphics.Typeface
import com.nhaarman.mockitokotlin2.mock
import com.reactnativenavigation.options.parsers.TypefaceLoader
import org.mockito.kotlin.mock

class TypefaceLoaderMock() : TypefaceLoader(mock()) {
private var mockTypefaces: Map<String, Typeface>? = null
Expand Down
@@ -1,7 +1,6 @@
package com.reactnativenavigation.options

import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.whenever
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
import com.reactnativenavigation.BaseTest
import org.assertj.core.api.Assertions.assertThat
import org.json.JSONArray
Expand Down
Expand Up @@ -4,7 +4,7 @@ import android.app.Activity
import android.view.MotionEvent
import android.view.View
import android.widget.FrameLayout
import com.nhaarman.mockitokotlin2.mock
import org.mockito.kotlin.mock
import com.reactnativenavigation.BaseTest
import org.assertj.core.api.Java6Assertions.assertThat
import org.junit.Test
Expand Down
Expand Up @@ -13,7 +13,7 @@ public void postOnUiThread() throws Exception {
Runnable task = mock(Runnable.class);
ShadowLooper.pauseMainLooper();
UiThread.post(task);
verifyZeroInteractions(task);
verifyNoInteractions(task);
ShadowLooper.runUiThreadTasks();
verify(task, times(1)).run();
}
Expand All @@ -22,7 +22,7 @@ public void postOnUiThread() throws Exception {
public void postDelayedOnUiThread() throws Exception {
Runnable task = mock(Runnable.class);
UiThread.postDelayed(task, 1000);
verifyZeroInteractions(task);
verifyNoInteractions(task);
ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
verify(task, times(1)).run();
}
Expand Down
Expand Up @@ -13,7 +13,7 @@ public class UiUtilsTest extends BaseTest {
public void runOnPreDrawOnce() {
View view = new View(newActivity());
Runnable task = mock(Runnable.class);
verifyZeroInteractions(task);
verifyNoInteractions(task);

UiUtils.runOnPreDrawOnce(view, task);
dispatchPreDraw(view);
Expand Down
Expand Up @@ -3,7 +3,7 @@ package com.reactnativenavigation.viewcontrollers.bottomtabs
import android.animation.AnimatorSet
import android.content.res.Configuration
import android.graphics.Color
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.mocks.SimpleViewController
import com.reactnativenavigation.options.Options
Expand Down
Expand Up @@ -138,7 +138,7 @@ public void mergeOptions_delegatesToPresenterIfViewIsNotShown() {
Options options = new Options();
Java6Assertions.assertThat(uut.isViewShown()).isFalse();
uut.mergeOptions(options);
Mockito.verifyZeroInteractions(presenter);
Mockito.verifyNoInteractions(presenter);

Mockito.when(uut.isViewShown()).thenReturn(true);
uut.mergeOptions(options);
Expand Down
Expand Up @@ -2,7 +2,7 @@ package com.reactnativenavigation.viewcontrollers.fakes

import android.app.Activity
import androidx.coordinatorlayout.widget.CoordinatorLayout
import com.nhaarman.mockitokotlin2.mock
import org.mockito.kotlin.mock
import com.reactnativenavigation.options.Options
import com.reactnativenavigation.viewcontrollers.viewcontroller.Presenter
import com.reactnativenavigation.utils.CompatUtils
Expand Down
@@ -1,7 +1,7 @@
package com.reactnativenavigation.viewcontrollers.modal

import android.app.Activity
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.mocks.SimpleViewController
import com.reactnativenavigation.options.*
Expand Down
Expand Up @@ -34,7 +34,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoInteractions;

public class ModalPresenterTest extends BaseTest {
private static final String MODAL_ID_1 = "modalId1";
Expand Down Expand Up @@ -109,7 +109,7 @@ public void showModal_resolvesDefaultOptions() throws JSONException {
defaultOptions.animations.showModal = TransitionAnimationOptionsKt.parseTransitionAnimationOptions(disabledShowModalAnimation);
uut.setDefaultOptions(defaultOptions);
uut.showModal(modal1, root, new CommandListenerAdapter());
verifyZeroInteractions(animator);
verifyNoInteractions(animator);
}

@Test
Expand Down Expand Up @@ -163,7 +163,7 @@ public void showModal_waitForRender() {
modal1.options.animations.showModal.setWaitForRender(new Bool(true));
uut.showModal(modal1, root, new CommandListenerAdapter());
verify(modal1).addOnAppearedListener(any());
verifyZeroInteractions(animator);
verifyNoInteractions(animator);
}

@Test
Expand Down
Expand Up @@ -30,7 +30,8 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;

public class ModalStackTest extends BaseTest {
Expand Down Expand Up @@ -152,7 +153,7 @@ public void run() {
uut.dismissModal(MODAL_ID_1, root, listener);
verify(onModalWillDismiss, times(0)).run();
verify(listener, times(1)).onError(anyString());
verifyZeroInteractions(listener);
verifyNoMoreInteractions(listener);
}

@Test
Expand Down Expand Up @@ -188,7 +189,7 @@ public void onSuccess(String childId) {
});
uut.dismissAllModals(root, Options.EMPTY, listener);
verify(listener, times(1)).onSuccess(anyString());
verifyZeroInteractions(listener);
verifyNoMoreInteractions(listener);
}

@Test
Expand Down
Expand Up @@ -3,9 +3,6 @@ package com.reactnativenavigation.viewcontrollers.navigator
import android.app.Activity
import androidx.coordinatorlayout.widget.CoordinatorLayout
import com.facebook.react.ReactInstanceManager
import com.nhaarman.mockitokotlin2.any
import com.nhaarman.mockitokotlin2.eq
import com.nhaarman.mockitokotlin2.never
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.TestActivity
import com.reactnativenavigation.hierarchy.root.RootAnimator
Expand All @@ -22,6 +19,9 @@ import org.assertj.core.api.Java6Assertions
import org.junit.Test
import org.mockito.ArgumentCaptor
import org.mockito.Mockito
import org.mockito.kotlin.any
import org.mockito.kotlin.eq
import org.mockito.kotlin.never
import org.robolectric.android.controller.ActivityController

class RootPresenterTest : BaseTest() {
Expand Down Expand Up @@ -76,7 +76,7 @@ class RootPresenterTest : BaseTest() {
fun setRoot_doesNotAnimateByDefault() {
val listener = Mockito.spy(CommandListenerAdapter())
uut.setRoot(root, null, defaultOptions, listener, reactInstanceManager)
Mockito.verifyZeroInteractions(animator)
Mockito.verifyNoInteractions(animator)
Mockito.verify(listener).onSuccess(root.id)
}

Expand Down Expand Up @@ -210,7 +210,7 @@ class RootPresenterTest : BaseTest() {
uut.setRoot(spy, null, defaultOptions, listener, reactInstanceManager)
Mockito.verify(spy).addOnAppearedListener(any())
Java6Assertions.assertThat(spy.view.alpha).isZero()
Mockito.verifyZeroInteractions(listener)
Mockito.verifyNoInteractions(listener)
spy.onViewWillAppear()
idleMainLooper()
Java6Assertions.assertThat(spy.view.alpha).isOne()
Expand Down
Expand Up @@ -4,7 +4,7 @@ import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.app.Activity
import android.widget.FrameLayout
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.mocks.Mocks
import com.reactnativenavigation.mocks.SimpleViewController
Expand Down
Expand Up @@ -6,7 +6,7 @@ import android.content.Context
import android.view.View
import android.widget.FrameLayout
import androidx.coordinatorlayout.widget.CoordinatorLayout
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.TestUtils
import com.reactnativenavigation.mocks.*
Expand Down
Expand Up @@ -7,7 +7,7 @@ import android.graphics.Color
import android.graphics.Typeface
import android.view.View
import android.view.ViewGroup
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.TestUtils
import com.reactnativenavigation.fakes.IconResolverFake
Expand Down
Expand Up @@ -4,7 +4,7 @@ import android.animation.AnimatorSet
import android.app.Activity
import android.content.Context
import android.view.View
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.fakes.IconResolverFake
import com.reactnativenavigation.mocks.TitleBarButtonCreatorMock
Expand Down
Expand Up @@ -7,8 +7,8 @@ import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.LinearLayout
import com.nhaarman.mockitokotlin2.spy
import com.nhaarman.mockitokotlin2.verify
import org.mockito.kotlin.spy
import org.mockito.kotlin.verify
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.options.Alignment
import com.reactnativenavigation.options.params.Colour
Expand Down
Expand Up @@ -2,14 +2,14 @@ package com.reactnativenavigation.views.animations

import android.animation.Animator
import android.view.View
import com.nhaarman.mockitokotlin2.mock
import com.nhaarman.mockitokotlin2.spy
import com.nhaarman.mockitokotlin2.verify
import com.nhaarman.mockitokotlin2.whenever
import com.reactnativenavigation.BaseTest
import com.reactnativenavigation.options.AnimationOptions
import org.assertj.core.api.Java6Assertions.assertThat
import org.junit.Test
import org.mockito.kotlin.mock
import org.mockito.kotlin.spy
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever

class BaseViewAnimatorTest : BaseTest() {
private lateinit var uut: BaseViewAnimator<View>
Expand Down
Expand Up @@ -6,7 +6,7 @@ import android.graphics.drawable.ColorDrawable
import android.view.View
import android.widget.LinearLayout
import androidx.core.graphics.ColorUtils
import com.nhaarman.mockitokotlin2.*
import org.mockito.kotlin.*
import com.reactnativenavigation.BaseTest
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
Expand Down
@@ -1,9 +1,9 @@
package com.reactnativenavigation.views.bottomtabs

import com.nhaarman.mockitokotlin2.never
import com.nhaarman.mockitokotlin2.spy
import com.nhaarman.mockitokotlin2.times
import com.nhaarman.mockitokotlin2.verify
import org.mockito.kotlin.never
import org.mockito.kotlin.spy
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import com.reactnativenavigation.BaseTest
import org.junit.Test

Expand Down
1 change: 0 additions & 1 deletion lib/ios/RNNBridgeManager.mm
Expand Up @@ -113,7 +113,6 @@ - (void)onJavaScriptLoaded {
- (void)onBridgeWillReload {
dispatch_async(dispatch_get_main_queue(), ^{
[self->_overlayManager dismissAllOverlays];
[self->_modalManager dismissAllModalsSynchronosly];
[self->_componentRegistry clear];
UIApplication.sharedApplication.delegate.window.rootViewController = nil;
});
Expand Down
1 change: 0 additions & 1 deletion lib/ios/RNNModalManager.h
Expand Up @@ -22,7 +22,6 @@ typedef void (^RNNTransitionRejectionBlock)(NSString *_Nonnull code, NSString *_
animated:(BOOL)animated
completion:(RNNTransitionCompletionBlock _Nullable)completion;
- (void)dismissAllModalsAnimated:(BOOL)animated completion:(void (^__nullable)(void))completion;
- (void)dismissAllModalsSynchronosly;

- (void)reset;

Expand Down

0 comments on commit 86fbbac

Please sign in to comment.