Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4770)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java

Issue 2388793005: Support 3+ panels in the OverlayPanelManager (Closed)
Patch Set: nit Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698