|  | @@ -26,33 +26,43 @@ public class OverlayManagerTest extends BaseTest {
 | 
	
		
			
			| 26 | 26 |      private OverlayManager uut;
 | 
	
		
			
			| 27 | 27 |      private SimpleViewController overlay1;
 | 
	
		
			
			| 28 | 28 |      private SimpleViewController overlay2;
 | 
	
		
			
			| 29 |  | -    private FrameLayout root;
 | 
	
		
			
			|  | 29 | +    private FrameLayout contentLayout;
 | 
	
		
			
			|  | 30 | +    private FrameLayout overlayContainer;
 | 
	
		
			
			| 30 | 31 |  
 | 
	
		
			
			| 31 | 32 |      @Override
 | 
	
		
			
			| 32 | 33 |      public void beforeEach() {
 | 
	
		
			
			| 33 | 34 |          Activity activity = newActivity();
 | 
	
		
			
			| 34 |  | -        root = new FrameLayout(activity);
 | 
	
		
			
			| 35 |  | -        root.layout(0, 0, 1000, 1000);
 | 
	
		
			
			| 36 |  | -        activity.setContentView(root);
 | 
	
		
			
			|  | 35 | +        contentLayout = new FrameLayout(activity);
 | 
	
		
			
			|  | 36 | +        contentLayout.layout(0, 0, 1000, 1000);
 | 
	
		
			
			|  | 37 | +        activity.setContentView(contentLayout);
 | 
	
		
			
			|  | 38 | +        overlayContainer = new FrameLayout(activity);
 | 
	
		
			
			| 37 | 39 |  
 | 
	
		
			
			| 38 | 40 |          ChildControllersRegistry childRegistry = new ChildControllersRegistry();
 | 
	
		
			
			| 39 | 41 |          overlay1 = spy(new SimpleViewController(activity, childRegistry, OVERLAY_ID_1, new Options()));
 | 
	
		
			
			| 40 | 42 |          overlay2 = spy(new SimpleViewController(activity, childRegistry, OVERLAY_ID_2, new Options()));
 | 
	
		
			
			| 41 | 43 |          uut = new OverlayManager();
 | 
	
		
			
			|  | 44 | +        uut.setContentLayout(contentLayout);
 | 
	
		
			
			|  | 45 | +    }
 | 
	
		
			
			|  | 46 | +
 | 
	
		
			
			|  | 47 | +    @Test
 | 
	
		
			
			|  | 48 | +    public void show_attachesOverlayContainerToContentLayout() {
 | 
	
		
			
			|  | 49 | +        uut.show(overlayContainer, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			|  | 50 | +        assertThat(overlayContainer.getParent()).isEqualTo(contentLayout);
 | 
	
		
			
			|  | 51 | +        uut.show(overlayContainer, overlay2, new CommandListenerAdapter());
 | 
	
		
			
			| 42 | 52 |      }
 | 
	
		
			
			| 43 | 53 |  
 | 
	
		
			
			| 44 | 54 |      @Test
 | 
	
		
			
			| 45 | 55 |      public void show() {
 | 
	
		
			
			| 46 | 56 |          CommandListenerAdapter listener = spy(new CommandListenerAdapter());
 | 
	
		
			
			| 47 |  | -        uut.show(root, overlay1, listener);
 | 
	
		
			
			|  | 57 | +        uut.show(overlayContainer, overlay1, listener);
 | 
	
		
			
			| 48 | 58 |          verify(listener, times(1)).onSuccess(OVERLAY_ID_1);
 | 
	
		
			
			| 49 |  | -        assertThat(overlay1.getView().getParent()).isEqualTo(root);
 | 
	
		
			
			|  | 59 | +        assertThat(overlay1.getView().getParent()).isEqualTo(overlayContainer);
 | 
	
		
			
			| 50 | 60 |          assertMatchParent(overlay1.getView());
 | 
	
		
			
			| 51 | 61 |      }
 | 
	
		
			
			| 52 | 62 |  
 | 
	
		
			
			| 53 | 63 |      @Test
 | 
	
		
			
			| 54 | 64 |      public void dismiss() {
 | 
	
		
			
			| 55 |  | -        uut.show(root, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			|  | 65 | +        uut.show(overlayContainer, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			| 56 | 66 |          assertThat(uut.size()).isOne();
 | 
	
		
			
			| 57 | 67 |          CommandListener listener = spy(new CommandListenerAdapter());
 | 
	
		
			
			| 58 | 68 |          uut.dismiss(overlay1.getId(), listener);
 | 
	
	
		
			
			|  | @@ -70,11 +80,22 @@ public class OverlayManagerTest extends BaseTest {
 | 
	
		
			
			| 70 | 80 |  
 | 
	
		
			
			| 71 | 81 |      @Test
 | 
	
		
			
			| 72 | 82 |      public void dismiss_onViewReturnedToFront() {
 | 
	
		
			
			| 73 |  | -        uut.show(root, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			| 74 |  | -        uut.show(root, overlay2, new CommandListenerAdapter());
 | 
	
		
			
			|  | 83 | +        uut.show(overlayContainer, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			|  | 84 | +        uut.show(overlayContainer, overlay2, new CommandListenerAdapter());
 | 
	
		
			
			| 75 | 85 |          verify(overlay1, times(0)).onViewBroughtToFront();
 | 
	
		
			
			| 76 | 86 |  
 | 
	
		
			
			| 77 | 87 |          uut.dismiss(OVERLAY_ID_2, new CommandListenerAdapter());
 | 
	
		
			
			| 78 | 88 |          verify(overlay1, times(1)).onViewBroughtToFront();
 | 
	
		
			
			| 79 | 89 |      }
 | 
	
		
			
			|  | 90 | +
 | 
	
		
			
			|  | 91 | +    @Test
 | 
	
		
			
			|  | 92 | +    public void dismiss_overlayContainerIsRemovedIfAllOverlaysAreDismissed() {
 | 
	
		
			
			|  | 93 | +        uut.show(overlayContainer, overlay1, new CommandListenerAdapter());
 | 
	
		
			
			|  | 94 | +        uut.show(overlayContainer, overlay2, new CommandListenerAdapter());
 | 
	
		
			
			|  | 95 | +
 | 
	
		
			
			|  | 96 | +        uut.dismiss(OVERLAY_ID_2, new CommandListenerAdapter());
 | 
	
		
			
			|  | 97 | +        assertThat(overlayContainer.getParent()).isEqualTo(contentLayout);
 | 
	
		
			
			|  | 98 | +        uut.dismiss(OVERLAY_ID_1, new CommandListenerAdapter());
 | 
	
		
			
			|  | 99 | +        assertThat(overlayContainer.getParent()).isNull();
 | 
	
		
			
			|  | 100 | +    }
 | 
	
		
			
			| 80 | 101 |  }
 |