| 
				
			 | 
			
			
				@@ -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
			 | 
			
			
				 } 
			 |