diff options
Diffstat (limited to 'libs/gui/tests/EndToEndNativeInputTest.cpp')
-rw-r--r-- | libs/gui/tests/EndToEndNativeInputTest.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libs/gui/tests/EndToEndNativeInputTest.cpp b/libs/gui/tests/EndToEndNativeInputTest.cpp index a30920268a..3ce8c481d2 100644 --- a/libs/gui/tests/EndToEndNativeInputTest.cpp +++ b/libs/gui/tests/EndToEndNativeInputTest.cpp @@ -1188,18 +1188,23 @@ public: std::vector<sp<IGraphicBufferProducer>> mProducers; }; -TEST_F(MultiDisplayTests, drop_input_if_layer_on_invalid_display) { +TEST_F(MultiDisplayTests, drop_touch_if_layer_on_invalid_display) { ui::LayerStack layerStack = ui::LayerStack::fromValue(42); // Do not create a display associated with the LayerStack. std::unique_ptr<InputSurface> surface = makeSurface(100, 100); surface->doTransaction([&](auto &t, auto &sc) { t.setLayerStack(sc, layerStack); }); surface->showAt(100, 100); + // Touches should be dropped if the layer is on an invalid display. injectTapOnDisplay(101, 101, layerStack.id); + EXPECT_EQ(surface->consumeEvent(100), nullptr); + + // However, we still let the window be focused and receive keys. surface->requestFocus(layerStack.id); - injectKeyOnDisplay(AKEYCODE_V, layerStack.id); + surface->assertFocusChange(true); - EXPECT_EQ(surface->consumeEvent(100), nullptr); + injectKeyOnDisplay(AKEYCODE_V, layerStack.id); + surface->expectKey(AKEYCODE_V); } TEST_F(MultiDisplayTests, virtual_display_receives_input) { |