Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b683de18 authored by Yuichiro Hanada's avatar Yuichiro Hanada
Browse files

Fix DesktopModeEventLoggerTest flakiness

The test should not care calls of FrameworkStatsLog.write() which
is not related to desktop mode.

Bug: 383548431
Flag: EXEMPT Test only change
Test: atest --rerun-until-failure 100 DesktopModeEventLoggerTest
Change-Id: I7b4772182d2344600e6d5d7a6a6ed68210f9877e
parent 2a7abd9a
Loading
Loading
Loading
Loading
+279 −257
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import org.junit.Test
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.kotlin.eq
import org.mockito.kotlin.mock
import org.mockito.kotlin.never
import org.mockito.kotlin.whenever

/** Tests for [DesktopModeEventLogger]. */
@@ -90,20 +91,12 @@ class DesktopModeEventLoggerTest : ShellTestCase() {

        val sessionId = desktopModeEventLogger.currentSessionId.get()
        assertThat(sessionId).isNotEqualTo(NO_SESSION_ID)
        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                /* event */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__ENTER),
                /* enter_reason */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__ENTER_REASON__KEYBOARD_SHORTCUT_ENTER),
                /* exit_reason */
                eq(0),
                /* sessionId */
                eq(sessionId),
        verifyOnlyOneUiChangedLogging(
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__ENTER,
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__ENTER_REASON__KEYBOARD_SHORTCUT_ENTER,
            0,
            sessionId,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellEnterDesktopMode(
                eq(EnterReason.KEYBOARD_SHORTCUT_ENTER.reason),
@@ -122,20 +115,13 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
        val sessionId = desktopModeEventLogger.currentSessionId.get()
        assertThat(sessionId).isNotEqualTo(NO_SESSION_ID)
        assertThat(sessionId).isNotEqualTo(previousSessionId)
        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                /* event */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__ENTER),
                /* enter_reason */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__ENTER_REASON__KEYBOARD_SHORTCUT_ENTER),
        verifyOnlyOneUiChangedLogging(
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__ENTER,
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__ENTER_REASON__KEYBOARD_SHORTCUT_ENTER,
            /* exit_reason */
                eq(0),
                /* sessionId */
                eq(sessionId),
            0,
            sessionId,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellEnterDesktopMode(
                eq(EnterReason.KEYBOARD_SHORTCUT_ENTER.reason),
@@ -149,7 +135,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
    fun logSessionExit_noOngoingSession_doesNotLog() {
        desktopModeEventLogger.logSessionExit(ExitReason.DRAG_TO_EXIT)

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -159,20 +145,13 @@ class DesktopModeEventLoggerTest : ShellTestCase() {

        desktopModeEventLogger.logSessionExit(ExitReason.DRAG_TO_EXIT)

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                /* event */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__EXIT),
        verifyOnlyOneUiChangedLogging(
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EVENT__EXIT,
            /* enter_reason */
                eq(0),
                /* exit_reason */
                eq(FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__DRAG_TO_EXIT),
                /* sessionId */
                eq(sessionId),
            0,
            FrameworkStatsLog.DESKTOP_MODE_UICHANGED__EXIT_REASON__DRAG_TO_EXIT,
            sessionId,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellExitDesktopMode(
                eq(ExitReason.DRAG_TO_EXIT.reason),
@@ -187,7 +166,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
    fun logTaskAdded_noOngoingSession_doesNotLog() {
        desktopModeEventLogger.logTaskAdded(TASK_UPDATE)

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -197,32 +176,19 @@ class DesktopModeEventLoggerTest : ShellTestCase() {

        desktopModeEventLogger.logTaskAdded(TASK_UPDATE)

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                /* task_event */
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_ADDED),
                /* instance_id */
                eq(TASK_UPDATE.instanceId),
                /* uid */
                eq(TASK_UPDATE.uid),
                /* task_height */
                eq(TASK_UPDATE.taskHeight),
                /* task_width */
                eq(TASK_UPDATE.taskWidth),
                /* task_x */
                eq(TASK_UPDATE.taskX),
                /* task_y */
                eq(TASK_UPDATE.taskY),
                /* session_id */
                eq(sessionId),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                /* visible_task_count */
                eq(TASK_COUNT),
        verifyOnlyOneTaskUpdateLogging(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_ADDED,
            TASK_UPDATE.instanceId,
            TASK_UPDATE.uid,
            TASK_UPDATE.taskHeight,
            TASK_UPDATE.taskWidth,
            TASK_UPDATE.taskX,
            TASK_UPDATE.taskY,
            sessionId,
            UNSET_MINIMIZE_REASON,
            UNSET_UNMINIMIZE_REASON,
            TASK_COUNT,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_ADDED),
@@ -245,7 +211,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
    fun logTaskRemoved_noOngoingSession_doesNotLog() {
        desktopModeEventLogger.logTaskRemoved(TASK_UPDATE)

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -255,32 +221,19 @@ class DesktopModeEventLoggerTest : ShellTestCase() {

        desktopModeEventLogger.logTaskRemoved(TASK_UPDATE)

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                /* task_event */
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_REMOVED),
                /* instance_id */
                eq(TASK_UPDATE.instanceId),
                /* uid */
                eq(TASK_UPDATE.uid),
                /* task_height */
                eq(TASK_UPDATE.taskHeight),
                /* task_width */
                eq(TASK_UPDATE.taskWidth),
                /* task_x */
                eq(TASK_UPDATE.taskX),
                /* task_y */
                eq(TASK_UPDATE.taskY),
                /* session_id */
                eq(sessionId),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                /* visible_task_count */
                eq(TASK_COUNT),
        verifyOnlyOneTaskUpdateLogging(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_REMOVED,
            TASK_UPDATE.instanceId,
            TASK_UPDATE.uid,
            TASK_UPDATE.taskHeight,
            TASK_UPDATE.taskWidth,
            TASK_UPDATE.taskX,
            TASK_UPDATE.taskY,
            sessionId,
            UNSET_MINIMIZE_REASON,
            UNSET_UNMINIMIZE_REASON,
            TASK_COUNT,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_REMOVED),
@@ -303,7 +256,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
    fun logTaskInfoChanged_noOngoingSession_doesNotLog() {
        desktopModeEventLogger.logTaskInfoChanged(TASK_UPDATE)

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -313,35 +266,19 @@ class DesktopModeEventLoggerTest : ShellTestCase() {

        desktopModeEventLogger.logTaskInfoChanged(TASK_UPDATE)

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                /* task_event */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED
                ),
                /* instance_id */
                eq(TASK_UPDATE.instanceId),
                /* uid */
                eq(TASK_UPDATE.uid),
                /* task_height */
                eq(TASK_UPDATE.taskHeight),
                /* task_width */
                eq(TASK_UPDATE.taskWidth),
                /* task_x */
                eq(TASK_UPDATE.taskX),
                /* task_y */
                eq(TASK_UPDATE.taskY),
                /* session_id */
                eq(sessionId),
                eq(UNSET_MINIMIZE_REASON),
                eq(UNSET_UNMINIMIZE_REASON),
                /* visible_task_count */
                eq(TASK_COUNT),
        verifyOnlyOneTaskUpdateLogging(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED,
            TASK_UPDATE.instanceId,
            TASK_UPDATE.uid,
            TASK_UPDATE.taskHeight,
            TASK_UPDATE.taskWidth,
            TASK_UPDATE.taskX,
            TASK_UPDATE.taskY,
            sessionId,
            UNSET_MINIMIZE_REASON,
            UNSET_UNMINIMIZE_REASON,
            TASK_COUNT,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(
@@ -371,37 +308,19 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            createTaskUpdate(minimizeReason = MinimizeReason.TASK_LIMIT)
        )

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                /* task_event */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED
                ),
                /* instance_id */
                eq(TASK_UPDATE.instanceId),
                /* uid */
                eq(TASK_UPDATE.uid),
                /* task_height */
                eq(TASK_UPDATE.taskHeight),
                /* task_width */
                eq(TASK_UPDATE.taskWidth),
                /* task_x */
                eq(TASK_UPDATE.taskX),
                /* task_y */
                eq(TASK_UPDATE.taskY),
                /* session_id */
                eq(sessionId),
                /* minimize_reason */
                eq(MinimizeReason.TASK_LIMIT.reason),
                /* unminimize_reason */
                eq(UNSET_UNMINIMIZE_REASON),
                /* visible_task_count */
                eq(TASK_COUNT),
        verifyOnlyOneTaskUpdateLogging(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED,
            TASK_UPDATE.instanceId,
            TASK_UPDATE.uid,
            TASK_UPDATE.taskHeight,
            TASK_UPDATE.taskWidth,
            TASK_UPDATE.taskX,
            TASK_UPDATE.taskY,
            sessionId,
            MinimizeReason.TASK_LIMIT.reason,
            UNSET_UNMINIMIZE_REASON,
            TASK_COUNT,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(
@@ -431,37 +350,19 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            createTaskUpdate(unminimizeReason = UnminimizeReason.TASKBAR_TAP)
        )

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                /* task_event */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED
                ),
                /* instance_id */
                eq(TASK_UPDATE.instanceId),
                /* uid */
                eq(TASK_UPDATE.uid),
                /* task_height */
                eq(TASK_UPDATE.taskHeight),
                /* task_width */
                eq(TASK_UPDATE.taskWidth),
                /* task_x */
                eq(TASK_UPDATE.taskX),
                /* task_y */
                eq(TASK_UPDATE.taskY),
                /* session_id */
                eq(sessionId),
                /* minimize_reason */
                eq(UNSET_MINIMIZE_REASON),
                /* unminimize_reason */
                eq(UnminimizeReason.TASKBAR_TAP.reason),
                /* visible_task_count */
                eq(TASK_COUNT),
        verifyOnlyOneTaskUpdateLogging(
            FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE__TASK_EVENT__TASK_INFO_CHANGED,
            TASK_UPDATE.instanceId,
            TASK_UPDATE.uid,
            TASK_UPDATE.taskHeight,
            TASK_UPDATE.taskWidth,
            TASK_UPDATE.taskX,
            TASK_UPDATE.taskY,
            sessionId,
            UNSET_MINIMIZE_REASON,
            UnminimizeReason.TASKBAR_TAP.reason,
            TASK_COUNT,
        )
        }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verify {
            EventLogTags.writeWmShellDesktopModeTaskUpdate(
                eq(
@@ -491,7 +392,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            createTaskInfo(),
        )

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -509,40 +410,18 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            displayController,
        )

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED),
                /* resize_trigger */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZE_TRIGGER__CORNER_RESIZE_TRIGGER
                ),
                /* resizing_stage */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZING_STAGE__START_RESIZING_STAGE
                ),
                /* input_method */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__INPUT_METHOD__UNKNOWN_INPUT_METHOD
                ),
                /* desktop_mode_session_id */
                eq(sessionId),
                /* instance_id */
                eq(TASK_SIZE_UPDATE.instanceId),
                /* uid */
                eq(TASK_SIZE_UPDATE.uid),
                /* task_width */
                eq(TASK_SIZE_UPDATE.taskWidth),
                /* task_height */
                eq(TASK_SIZE_UPDATE.taskHeight),
                /* display_area */
                eq(DISPLAY_AREA),
        verifyOnlyOneTaskSizeUpdatedLogging(
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZE_TRIGGER__CORNER_RESIZE_TRIGGER,
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZING_STAGE__START_RESIZING_STAGE,
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__INPUT_METHOD__UNKNOWN_INPUT_METHOD,
            sessionId,
            TASK_SIZE_UPDATE.instanceId,
            TASK_SIZE_UPDATE.uid,
            TASK_SIZE_UPDATE.taskWidth,
            TASK_SIZE_UPDATE.taskHeight,
            DISPLAY_AREA,
        )
    }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
    }

    @Test
    fun logTaskResizingEnded_noOngoingSession_doesNotLog() {
@@ -552,7 +431,7 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            createTaskInfo(),
        )

        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
        verifyNoLogging()
        verifyZeroInteractions(staticMockMarker(EventLogTags::class.java))
    }

@@ -568,40 +447,18 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            displayController = displayController,
        )

        verify {
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED),
                /* resize_trigger */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZE_TRIGGER__CORNER_RESIZE_TRIGGER
                ),
                /* resizing_stage */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZING_STAGE__END_RESIZING_STAGE
                ),
                /* input_method */
                eq(
                    FrameworkStatsLog
                        .DESKTOP_MODE_TASK_SIZE_UPDATED__INPUT_METHOD__UNKNOWN_INPUT_METHOD
                ),
                /* desktop_mode_session_id */
                eq(sessionId),
                /* instance_id */
                eq(TASK_SIZE_UPDATE.instanceId),
                /* uid */
                eq(TASK_SIZE_UPDATE.uid),
                /* task_width */
                eq(TASK_SIZE_UPDATE.taskWidth),
                /* task_height */
                eq(TASK_SIZE_UPDATE.taskHeight),
                /* display_area */
                eq(DISPLAY_AREA),
        verifyOnlyOneTaskSizeUpdatedLogging(
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZE_TRIGGER__CORNER_RESIZE_TRIGGER,
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__RESIZING_STAGE__END_RESIZING_STAGE,
            FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED__INPUT_METHOD__UNKNOWN_INPUT_METHOD,
            sessionId,
            TASK_SIZE_UPDATE.instanceId,
            TASK_SIZE_UPDATE.uid,
            TASK_SIZE_UPDATE.taskWidth,
            TASK_SIZE_UPDATE.taskHeight,
            DISPLAY_AREA,
        )
    }
        verifyZeroInteractions(staticMockMarker(FrameworkStatsLog::class.java))
    }

    private fun startDesktopModeSession(): Int {
        desktopModeEventLogger.logSessionEnter(EnterReason.KEYBOARD_SHORTCUT_ENTER)
@@ -652,6 +509,171 @@ class DesktopModeEventLoggerTest : ShellTestCase() {
            .build()
    }

    private fun verifyNoLogging() {
        verify(
            {
                FrameworkStatsLog.write(
                    eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                )
            },
            never(),
        )
        verify(
            {
                FrameworkStatsLog.write(
                    eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                )
            },
            never(),
        )
        verify(
            {
                FrameworkStatsLog.write(
                    eq(FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                    anyInt(),
                )
            },
            never(),
        )
    }

    private fun verifyOnlyOneUiChangedLogging(
        event: Int,
        enterReason: Int,
        exitReason: Int,
        sessionId: Int,
    ) {
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                eq(event),
                eq(enterReason),
                eq(exitReason),
                eq(sessionId),
            )
        })
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_UI_CHANGED),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
            )
        })
    }

    private fun verifyOnlyOneTaskUpdateLogging(
        taskEvent: Int,
        instanceId: Int,
        uid: Int,
        taskHeight: Int,
        taskWidth: Int,
        taskX: Int,
        taskY: Int,
        sessionId: Int,
        minimizeReason: Int,
        unminimizeReason: Int,
        visibleTaskCount: Int,
    ) {
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                eq(taskEvent),
                eq(instanceId),
                eq(uid),
                eq(taskHeight),
                eq(taskWidth),
                eq(taskX),
                eq(taskY),
                eq(sessionId),
                eq(minimizeReason),
                eq(unminimizeReason),
                eq(visibleTaskCount),
            )
        })
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_SESSION_TASK_UPDATE),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
            )
        })
    }

    private fun verifyOnlyOneTaskSizeUpdatedLogging(
        resizeTrigger: Int,
        resizingStage: Int,
        inputMethod: Int,
        sessionId: Int,
        instanceId: Int,
        uid: Int,
        taskWidth: Int,
        taskHeight: Int,
        displayArea: Int,
    ) {
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED),
                eq(resizeTrigger),
                eq(resizingStage),
                eq(inputMethod),
                eq(sessionId),
                eq(instanceId),
                eq(uid),
                eq(taskWidth),
                eq(taskHeight),
                eq(displayArea),
            )
        })
        verify({
            FrameworkStatsLog.write(
                eq(FrameworkStatsLog.DESKTOP_MODE_TASK_SIZE_UPDATED),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
                anyInt(),
            )
        })
    }

    private companion object {
        private const val TASK_ID = 1
        private const val TASK_UID = 1