|
@@ -1,9 +1,9 @@
|
1
|
1
|
package com.reactnativenavigation.viewcontrollers;
|
2
|
2
|
|
3
|
|
-import android.app.Activity;
|
4
|
3
|
import android.support.annotation.NonNull;
|
5
|
4
|
|
6
|
5
|
import com.reactnativenavigation.BaseTest;
|
|
6
|
+import com.reactnativenavigation.TestActivity;
|
7
|
7
|
import com.reactnativenavigation.mocks.ImageLoaderMock;
|
8
|
8
|
import com.reactnativenavigation.mocks.MockPromise;
|
9
|
9
|
import com.reactnativenavigation.mocks.SimpleComponentViewController;
|
|
@@ -14,6 +14,7 @@ import com.reactnativenavigation.mocks.TopBarButtonCreatorMock;
|
14
|
14
|
import com.reactnativenavigation.parse.Options;
|
15
|
15
|
import com.reactnativenavigation.parse.params.Bool;
|
16
|
16
|
import com.reactnativenavigation.parse.params.Text;
|
|
17
|
+import com.reactnativenavigation.presentation.OverlayManager;
|
17
|
18
|
import com.reactnativenavigation.utils.CommandListenerAdapter;
|
18
|
19
|
import com.reactnativenavigation.utils.CompatUtils;
|
19
|
20
|
import com.reactnativenavigation.utils.ImageLoader;
|
|
@@ -23,6 +24,8 @@ import com.reactnativenavigation.viewcontrollers.topbar.TopBarBackgroundViewCont
|
23
|
24
|
import com.reactnativenavigation.viewcontrollers.topbar.TopBarController;
|
24
|
25
|
|
25
|
26
|
import org.junit.Test;
|
|
27
|
+import org.mockito.Mockito;
|
|
28
|
+import org.robolectric.android.controller.ActivityController;
|
26
|
29
|
|
27
|
30
|
import java.util.Arrays;
|
28
|
31
|
|
|
@@ -36,7 +39,7 @@ import static org.mockito.Mockito.verify;
|
36
|
39
|
import static org.mockito.Mockito.when;
|
37
|
40
|
|
38
|
41
|
public class NavigatorTest extends BaseTest {
|
39
|
|
- private Activity activity;
|
|
42
|
+ private TestActivity activity;
|
40
|
43
|
private Navigator uut;
|
41
|
44
|
private StackController parentController;
|
42
|
45
|
private SimpleViewController child1;
|
|
@@ -46,13 +49,19 @@ public class NavigatorTest extends BaseTest {
|
46
|
49
|
private ViewController child5;
|
47
|
50
|
private Options tabOptions = OptionHelper.createBottomTabOptions();
|
48
|
51
|
private ImageLoader imageLoaderMock;
|
|
52
|
+ private ActivityController<TestActivity> activityController;
|
|
53
|
+ private OverlayManager overlayManager;
|
49
|
54
|
|
50
|
55
|
@Override
|
51
|
56
|
public void beforeEach() {
|
52
|
57
|
super.beforeEach();
|
|
58
|
+ overlayManager = Mockito.mock(OverlayManager.class);
|
53
|
59
|
imageLoaderMock = ImageLoaderMock.mock();
|
54
|
|
- activity = newActivity();
|
55
|
|
- uut = new Navigator(activity);
|
|
60
|
+ activityController = newActivityController(TestActivity.class);
|
|
61
|
+ activity = activityController.create().get();
|
|
62
|
+ uut = new Navigator(activity, overlayManager);
|
|
63
|
+ activity.setNavigator(uut);
|
|
64
|
+
|
56
|
65
|
parentController = spy(newStack());
|
57
|
66
|
parentController.ensureViewIsCreated();
|
58
|
67
|
child1 = new SimpleViewController(activity, "child1", tabOptions);
|
|
@@ -61,6 +70,8 @@ public class NavigatorTest extends BaseTest {
|
61
|
70
|
child4 = new SimpleViewController(activity, "child4", tabOptions);
|
62
|
71
|
child5 = new SimpleViewController(activity, "child5", tabOptions);
|
63
|
72
|
activity.setContentView(uut.getView());
|
|
73
|
+
|
|
74
|
+ activityController.visible();
|
64
|
75
|
}
|
65
|
76
|
|
66
|
77
|
@Test
|
|
@@ -80,7 +91,7 @@ public class NavigatorTest extends BaseTest {
|
80
|
91
|
@Test
|
81
|
92
|
public void hasUniqueId() {
|
82
|
93
|
assertThat(uut.getId()).startsWith("navigator");
|
83
|
|
- assertThat(new Navigator(activity).getId()).isNotEqualTo(uut.getId());
|
|
94
|
+ assertThat(new Navigator(activity, overlayManager).getId()).isNotEqualTo(uut.getId());
|
84
|
95
|
}
|
85
|
96
|
|
86
|
97
|
@Test
|
|
@@ -447,4 +458,26 @@ public class NavigatorTest extends BaseTest {
|
447
|
458
|
});
|
448
|
459
|
}
|
449
|
460
|
|
|
461
|
+ @Test
|
|
462
|
+ public void destroy_destroyedRoot() {
|
|
463
|
+ parentController.options.animations.startApp.enable = new Bool(false);
|
|
464
|
+ uut.setRoot(parentController, new MockPromise());
|
|
465
|
+ activityController.destroy();
|
|
466
|
+ verify(parentController, times(1)).destroy();
|
|
467
|
+ }
|
|
468
|
+
|
|
469
|
+ @Test
|
|
470
|
+ public void destroy_destroyOverlayManager() {
|
|
471
|
+ uut.setRoot(parentController, new MockPromise());
|
|
472
|
+ activityController.destroy();
|
|
473
|
+ verify(overlayManager, times(1)).destroy();
|
|
474
|
+ }
|
|
475
|
+
|
|
476
|
+ @Test
|
|
477
|
+ public void reload_navigatorIsDestroyedOnReload() {
|
|
478
|
+ uut.setRoot(parentController, new MockPromise());
|
|
479
|
+ uut.onReload();
|
|
480
|
+ verify(parentController, times(1)).destroy();
|
|
481
|
+ verify(overlayManager, times(1)).destroy();
|
|
482
|
+ }
|
450
|
483
|
}
|