|
@@ -1,11 +1,13 @@
|
1
|
1
|
package com.reactnativenavigation.viewcontrollers;
|
2
|
2
|
|
3
|
3
|
import android.app.Activity;
|
|
4
|
+import android.support.annotation.NonNull;
|
4
|
5
|
import android.view.ViewGroup;
|
5
|
6
|
|
6
|
7
|
import com.reactnativenavigation.BaseTest;
|
7
|
8
|
import com.reactnativenavigation.mocks.SimpleViewController;
|
8
|
9
|
import com.reactnativenavigation.mocks.TestStackAnimator;
|
|
10
|
+import com.reactnativenavigation.utils.CompatUtils;
|
9
|
11
|
|
10
|
12
|
import org.junit.Test;
|
11
|
13
|
import org.robolectric.Shadows;
|
|
@@ -20,6 +22,8 @@ public class NavigatorTest extends BaseTest {
|
20
|
22
|
private ViewController child1;
|
21
|
23
|
private ViewController child2;
|
22
|
24
|
private ViewController child3;
|
|
25
|
+ private ViewController child4;
|
|
26
|
+ private ViewController child5;
|
23
|
27
|
|
24
|
28
|
@Override
|
25
|
29
|
public void beforeEach() {
|
|
@@ -29,6 +33,8 @@ public class NavigatorTest extends BaseTest {
|
29
|
33
|
child1 = new SimpleViewController(activity, "child1");
|
30
|
34
|
child2 = new SimpleViewController(activity, "child2");
|
31
|
35
|
child3 = new SimpleViewController(activity, "child3");
|
|
36
|
+ child4 = new SimpleViewController(activity, "child4");
|
|
37
|
+ child5 = new SimpleViewController(activity, "child5");
|
32
|
38
|
}
|
33
|
39
|
|
34
|
40
|
|
|
@@ -72,7 +78,7 @@ public class NavigatorTest extends BaseTest {
|
72
|
78
|
|
73
|
79
|
@Test
|
74
|
80
|
public void push() throws Exception {
|
75
|
|
- StackController stackController = new StackController(activity, "stack1", new TestStackAnimator());
|
|
81
|
+ StackController stackController = newStack();
|
76
|
82
|
stackController.push(child1);
|
77
|
83
|
uut.setRoot(stackController);
|
78
|
84
|
|
|
@@ -94,9 +100,9 @@ public class NavigatorTest extends BaseTest {
|
94
|
100
|
|
95
|
101
|
@Test
|
96
|
102
|
public void push_OnCorrectStackByFindingChildId() throws Exception {
|
97
|
|
- BottomTabsController bottomTabsController = new BottomTabsController(activity, "tabsController");
|
98
|
|
- StackController stack1 = new StackController(activity, "stack1", new TestStackAnimator());
|
99
|
|
- StackController stack2 = new StackController(activity, "stack2", new TestStackAnimator());
|
|
103
|
+ BottomTabsController bottomTabsController = newTabs();
|
|
104
|
+ StackController stack1 = newStack();
|
|
105
|
+ StackController stack2 = newStack();
|
100
|
106
|
stack1.push(child1);
|
101
|
107
|
stack2.push(child2);
|
102
|
108
|
bottomTabsController.setTabs(Arrays.<ViewController>asList(stack1, stack2));
|
|
@@ -114,17 +120,18 @@ public class NavigatorTest extends BaseTest {
|
114
|
120
|
uut.pop("123");
|
115
|
121
|
uut.setRoot(child1);
|
116
|
122
|
uut.pop(child1.getId());
|
|
123
|
+ assertThat(uut.getChildControllers()).hasSize(1);
|
117
|
124
|
}
|
118
|
125
|
|
119
|
126
|
@Test
|
120
|
127
|
public void pop_FromCorrectStackByFindingChildId() throws Exception {
|
121
|
|
- BottomTabsController bottomTabsController = new BottomTabsController(activity, "tabsController");
|
122
|
|
- StackController stack1 = new StackController(activity, "stack1", new TestStackAnimator());
|
123
|
|
- StackController stack2 = new StackController(activity, "stack2", new TestStackAnimator());
|
|
128
|
+ BottomTabsController bottomTabsController = newTabs();
|
|
129
|
+ StackController stack1 = newStack();
|
|
130
|
+ StackController stack2 = newStack();
|
124
|
131
|
stack1.push(child1);
|
125
|
132
|
stack2.push(child2);
|
126
|
133
|
stack2.push(child3);
|
127
|
|
- stack2.push(new SimpleViewController(activity, "child4"));
|
|
134
|
+ stack2.push(child4);
|
128
|
135
|
bottomTabsController.setTabs(Arrays.<ViewController>asList(stack1, stack2));
|
129
|
136
|
uut.setRoot(bottomTabsController);
|
130
|
137
|
|
|
@@ -135,13 +142,12 @@ public class NavigatorTest extends BaseTest {
|
135
|
142
|
|
136
|
143
|
@Test
|
137
|
144
|
public void popSpecific() throws Exception {
|
138
|
|
- BottomTabsController bottomTabsController = new BottomTabsController(activity, "tabsController");
|
139
|
|
- StackController stack1 = new StackController(activity, "stack1", new TestStackAnimator());
|
140
|
|
- StackController stack2 = new StackController(activity, "stack2", new TestStackAnimator());
|
|
145
|
+ BottomTabsController bottomTabsController = newTabs();
|
|
146
|
+ StackController stack1 = newStack();
|
|
147
|
+ StackController stack2 = newStack();
|
141
|
148
|
stack1.push(child1);
|
142
|
149
|
stack2.push(child2);
|
143
|
150
|
stack2.push(child3);
|
144
|
|
- SimpleViewController child4 = new SimpleViewController(activity, "child4");
|
145
|
151
|
stack2.push(child4);
|
146
|
152
|
bottomTabsController.setTabs(Arrays.<ViewController>asList(stack1, stack2));
|
147
|
153
|
uut.setRoot(bottomTabsController);
|
|
@@ -153,14 +159,14 @@ public class NavigatorTest extends BaseTest {
|
153
|
159
|
|
154
|
160
|
@Test
|
155
|
161
|
public void popTo_FromCorrectStackUpToChild() throws Exception {
|
156
|
|
- BottomTabsController bottomTabsController = new BottomTabsController(activity, "tabsController");
|
157
|
|
- StackController stack1 = new StackController(activity, "stack1", new TestStackAnimator());
|
158
|
|
- StackController stack2 = new StackController(activity, "stack2", new TestStackAnimator());
|
|
162
|
+ BottomTabsController bottomTabsController = newTabs();
|
|
163
|
+ StackController stack1 = newStack();
|
|
164
|
+ StackController stack2 = newStack();
|
159
|
165
|
stack1.push(child1);
|
160
|
166
|
stack2.push(child2);
|
161
|
167
|
stack2.push(child3);
|
162
|
|
- stack2.push(new SimpleViewController(activity, "child4"));
|
163
|
|
- stack2.push(new SimpleViewController(activity, "child5"));
|
|
168
|
+ stack2.push(child4);
|
|
169
|
+ stack2.push(child5);
|
164
|
170
|
bottomTabsController.setTabs(Arrays.<ViewController>asList(stack1, stack2));
|
165
|
171
|
uut.setRoot(bottomTabsController);
|
166
|
172
|
|
|
@@ -171,14 +177,14 @@ public class NavigatorTest extends BaseTest {
|
171
|
177
|
|
172
|
178
|
@Test
|
173
|
179
|
public void popToRoot() throws Exception {
|
174
|
|
- BottomTabsController bottomTabsController = new BottomTabsController(activity, "tabsController");
|
175
|
|
- StackController stack1 = new StackController(activity, "stack1", new TestStackAnimator());
|
176
|
|
- StackController stack2 = new StackController(activity, "stack2", new TestStackAnimator());
|
|
180
|
+ BottomTabsController bottomTabsController = newTabs();
|
|
181
|
+ StackController stack1 = newStack();
|
|
182
|
+ StackController stack2 = newStack();
|
177
|
183
|
stack1.push(child1);
|
178
|
184
|
stack2.push(child2);
|
179
|
185
|
stack2.push(child3);
|
180
|
|
- stack2.push(new SimpleViewController(activity, "child4"));
|
181
|
|
- stack2.push(new SimpleViewController(activity, "child5"));
|
|
186
|
+ stack2.push(child4);
|
|
187
|
+ stack2.push(child5);
|
182
|
188
|
|
183
|
189
|
bottomTabsController.setTabs(Arrays.<ViewController>asList(stack1, stack2));
|
184
|
190
|
uut.setRoot(bottomTabsController);
|
|
@@ -188,8 +194,18 @@ public class NavigatorTest extends BaseTest {
|
188
|
194
|
assertThat(stack2.getChildControllers()).containsOnly(child2);
|
189
|
195
|
}
|
190
|
196
|
|
|
197
|
+ @NonNull
|
|
198
|
+ private BottomTabsController newTabs() {
|
|
199
|
+ return new BottomTabsController(activity, "tabsController");
|
|
200
|
+ }
|
|
201
|
+
|
191
|
202
|
private void assertHasSingleChildViewOf(ViewController parent, ViewController child) {
|
192
|
203
|
assertThat(((ViewGroup) parent.getView()).getChildCount()).isEqualTo(1);
|
193
|
204
|
assertThat(((ViewGroup) parent.getView()).getChildAt(0)).isEqualTo(child.getView()).isNotNull();
|
194
|
205
|
}
|
|
206
|
+
|
|
207
|
+ @NonNull
|
|
208
|
+ private StackController newStack() {
|
|
209
|
+ return new StackController(activity, "stack" + CompatUtils.generateViewId(), new TestStackAnimator());
|
|
210
|
+ }
|
195
|
211
|
}
|