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

Commit ccd3dd65 authored by Bernardo Rufino's avatar Bernardo Rufino
Browse files

Add InputDispatcher unit tests for untrusted touches [4/n]

Tests for boundary values for maximum obscuring opacity.

Bug: 158002302
Bug: 177840583
Test: atest InputDispatcherUntrustedTouchesTest
Change-Id: Ia399d4cd4493cad3bbeaaf18255ed8a608bb4c2d
parent 6d52e548
Loading
Loading
Loading
Loading
+35 −0
Original line number Original line Diff line number Diff line
@@ -4486,4 +4486,39 @@ TEST_F(InputDispatcherUntrustedTouchesTest, SelfWindowWithBlockUntrustedMode_All
    mTouchWindow->consumeAnyMotionDown();
    mTouchWindow->consumeAnyMotionDown();
}
}


TEST_F(InputDispatcherUntrustedTouchesTest,
       OpacityThresholdIs0AndWindowAboveThreshold_BlocksTouch) {
    mDispatcher->setMaximumObscuringOpacityForTouch(0.0f);
    const sp<FakeWindowHandle>& w =
            getOccludingWindow(APP_B_UID, "B", TouchOcclusionMode::USE_OPACITY, 0.1f);
    mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {w, mTouchWindow}}});

    touch();

    mTouchWindow->assertNoEvents();
}

TEST_F(InputDispatcherUntrustedTouchesTest, OpacityThresholdIs0AndWindowAtThreshold_AllowsTouch) {
    mDispatcher->setMaximumObscuringOpacityForTouch(0.0f);
    const sp<FakeWindowHandle>& w =
            getOccludingWindow(APP_B_UID, "B", TouchOcclusionMode::USE_OPACITY, 0.0f);
    mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {w, mTouchWindow}}});

    touch();

    mTouchWindow->consumeAnyMotionDown();
}

TEST_F(InputDispatcherUntrustedTouchesTest,
       OpacityThresholdIs1AndWindowBelowThreshold_AllowsTouch) {
    mDispatcher->setMaximumObscuringOpacityForTouch(1.0f);
    const sp<FakeWindowHandle>& w =
            getOccludingWindow(APP_B_UID, "B", TouchOcclusionMode::USE_OPACITY, 0.9f);
    mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {w, mTouchWindow}}});

    touch();

    mTouchWindow->consumeAnyMotionDown();
}

} // namespace android::inputdispatcher
} // namespace android::inputdispatcher