diff options
author | Daniel Norman <danielnorman@google.com> | 2020-06-24 11:01:06 -0700 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2020-06-24 11:01:06 -0700 |
commit | 4bf6174c5a9ca32a3a685f12dc81125eb2e8a11d (patch) | |
tree | a58b9a5681955dfab8c244441ac5c9adbde94c80 /libs/gui/tests/EndToEndNativeInputTest.cpp | |
parent | 218b1675916baab0d2408ce2e94851b50fb8ba0a (diff) | |
parent | 24fc3f0e66a447957edd83d68eda7d3b9dc7eed0 (diff) |
Merge RP1A.200624.001
Change-Id: I177c8610cccca1e4bf085bde792ed7d67b014bb9
Diffstat (limited to 'libs/gui/tests/EndToEndNativeInputTest.cpp')
-rw-r--r-- | libs/gui/tests/EndToEndNativeInputTest.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/gui/tests/EndToEndNativeInputTest.cpp b/libs/gui/tests/EndToEndNativeInputTest.cpp index fd14330374..9e892127db 100644 --- a/libs/gui/tests/EndToEndNativeInputTest.cpp +++ b/libs/gui/tests/EndToEndNativeInputTest.cpp @@ -104,6 +104,15 @@ public: return std::make_unique<InputSurface>(surfaceControl, width, height); } + static std::unique_ptr<InputSurface> makeCursorInputSurface( + const sp<SurfaceComposerClient> &scc, int width, int height) { + sp<SurfaceControl> surfaceControl = + scc->createSurface(String8("Test Cursor Surface"), 0 /* bufHeight */, + 0 /* bufWidth */, PIXEL_FORMAT_RGBA_8888, + ISurfaceComposerClient::eCursorWindow); + return std::make_unique<InputSurface>(surfaceControl, width, height); + } + InputEvent* consumeEvent() { waitForEventAvailable(); @@ -138,12 +147,14 @@ public: EXPECT_EQ(AMOTION_EVENT_ACTION_DOWN, mev->getAction()); EXPECT_EQ(x, mev->getX(0)); EXPECT_EQ(y, mev->getY(0)); + EXPECT_EQ(0, mev->getFlags() & VERIFIED_MOTION_EVENT_FLAGS); ev = consumeEvent(); ASSERT_NE(ev, nullptr); ASSERT_EQ(AINPUT_EVENT_TYPE_MOTION, ev->getType()); mev = static_cast<MotionEvent*>(ev); EXPECT_EQ(AMOTION_EVENT_ACTION_UP, mev->getAction()); + EXPECT_EQ(0, mev->getFlags() & VERIFIED_MOTION_EVENT_FLAGS); } ~InputSurface() { @@ -541,5 +552,18 @@ TEST_F(InputSurfacesTest, input_respects_outscreen) { injectTap(0, 0); surface->expectTap(1, 1); } + +TEST_F(InputSurfacesTest, input_ignores_cursor_layer) { + std::unique_ptr<InputSurface> surface = makeSurface(100, 100); + std::unique_ptr<InputSurface> cursorSurface = + InputSurface::makeCursorInputSurface(mComposerClient, 10, 10); + + surface->showAt(10, 10); + surface->assertFocusChange(true); + cursorSurface->showAt(10, 10); + + injectTap(11, 11); + surface->expectTap(1, 1); +} } } |