Index: chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java |
index 385479e3b2e121b9c0082d4deaac077a504e45b2..8fde54ae0db0285823cb3463f13df37544ac03a2 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java |
@@ -199,7 +199,85 @@ public class OverlayPanelManagerTest extends InstrumentationTestCase { |
lowPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
highPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ assertEquals(null, panelManager.getActivePanel()); |
+ assertEquals(0, panelManager.getSuppressedQueueSize()); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"OverlayPanel"}) |
+ public void testSuppressedPanelPriority() { |
+ Context context = getInstrumentation().getTargetContext(); |
+ |
+ OverlayPanelManager panelManager = new OverlayPanelManager(); |
+ OverlayPanel lowPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.LOW, true); |
+ OverlayPanel mediumPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.MEDIUM, true); |
+ OverlayPanel highPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.HIGH, false); |
+ |
+ // Only one panel is showing, should be medium priority. |
+ mediumPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ assertEquals(panelManager.getActivePanel(), mediumPriorityPanel); |
+ |
+ // High priority should have taken preciedence. |
+ highPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ assertEquals(panelManager.getActivePanel(), highPriorityPanel); |
+ |
+ // Low priority will be suppressed; high priority should still be showing. |
+ lowPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ assertEquals(panelManager.getActivePanel(), highPriorityPanel); |
+ |
+ // Start closing panels. |
+ highPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // After high priority is closed, the medium priority panel should be visible. |
+ assertEquals(panelManager.getActivePanel(), mediumPriorityPanel); |
+ mediumPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // Finally the low priority panel should be showing. |
+ assertEquals(panelManager.getActivePanel(), lowPriorityPanel); |
+ lowPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // All panels are closed now. |
+ assertEquals(null, panelManager.getActivePanel()); |
+ assertEquals(0, panelManager.getSuppressedQueueSize()); |
+ } |
+ |
+ @SmallTest |
+ @Feature({"OverlayPanel"}) |
+ public void testSuppressedPanelOrder() { |
+ Context context = getInstrumentation().getTargetContext(); |
+ |
+ OverlayPanelManager panelManager = new OverlayPanelManager(); |
+ OverlayPanel lowPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.LOW, true); |
+ OverlayPanel mediumPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.MEDIUM, true); |
+ OverlayPanel highPriorityPanel = |
+ new MockOverlayPanel(context, null, panelManager, PanelPriority.HIGH, false); |
+ |
+ // Odd ordering for showing panels should still produce ordered suppression. |
+ highPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ lowPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ mediumPriorityPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
+ |
+ assertEquals(2, panelManager.getSuppressedQueueSize()); |
+ |
+ // Start closing panels. |
+ highPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // After high priority is closed, the medium priority panel should be visible. |
+ assertEquals(panelManager.getActivePanel(), mediumPriorityPanel); |
+ mediumPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // Finally the low priority panel should be showing. |
+ assertEquals(panelManager.getActivePanel(), lowPriorityPanel); |
+ lowPriorityPanel.closePanel(StateChangeReason.UNKNOWN, false); |
+ |
+ // All panels are closed now. |
assertTrue(panelManager.getActivePanel() == null); |
+ assertEquals(0, panelManager.getSuppressedQueueSize()); |
} |
@SmallTest |