Commit 5397283b authored by Lijin Shen's avatar Lijin Shen Committed by Commit Bot

[Messages] Unit tests of message queues on suspend and resume mode

More unit tests of message queues so that delegate methods are called
as expected.

Bug: 1123947
Change-Id: Ibc23469925bd68cce19b126f4cc395bcc0877789
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2505745
Commit-Queue: Lijin Shen <lazzzis@google.com>
Reviewed-by: default avatarPavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#824576}
parent 3ab94dda
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package org.chromium.components.messages; package org.chromium.components.messages;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
...@@ -21,7 +22,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner; ...@@ -21,7 +22,6 @@ import org.chromium.base.test.BaseRobolectricTestRunner;
*/ */
@RunWith(BaseRobolectricTestRunner.class) @RunWith(BaseRobolectricTestRunner.class)
public class MessageQueueManagerTest { public class MessageQueueManagerTest {
// TODO(crbug.com/1123947): test on suspending and resuming.
private MessageQueueDelegate mEmptyDelegate = new MessageQueueDelegate() { private MessageQueueDelegate mEmptyDelegate = new MessageQueueDelegate() {
@Override @Override
public void prepareToShow(Runnable callback) { public void prepareToShow(Runnable callback) {
...@@ -137,4 +137,56 @@ public class MessageQueueManagerTest { ...@@ -137,4 +137,56 @@ public class MessageQueueManagerTest {
queueManager.dismissMessage(m1); queueManager.dismissMessage(m1);
verify(m1, times(1)).dismiss(); verify(m1, times(1)).dismiss();
} }
/**
* Tests that delegate methods are properly called when queue is suspended
* and resumed.
*/
@Test
@SmallTest
public void testSuspendAndResumeQueue() {
MessageQueueDelegate delegate = Mockito.spy(mEmptyDelegate);
MessageQueueManager queueManager = new MessageQueueManager();
queueManager.setDelegate(delegate);
int token = queueManager.suspend();
MessageStateHandler m1 = Mockito.mock(MessageStateHandler.class);
queueManager.enqueueMessage(m1, m1);
verify(delegate, never()).prepareToShow(any());
verify(delegate, never()).prepareToHide(any());
verify(m1, never()).show();
verify(m1, never()).hide();
queueManager.resume(token);
verify(delegate).prepareToShow(any());
verify(m1).show();
queueManager.suspend();
verify(delegate).prepareToHide(any());
verify(m1).hide();
}
/**
* Tests that delegate methods are properly called to show/hide message
* when queue is suspended.
*/
@Test
@SmallTest
public void testDismissOnSuspend() {
MessageQueueDelegate delegate = Mockito.spy(mEmptyDelegate);
MessageQueueManager queueManager = new MessageQueueManager();
queueManager.setDelegate(delegate);
queueManager.suspend();
MessageStateHandler m1 = Mockito.mock(MessageStateHandler.class);
queueManager.enqueueMessage(m1, m1);
verify(delegate, never()).prepareToShow(any());
verify(delegate, never()).prepareToHide(any());
verify(m1, never()).show();
verify(m1, never()).hide();
queueManager.dismissMessage(m1);
verify(delegate, never()).prepareToShow(any());
verify(delegate, never()).prepareToHide(any());
verify(m1, never()).show();
verify(m1, never()).hide();
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment