[core, darwin, android] Add onDidEnterIdle to MapObserver.

didEnterIdle fires whenever render completes and no repaint is scheduled.
This commit is contained in:
Chris Loer
2018-12-06 13:31:42 +02:00
committed by Chris Loer
parent 13e117b501
commit 70c2d5a4ca
14 changed files with 161 additions and 1 deletions

View File

@@ -55,6 +55,9 @@ public class MapChangeReceiverTest {
@Mock
private MapView.OnDidFinishRenderingMapListener onDidFinishRenderingMapListener;
@Mock
private MapView.OnDidEnterIdleListener onDidEnterIdleListener;
@Mock
private MapView.OnDidFinishLoadingStyleListener onDidFinishLoadingStyleListener;
@@ -491,6 +494,36 @@ public class MapChangeReceiverTest {
}
}
@Test
public void testOnDidEnterIdleListener() {
mapChangeEventManager.addOnDidEnterIdleListener(onDidEnterIdleListener);
mapChangeEventManager.onDidEnterIdle();
verify(onDidEnterIdleListener).onDidEnterIdle();
mapChangeEventManager.removeOnDidEnterIdleListener(onDidEnterIdleListener);
mapChangeEventManager.onDidEnterIdle();
verify(onDidEnterIdleListener).onDidEnterIdle();
mapChangeEventManager.addOnDidEnterIdleListener(onDidEnterIdleListener);
Logger.setLoggerDefinition(loggerDefinition);
Exception exc = new RuntimeException();
doThrow(exc).when(onDidEnterIdleListener).onDidEnterIdle();
try {
mapChangeEventManager.onDidEnterIdle();
Assert.fail("The exception should've been re-thrown.");
} catch (RuntimeException throwable) {
verify(loggerDefinition).e(anyString(), anyString(), eq(exc));
}
Error err = new ExecutionError("", new Error());
doThrow(err).when(onDidEnterIdleListener).onDidEnterIdle();
try {
mapChangeEventManager.onDidEnterIdle();
Assert.fail("The exception should've been re-thrown.");
} catch (ExecutionError throwable) {
verify(loggerDefinition).e(anyString(), anyString(), eq(err));
}
}
@Test
public void testOnDidFinishLoadingStyleListener() {
mapChangeEventManager.addOnDidFinishLoadingStyleListener(onDidFinishLoadingStyleListener);