use of com.google.wireless.android.sdk.stats.LayoutEditorState in project android by JetBrains.
the class NlUsageTrackerManagerTest method testBasicLogging.
public void testBasicLogging() {
UsageTracker usageTracker = mock(UsageTracker.class);
LinkedList<AndroidStudioEvent> logCalls = new LinkedList<>();
doAnswer(invocation -> {
logCalls.add(((AndroidStudioEvent.Builder) invocation.getArguments()[0]).build());
return null;
}).when(usageTracker).log(any());
DesignSurface surface = mock(DesignSurface.class);
when(surface.getLayoutType()).thenReturn(NlLayoutType.LAYOUT);
when(surface.getScreenMode()).thenReturn(DesignSurface.ScreenMode.BOTH);
when(surface.getScale()).thenReturn(0.50);
Configuration configuration = getConfigurationMock();
when(surface.getConfiguration()).thenReturn(configuration);
NlUsageTracker tracker = new NlUsageTrackerManager(SYNC_EXECUTOR, surface, usageTracker);
tracker.logAction(LayoutEditorEvent.LayoutEditorEventType.API_LEVEL_CHANGE);
assertEquals(1, logCalls.size());
AndroidStudioEvent studioEvent = logCalls.getFirst();
assertEquals(AndroidStudioEvent.EventCategory.LAYOUT_EDITOR, studioEvent.getCategory());
assertEquals(AndroidStudioEvent.EventKind.LAYOUT_EDITOR_EVENT, studioEvent.getKind());
assertEquals(LayoutEditorEvent.LayoutEditorEventType.API_LEVEL_CHANGE, studioEvent.getLayoutEditorEvent().getType());
// Verify state
LayoutEditorState state = studioEvent.getLayoutEditorEvent().getState();
assertEquals(LayoutEditorState.Type.LAYOUT, state.getType());
assertEquals(LayoutEditorState.Surfaces.BOTH, state.getSurfaces());
assertEquals(50, state.getConfigZoomLevel());
assertEquals("mock", state.getConfigApiLevel());
assertEquals(LayoutEditorState.Orientation.PORTRAIT, state.getConfigOrientation());
logCalls.clear();
tracker.logAction(LayoutEditorEvent.LayoutEditorEventType.RESTORE_ERROR_PANEL);
assertEquals(1, logCalls.size());
studioEvent = logCalls.getFirst();
assertEquals(LayoutEditorEvent.LayoutEditorEventType.RESTORE_ERROR_PANEL, studioEvent.getLayoutEditorEvent().getType());
}
Aggregations