From b559d15fd42fb38c6b014ea21f2cfbd05191be09 Mon Sep 17 00:00:00 2001 From: Loic Sharma Date: Wed, 8 Nov 2023 13:08:33 -0800 Subject: [PATCH] [Windows] Remove global state in keyboard tests --- shell/platform/windows/keyboard_unittests.cc | 959 ++++++++++--------- 1 file changed, 490 insertions(+), 469 deletions(-) diff --git a/shell/platform/windows/keyboard_unittests.cc b/shell/platform/windows/keyboard_unittests.cc index b999a2215030f..629c7ebdea372 100644 --- a/shell/platform/windows/keyboard_unittests.cc +++ b/shell/platform/windows/keyboard_unittests.cc @@ -333,32 +333,23 @@ typedef struct { std::string text_method_call; // For kKeyCallTextMethodCall } KeyCall; -static std::vector key_calls; - -void clear_key_calls() { - for (KeyCall& key_call : key_calls) { - if (key_call.type == KeyCall::kKeyCallOnKey && - key_call.key_event.character != nullptr) { - delete[] key_call.key_event.character; - } - } - key_calls.clear(); -} - // A FlutterWindowsView that spies on text. class TestFlutterWindowsView : public FlutterWindowsView { public: - TestFlutterWindowsView(std::unique_ptr window) - : FlutterWindowsView(std::move(window)) {} + TestFlutterWindowsView(std::function on_key_call, + std::unique_ptr window) + : on_key_call_(on_key_call), FlutterWindowsView(std::move(window)) {} void OnText(const std::u16string& text) override { - key_calls.push_back(KeyCall{ + on_key_call_(KeyCall{ .type = KeyCall::kKeyCallOnText, .text = text, }); } private: + std::function on_key_call_; + FML_DISALLOW_COPY_AND_ASSIGN(TestFlutterWindowsView); }; @@ -372,6 +363,7 @@ class KeyboardTester { map_virtual_key_layout_(LayoutDefault) { engine_ = GetTestEngine(context); view_ = std::make_unique( + [this](KeyCall key_call) { key_calls.push_back(key_call); }, // The WindowBindingHandler is used for window size and such, and // doesn't affect keyboard. std::make_unique<::testing::NiceMock>()); @@ -408,7 +400,7 @@ class KeyboardTester { void InjectKeyboardChanges(std::vector changes) { FML_DCHECK(window_ != nullptr); - window_->InjectKeyboardChanges(changes); + window_->InjectKeyboardChanges(std::move(changes)); } // Simulates receiving a platform message from the framework. @@ -451,6 +443,18 @@ class KeyboardTester { return count; } + void clear_key_calls() { + for (KeyCall& key_call : key_calls) { + if (key_call.type == KeyCall::kKeyCallOnKey && + key_call.key_event.character != nullptr) { + delete[] key_call.key_event.character; + } + } + key_calls.clear(); + } + + std::vector key_calls; + private: std::unique_ptr engine_; std::unique_ptr view_; @@ -483,7 +487,7 @@ class KeyboardTester { auto key_response_controller = std::make_shared(); key_response_controller->SetEmbedderResponse( - [&callback_handler = callback_handler_]( + [&key_calls = key_calls, &callback_handler = callback_handler_]( const FlutterKeyEvent* event, MockKeyResponseController::ResponseCallback callback) { FlutterKeyEvent clone_event = *event; @@ -497,7 +501,8 @@ class KeyboardTester { callback_handler(event, callback); }); key_response_controller->SetTextInputResponse( - [](std::unique_ptr document) { + [&key_calls = + key_calls](std::unique_ptr document) { rapidjson::StringBuffer buffer; rapidjson::Writer writer(buffer); document->Accept(writer); @@ -564,10 +569,10 @@ TEST_F(KeyboardTest, LowerCaseAHandled) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // Release A @@ -575,10 +580,10 @@ TEST_F(KeyboardTest, LowerCaseAHandled) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -595,11 +600,11 @@ TEST_F(KeyboardTest, LowerCaseAUnhandled) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"a"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"a"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release A @@ -607,10 +612,10 @@ TEST_F(KeyboardTest, LowerCaseAUnhandled) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -625,11 +630,11 @@ TEST_F(KeyboardTest, ArrowLeftHandled) { WmKeyDownInfo{VK_LEFT, kScanCodeArrowLeft, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalArrowLeft, kLogicalArrowLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // Release ArrowLeft @@ -637,10 +642,11 @@ TEST_F(KeyboardTest, ArrowLeftHandled) { WmKeyUpInfo{VK_LEFT, kScanCodeArrowLeft, kExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalArrowLeft, - kLogicalArrowLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalArrowLeft, kLogicalArrowLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -655,11 +661,11 @@ TEST_F(KeyboardTest, ArrowLeftUnhandled) { WmKeyDownInfo{VK_LEFT, kScanCodeArrowLeft, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalArrowLeft, kLogicalArrowLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ArrowLeft @@ -667,10 +673,11 @@ TEST_F(KeyboardTest, ArrowLeftUnhandled) { WmKeyUpInfo{VK_LEFT, kScanCodeArrowLeft, kExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalArrowLeft, - kLogicalArrowLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalArrowLeft, kLogicalArrowLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -686,11 +693,11 @@ TEST_F(KeyboardTest, ShiftLeftUnhandled) { WmKeyDownInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Hold ShiftLeft @@ -698,11 +705,11 @@ TEST_F(KeyboardTest, ShiftLeftUnhandled) { WmKeyDownInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended, kWasDown}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeRepeat, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeRepeat, kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ShiftLeft @@ -711,10 +718,11 @@ TEST_F(KeyboardTest, ShiftLeftUnhandled) { WmKeyUpInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftLeft, - kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalShiftLeft, kLogicalShiftLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -730,11 +738,11 @@ TEST_F(KeyboardTest, ShiftRightUnhandled) { WmKeyDownInfo{VK_SHIFT, kScanCodeShiftRight, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftRight, kLogicalShiftRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ShiftRight @@ -743,11 +751,11 @@ TEST_F(KeyboardTest, ShiftRightUnhandled) { WmKeyUpInfo{VK_SHIFT, kScanCodeShiftRight, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftRight, kLogicalShiftRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -763,11 +771,11 @@ TEST_F(KeyboardTest, CtrlLeftUnhandled) { WmKeyDownInfo{VK_CONTROL, kScanCodeControl, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release CtrlLeft @@ -776,11 +784,11 @@ TEST_F(KeyboardTest, CtrlLeftUnhandled) { WmKeyUpInfo{VK_SHIFT, kScanCodeControl, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -796,11 +804,11 @@ TEST_F(KeyboardTest, CtrlRightUnhandled) { WmKeyDownInfo{VK_CONTROL, kScanCodeControl, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlRight, kLogicalControlRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release CtrlRight @@ -809,11 +817,11 @@ TEST_F(KeyboardTest, CtrlRightUnhandled) { WmKeyUpInfo{VK_CONTROL, kScanCodeControl, kExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlRight, kLogicalControlRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -829,10 +837,10 @@ TEST_F(KeyboardTest, AltLeftUnhandled) { WmSysKeyDownInfo{VK_MENU, kScanCodeAlt, kNotExtended, kWasUp}.Build( kWmResultDefault)}); // Always pass to the default WndProc. - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalAltLeft, - kLogicalAltLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalAltLeft, kLogicalAltLeft, "", kNotSynthesized); + tester.clear_key_calls(); // Don't redispatch sys messages. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); @@ -842,10 +850,10 @@ TEST_F(KeyboardTest, AltLeftUnhandled) { WmSysKeyUpInfo{VK_MENU, kScanCodeAlt, kNotExtended}.Build( kWmResultDefault)}); // Always pass to the default WndProc. - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalAltLeft, - kLogicalAltLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalAltLeft, kLogicalAltLeft, "", kNotSynthesized); + tester.clear_key_calls(); // Don't redispatch sys messages. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -862,11 +870,11 @@ TEST_F(KeyboardTest, AltRightUnhandled) { WmSysKeyDownInfo{VK_MENU, kScanCodeAlt, kExtended, kWasUp}.Build( kWmResultDefault)}); // Always pass to the default WndProc. - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalAltRight, kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); // Don't redispatch sys messages. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); @@ -876,10 +884,11 @@ TEST_F(KeyboardTest, AltRightUnhandled) { WmSysKeyUpInfo{VK_MENU, kScanCodeAlt, kExtended}.Build( kWmResultDefault)}); // Always pass to the default WndProc. - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalAltRight, - kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalAltRight, kLogicalAltRight, "", + kNotSynthesized); + tester.clear_key_calls(); // Don't redispatch sys messages. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -896,11 +905,11 @@ TEST_F(KeyboardTest, MetaLeftUnhandled) { WmKeyDownInfo{VK_LWIN, kScanCodeMetaLeft, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalMetaLeft, kLogicalMetaLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release MetaLeft @@ -908,10 +917,11 @@ TEST_F(KeyboardTest, MetaLeftUnhandled) { KeyStateChange{VK_LWIN, false, true}, WmKeyUpInfo{VK_LWIN, kScanCodeMetaLeft, kExtended}.Build(kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalMetaLeft, - kLogicalMetaLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalMetaLeft, kLogicalMetaLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -927,11 +937,11 @@ TEST_F(KeyboardTest, MetaRightUnhandled) { WmKeyDownInfo{VK_RWIN, kScanCodeMetaRight, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalMetaRight, kLogicalMetaRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release MetaRight @@ -940,10 +950,11 @@ TEST_F(KeyboardTest, MetaRightUnhandled) { WmKeyUpInfo{VK_RWIN, kScanCodeMetaRight, kExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalMetaRight, - kLogicalMetaRight, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalMetaRight, kLogicalMetaRight, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -966,11 +977,11 @@ TEST_F(KeyboardTest, RepeatA) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasDown}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeRepeat, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeRepeat, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -999,11 +1010,11 @@ TEST_F(KeyboardTest, RestartClearsKeyboardState) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasDown}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -1021,11 +1032,11 @@ TEST_F(KeyboardTest, ShiftLeftKeyA) { WmKeyDownInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press A @@ -1035,11 +1046,11 @@ TEST_F(KeyboardTest, ShiftLeftKeyA) { WmCharInfo{'A', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "A", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"A"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "A", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"A"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release ShiftLeft @@ -1048,10 +1059,11 @@ TEST_F(KeyboardTest, ShiftLeftKeyA) { WmKeyUpInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftLeft, - kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalShiftLeft, kLogicalShiftLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release A @@ -1059,10 +1071,10 @@ TEST_F(KeyboardTest, ShiftLeftKeyA) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1080,11 +1092,11 @@ TEST_F(KeyboardTest, CtrlLeftKeyA) { WmKeyDownInfo{VK_CONTROL, kScanCodeControl, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press A @@ -1094,10 +1106,10 @@ TEST_F(KeyboardTest, CtrlLeftKeyA) { WmCharInfo{0x01, kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release A @@ -1105,10 +1117,10 @@ TEST_F(KeyboardTest, CtrlLeftKeyA) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ControlLeft @@ -1117,11 +1129,11 @@ TEST_F(KeyboardTest, CtrlLeftKeyA) { WmKeyUpInfo{VK_CONTROL, kScanCodeControl, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1138,11 +1150,11 @@ TEST_F(KeyboardTest, CtrlLeftDigit1) { WmKeyDownInfo{VK_CONTROL, kScanCodeControl, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press 1 @@ -1150,10 +1162,10 @@ TEST_F(KeyboardTest, CtrlLeftDigit1) { WmKeyDownInfo{kVirtualDigit1, kScanCodeDigit1, kNotExtended, kWasUp} .Build(kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalDigit1, - kLogicalDigit1, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalDigit1, kLogicalDigit1, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release 1 @@ -1161,10 +1173,10 @@ TEST_F(KeyboardTest, CtrlLeftDigit1) { WmKeyUpInfo{kVirtualDigit1, kScanCodeDigit1, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalDigit1, - kLogicalDigit1, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalDigit1, kLogicalDigit1, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ControlLeft @@ -1173,11 +1185,11 @@ TEST_F(KeyboardTest, CtrlLeftDigit1) { WmKeyUpInfo{VK_CONTROL, kScanCodeControl, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1196,11 +1208,11 @@ TEST_F(KeyboardTest, Digit1OnFrenchLayout) { WmCharInfo{'&', kScanCodeDigit1, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalDigit1, - kLogicalDigit1, "&", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"&"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalDigit1, kLogicalDigit1, "&", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"&"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release 1 @@ -1208,10 +1220,10 @@ TEST_F(KeyboardTest, Digit1OnFrenchLayout) { WmKeyUpInfo{kVirtualDigit1, kScanCodeDigit1, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalDigit1, - kLogicalDigit1, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalDigit1, kLogicalDigit1, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1231,14 +1243,14 @@ TEST_F(KeyboardTest, AltGrModifiedKey) { WmKeyDownInfo{VK_MENU, kScanCodeAlt, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, kPhysicalAltRight, kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Press Q @@ -1248,11 +1260,11 @@ TEST_F(KeyboardTest, AltGrModifiedKey) { WmCharInfo{'@', kScanCodeKeyQ, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyQ, - kLogicalKeyQ, "@", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"@"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyQ, kLogicalKeyQ, "@", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"@"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release Q @@ -1260,10 +1272,10 @@ TEST_F(KeyboardTest, AltGrModifiedKey) { WmKeyUpInfo{kVirtualKeyQ, kScanCodeKeyQ, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyQ, - kLogicalKeyQ, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyQ, kLogicalKeyQ, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release AltGr. Win32 doesn't dispatch ControlLeft up. Instead Flutter will @@ -1278,13 +1290,14 @@ TEST_F(KeyboardTest, AltGrModifiedKey) { WmSysKeyUpInfo{VK_MENU, kScanCodeAlt, kExtended}.Build( kWmResultDefault)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalAltRight, - kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, + kPhysicalAltRight, kLogicalAltRight, "", + kNotSynthesized); + tester.clear_key_calls(); // The sys key up must not be redispatched. The forged ControlLeft up will. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1318,14 +1331,14 @@ TEST_F(KeyboardTest, AltGrTwice) { WmKeyDownInfo{VK_MENU, kScanCodeAlt, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, kPhysicalAltRight, kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // 2. AltGr up. @@ -1339,13 +1352,14 @@ TEST_F(KeyboardTest, AltGrTwice) { KeyStateChange{VK_RMENU, false, true}, WmSysKeyUpInfo{VK_MENU, kScanCodeAlt, kExtended}.Build( kWmResultDefault)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalAltRight, - kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, + kPhysicalAltRight, kLogicalAltRight, "", + kNotSynthesized); + tester.clear_key_calls(); // The sys key up must not be redispatched. The forged ControlLeft up will. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); @@ -1359,14 +1373,14 @@ TEST_F(KeyboardTest, AltGrTwice) { WmKeyDownInfo{VK_MENU, kScanCodeAlt, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, kPhysicalAltRight, kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // 4. AltGr up. @@ -1380,13 +1394,14 @@ TEST_F(KeyboardTest, AltGrTwice) { KeyStateChange{VK_RMENU, false, false}, WmSysKeyUpInfo{VK_MENU, kScanCodeAlt, kExtended}.Build( kWmResultDefault)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalAltRight, - kLogicalAltRight, "", kNotSynthesized); - clear_key_calls(); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, + kPhysicalAltRight, kLogicalAltRight, "", + kNotSynthesized); + tester.clear_key_calls(); // The sys key up must not be redispatched. The forged ControlLeft up will. EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); @@ -1394,10 +1409,10 @@ TEST_F(KeyboardTest, AltGrTwice) { tester.InjectKeyboardChanges(std::vector{ WmKeyUpInfo{VK_CONTROL, kScanCodeControl, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -1416,11 +1431,11 @@ TEST_F(KeyboardTest, DeadKeyThatCombines) { WmDeadCharInfo{'^', kScanCodeBracketLeft, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalBracketLeft, kLogicalBracketRight, "^", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release ^¨ @@ -1428,11 +1443,11 @@ TEST_F(KeyboardTest, DeadKeyThatCombines) { WmKeyUpInfo{0xDD, kScanCodeBracketLeft, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalBracketLeft, kLogicalBracketRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press E @@ -1442,11 +1457,11 @@ TEST_F(KeyboardTest, DeadKeyThatCombines) { WmCharInfo{0xEA, kScanCodeKeyE, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyE, - kLogicalKeyE, "ê", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"ê"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyE, kLogicalKeyE, "ê", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"ê"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release E @@ -1454,10 +1469,10 @@ TEST_F(KeyboardTest, DeadKeyThatCombines) { WmKeyUpInfo{kVirtualKeyE, kScanCodeKeyE, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyE, - kLogicalKeyE, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyE, kLogicalKeyE, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1476,11 +1491,11 @@ TEST_F(KeyboardTest, DeadKeyWithoutDeadMaskThatCombines) { WmKeyDownInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press 6^ @@ -1490,20 +1505,20 @@ TEST_F(KeyboardTest, DeadKeyWithoutDeadMaskThatCombines) { WmDeadCharInfo{'^', kScanCodeDigit6, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalDigit6, - kLogicalDigit6, "6", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalDigit6, kLogicalDigit6, "6", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release 6^ tester.InjectKeyboardChanges(std::vector{ WmKeyUpInfo{'6', kScanCodeDigit6, kNotExtended}.Build(kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalDigit6, - kLogicalDigit6, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalDigit6, kLogicalDigit6, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Release ShiftLeft @@ -1512,10 +1527,11 @@ TEST_F(KeyboardTest, DeadKeyWithoutDeadMaskThatCombines) { WmKeyUpInfo{VK_SHIFT, kScanCodeShiftLeft, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftLeft, - kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalShiftLeft, kLogicalShiftLeft, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press E @@ -1525,11 +1541,11 @@ TEST_F(KeyboardTest, DeadKeyWithoutDeadMaskThatCombines) { WmCharInfo{0xEA, kScanCodeKeyE, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyE, - kLogicalKeyE, "ê", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"ê"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyE, kLogicalKeyE, "ê", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"ê"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release E @@ -1537,10 +1553,10 @@ TEST_F(KeyboardTest, DeadKeyWithoutDeadMaskThatCombines) { WmKeyUpInfo{kVirtualKeyE, kScanCodeKeyE, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyE, - kLogicalKeyE, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyE, kLogicalKeyE, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1559,11 +1575,11 @@ TEST_F(KeyboardTest, DeadKeyThatDoesNotCombine) { WmDeadCharInfo{'^', kScanCodeBracketLeft, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalBracketLeft, kLogicalBracketRight, "^", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release ^¨ @@ -1571,11 +1587,11 @@ TEST_F(KeyboardTest, DeadKeyThatDoesNotCombine) { WmKeyUpInfo{0xDD, kScanCodeBracketLeft, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalBracketLeft, kLogicalBracketRight, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press 1 @@ -1587,12 +1603,12 @@ TEST_F(KeyboardTest, DeadKeyThatDoesNotCombine) { WmCharInfo{'&', kScanCodeDigit1, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 3); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalDigit1, - kLogicalDigit1, "^", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"^"); - EXPECT_CALL_IS_TEXT(key_calls[2], u"&"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 3); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalDigit1, kLogicalDigit1, "^", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"^"); + EXPECT_CALL_IS_TEXT(tester.key_calls[2], u"&"); + tester.clear_key_calls(); // TODO(dkwingsmt): This count should probably be 3. Currently the '^' // message is redispatched due to being part of the KeyDown session, which is // not handled by the framework, while the '&' message is not redispatched @@ -1605,10 +1621,10 @@ TEST_F(KeyboardTest, DeadKeyThatDoesNotCombine) { WmKeyUpInfo{kVirtualDigit1, kScanCodeDigit1, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalDigit1, - kLogicalDigit1, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalDigit1, kLogicalDigit1, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1628,11 +1644,11 @@ TEST_F(KeyboardTest, DeadKeyTwiceThenLetter) { WmDeadCharInfo{'`', kScanCodeBackquote, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalBackquote, kLogicalBackquote, "`", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release ` @@ -1640,10 +1656,11 @@ TEST_F(KeyboardTest, DeadKeyTwiceThenLetter) { WmKeyUpInfo{0xC0, kScanCodeBackquote, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalBackquote, - kLogicalBackquote, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalBackquote, kLogicalBackquote, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press ` again. @@ -1666,17 +1683,17 @@ TEST_F(KeyboardTest, DeadKeyTwiceThenLetter) { kWmResultZero)}); EXPECT_EQ(recorded_callbacks.size(), 1); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalBackquote, kLogicalBackquote, "`", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); // Key down event responded with false. recorded_callbacks.front()(false); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_TEXT(key_calls[0], u"`"); - EXPECT_CALL_IS_TEXT(key_calls[1], u"`"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_TEXT(tester.key_calls[0], u"`"); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"`"); + tester.clear_key_calls(); // TODO(dkwingsmt): This count should probably be 3. See the comment above // that is marked with the same issue. // https://github.com/flutter/flutter/issues/98306 @@ -1689,10 +1706,11 @@ TEST_F(KeyboardTest, DeadKeyTwiceThenLetter) { WmKeyUpInfo{0xC0, kScanCodeBackquote, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalBackquote, - kLogicalBackquote, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalBackquote, kLogicalBackquote, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1713,13 +1731,13 @@ TEST_F(KeyboardTest, MultibyteCharacter) { WmCharInfo{0xdf45, kScanCodeKeyW, kNotExtended, kWasUp}.Build( kWmResultZero)}); - const char* st = key_calls[0].key_event.character; + const char* st = tester.key_calls[0].key_event.character; - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyW, - kLogicalKeyW, "𐍅", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"𐍅"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyW, kLogicalKeyW, "𐍅", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"𐍅"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 3); // Release W @@ -1727,10 +1745,10 @@ TEST_F(KeyboardTest, MultibyteCharacter) { WmKeyUpInfo{kVirtualKeyW, kScanCodeKeyW, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyW, - kLogicalKeyW, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyW, kLogicalKeyW, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1749,187 +1767,187 @@ TEST_F(KeyboardTest, SynthesizeModifiers) { // ShiftLeft tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LSHIFT, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftLeft, kLogicalShiftLeft, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LSHIFT, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftLeft, - kLogicalShiftLeft, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalShiftLeft, kLogicalShiftLeft, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // ShiftRight tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RSHIFT, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftRight, kLogicalShiftRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RSHIFT, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalShiftRight, kLogicalShiftRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // ControlLeft tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LCONTROL, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlLeft, kLogicalControlLeft, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LCONTROL, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlLeft, kLogicalControlLeft, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // ControlRight tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RCONTROL, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalControlRight, kLogicalControlRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RCONTROL, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalControlRight, kLogicalControlRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // AltLeft tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LMENU, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalAltLeft, - kLogicalAltLeft, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalAltLeft, kLogicalAltLeft, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LMENU, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalAltLeft, - kLogicalAltLeft, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalAltLeft, kLogicalAltLeft, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // AltRight tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RMENU, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalAltRight, kLogicalAltRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RMENU, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalAltRight, - kLogicalAltRight, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalAltRight, kLogicalAltRight, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // MetaLeft tester.InjectKeyboardChanges( std::vector{KeyStateChange{VK_LWIN, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalMetaLeft, kLogicalMetaLeft, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_LWIN, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalMetaLeft, - kLogicalMetaLeft, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalMetaLeft, kLogicalMetaLeft, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // MetaRight tester.InjectKeyboardChanges( std::vector{KeyStateChange{VK_RWIN, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalMetaRight, kLogicalMetaRight, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_RWIN, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalMetaRight, - kLogicalMetaRight, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalMetaRight, kLogicalMetaRight, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // CapsLock, phase 0 -> 2 -> 0. // (For phases, see |SynchronizeCriticalToggledStates|.) tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_CAPITAL, false, true}, event1}); - EXPECT_EQ(key_calls.size(), 3); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 3); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalCapsLock, kLogicalCapsLock, "", kSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalCapsLock, - kLogicalCapsLock, "", kSynthesized); - clear_key_calls(); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, + kPhysicalCapsLock, kLogicalCapsLock, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_CAPITAL, false, false}, event2}); - EXPECT_EQ(key_calls.size(), 3); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 3); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalCapsLock, kLogicalCapsLock, "", kSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, kPhysicalCapsLock, kLogicalCapsLock, "", kSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalCapsLock, - kLogicalCapsLock, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // ScrollLock, phase 0 -> 1 -> 3 tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_SCROLL, true, true}, event1}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalScrollLock, kLogicalScrollLock, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_SCROLL, true, false}, event2}); - EXPECT_EQ(key_calls.size(), 3); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, + EXPECT_EQ(tester.key_calls.size(), 3); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, kPhysicalScrollLock, kLogicalScrollLock, "", kSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, kPhysicalScrollLock, kLogicalScrollLock, "", kSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // NumLock, phase 0 -> 3 -> 2 @@ -1939,22 +1957,22 @@ TEST_F(KeyboardTest, SynthesizeModifiers) { // tap and a key down. Fix the algorithm so that the following result becomes // 4 keycalls with an extra pair of key down and up. // https://github.com/flutter/flutter/issues/98533 - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalNumLock, - kLogicalNumLock, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalNumLock, kLogicalNumLock, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.InjectKeyboardChanges(std::vector{ KeyStateChange{VK_NUMLOCK, false, true}, event2}); - EXPECT_EQ(key_calls.size(), 4); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalNumLock, - kLogicalNumLock, "", kSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, kPhysicalNumLock, - kLogicalNumLock, "", kSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[2], kFlutterKeyEventTypeUp, kPhysicalNumLock, - kLogicalNumLock, "", kSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 4); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalNumLock, kLogicalNumLock, "", kSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, + kPhysicalNumLock, kLogicalNumLock, "", kSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[2], kFlutterKeyEventTypeUp, + kPhysicalNumLock, kLogicalNumLock, "", kSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); } @@ -1977,10 +1995,10 @@ TEST_F(KeyboardTest, ImeExtendedEventsAreIgnored) { WmKeyDownInfo{VK_PROCESSKEY, kScanCodeControl, kExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -2009,17 +2027,18 @@ TEST_F(KeyboardTest, UpOnlyImeEventsAreCorrectlyHandled) { WmKeyUpInfo{'2', kScanCodeDigit2, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 4); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 4); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeDown, 0, 0, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[2], kFlutterKeyEventTypeUp, kPhysicalShiftLeft, - kLogicalShiftLeft, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[3], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_CALL_IS_EVENT(tester.key_calls[2], kFlutterKeyEventTypeUp, + kPhysicalShiftLeft, kLogicalShiftLeft, "", kNotSynthesized); - clear_key_calls(); + EXPECT_CALL_IS_EVENT(tester.key_calls[3], kFlutterKeyEventTypeDown, 0, 0, "", + kNotSynthesized); + tester.clear_key_calls(); } // Regression test for a crash in an earlier implementation. @@ -2055,28 +2074,28 @@ TEST_F(KeyboardTest, SlowFrameworkResponse) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasDown}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); EXPECT_EQ(recorded_callbacks.size(), 1); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // The first response. recorded_callbacks.front()(false); - EXPECT_EQ(key_calls.size(), 3); + EXPECT_EQ(tester.key_calls.size(), 3); EXPECT_EQ(recorded_callbacks.size(), 2); - EXPECT_CALL_IS_TEXT(key_calls[1], u"a"); - EXPECT_CALL_IS_EVENT(key_calls[2], kFlutterKeyEventTypeRepeat, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"a"); + EXPECT_CALL_IS_EVENT(tester.key_calls[2], kFlutterKeyEventTypeRepeat, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // The second response. recorded_callbacks.back()(false); - EXPECT_EQ(key_calls.size(), 4); - EXPECT_CALL_IS_TEXT(key_calls[3], u"a"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 4); + EXPECT_CALL_IS_TEXT(tester.key_calls[3], u"a"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); } @@ -2110,10 +2129,10 @@ TEST_F(KeyboardTest, SlowFrameworkResponseForIdenticalEvents) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // Release A @@ -2121,18 +2140,18 @@ TEST_F(KeyboardTest, SlowFrameworkResponseForIdenticalEvents) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 0); + EXPECT_EQ(tester.key_calls.size(), 0); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // The first down event responded with false. EXPECT_EQ(recorded_callbacks.size(), 1); recorded_callbacks.front()(false); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_TEXT(key_calls[0], u"a"); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_TEXT(tester.key_calls[0], u"a"); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Press A again @@ -2145,16 +2164,16 @@ TEST_F(KeyboardTest, SlowFrameworkResponseForIdenticalEvents) { // Nothing more was dispatched because the first up event hasn't been // responded yet. EXPECT_EQ(recorded_callbacks.size(), 2); - EXPECT_EQ(key_calls.size(), 0); + EXPECT_EQ(tester.key_calls.size(), 0); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); // The first up event responded with false, which was redispatched, and caused // the down event to be dispatched. recorded_callbacks.back()(false); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(recorded_callbacks.size(), 3); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); @@ -2163,7 +2182,7 @@ TEST_F(KeyboardTest, SlowFrameworkResponseForIdenticalEvents) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 0); + EXPECT_EQ(tester.key_calls.size(), 0); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -2184,16 +2203,16 @@ TEST_F(KeyboardTest, TextInputSubmit) { WmCharInfo{'\n', kScanCodeEnter, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalEnter, - kLogicalEnter, "", kNotSynthesized); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalEnter, kLogicalEnter, "", kNotSynthesized); EXPECT_CALL_IS_TEXT_METHOD_CALL( - key_calls[1], + tester.key_calls[1], "{" R"|("method":"TextInputClient.performAction",)|" R"|("args":[108,"TextInputAction.none"])|" "}"); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release Enter @@ -2201,10 +2220,10 @@ TEST_F(KeyboardTest, TextInputSubmit) { WmKeyUpInfo{VK_RETURN, kScanCodeEnter, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalEnter, - kLogicalEnter, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalEnter, kLogicalEnter, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Make sure OnText is not obstructed after pressing Enter. @@ -2218,21 +2237,21 @@ TEST_F(KeyboardTest, TextInputSubmit) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"a"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"a"); + tester.clear_key_calls(); // Release A tester.InjectKeyboardChanges(std::vector{ WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); } TEST_F(KeyboardTest, VietnameseTelexAddDiacriticWithFastResponse) { @@ -2257,11 +2276,11 @@ TEST_F(KeyboardTest, VietnameseTelexAddDiacriticWithFastResponse) { WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"a"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"a"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release A @@ -2269,10 +2288,10 @@ TEST_F(KeyboardTest, VietnameseTelexAddDiacriticWithFastResponse) { WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); // Press F, which is translated to: @@ -2289,14 +2308,15 @@ TEST_F(KeyboardTest, VietnameseTelexAddDiacriticWithFastResponse) { WmCharInfo{0xe0 /*'à'*/, 0, kNotExtended, kWasUp}.Build(kWmResultZero), WmKeyUpInfo{VK_PACKET, 0, kNotExtended}.Build(kWmResultDefault)}); - EXPECT_EQ(key_calls.size(), 3); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 3); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalBackspace, kLogicalBackspace, "", + kNotSynthesized); + EXPECT_CALL_IS_EVENT(tester.key_calls[1], kFlutterKeyEventTypeUp, kPhysicalBackspace, kLogicalBackspace, "", kNotSynthesized); - EXPECT_CALL_IS_EVENT(key_calls[1], kFlutterKeyEventTypeUp, kPhysicalBackspace, - kLogicalBackspace, "", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[2], u"à"); - clear_key_calls(); + EXPECT_CALL_IS_TEXT(tester.key_calls[2], u"à"); + tester.clear_key_calls(); // TODO(dkwingsmt): This count should probably be 4. Currently the CHAR 0x8 // message is redispatched due to being part of the KeyDown session, which is // not handled by the framework, while the 'à' message is not redispatched @@ -2310,10 +2330,10 @@ TEST_F(KeyboardTest, VietnameseTelexAddDiacriticWithFastResponse) { /* overwrite_prev_state_0 */ true} .Build(kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -2340,11 +2360,11 @@ void VietnameseTelexAddDiacriticWithSlowResponse(WindowsTestContext& context, WmCharInfo{'a', kScanCodeKeyA, kNotExtended, kWasUp}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 2); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, kPhysicalKeyA, - kLogicalKeyA, "a", kNotSynthesized); - EXPECT_CALL_IS_TEXT(key_calls[1], u"a"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 2); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, + kPhysicalKeyA, kLogicalKeyA, "a", kNotSynthesized); + EXPECT_CALL_IS_TEXT(tester.key_calls[1], u"a"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 2); // Release A @@ -2352,10 +2372,10 @@ void VietnameseTelexAddDiacriticWithSlowResponse(WindowsTestContext& context, WmKeyUpInfo{kVirtualKeyA, kScanCodeKeyA, kNotExtended}.Build( kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalKeyA, - kLogicalKeyA, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalKeyA, kLogicalKeyA, "", kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); std::vector recorded_callbacks; @@ -2385,27 +2405,28 @@ void VietnameseTelexAddDiacriticWithSlowResponse(WindowsTestContext& context, // it will send a setEditingState message that updates the text state that has // the last character deleted (denoted by `string1`). Processing the char // message before then will cause the final text to set to `string1`. - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, kPhysicalBackspace, kLogicalBackspace, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); EXPECT_EQ(recorded_callbacks.size(), 1); recorded_callbacks[0](backspace_response); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeUp, kPhysicalBackspace, - kLogicalBackspace, "", kNotSynthesized); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeUp, + kPhysicalBackspace, kLogicalBackspace, "", + kNotSynthesized); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), backspace_response ? 0 : 2); recorded_callbacks[1](false); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_TEXT(key_calls[0], u"à"); - clear_key_calls(); + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_TEXT(tester.key_calls[0], u"à"); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 1); tester.Responding(false); @@ -2416,10 +2437,10 @@ void VietnameseTelexAddDiacriticWithSlowResponse(WindowsTestContext& context, /* overwrite_prev_state_0 */ true} .Build(kWmResultZero)}); - EXPECT_EQ(key_calls.size(), 1); - EXPECT_CALL_IS_EVENT(key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", + EXPECT_EQ(tester.key_calls.size(), 1); + EXPECT_CALL_IS_EVENT(tester.key_calls[0], kFlutterKeyEventTypeDown, 0, 0, "", kNotSynthesized); - clear_key_calls(); + tester.clear_key_calls(); EXPECT_EQ(tester.RedispatchedMessageCountAndClear(), 0); } @@ -2441,7 +2462,7 @@ TEST_F(KeyboardTest, DoubleCapsLock) { WmKeyDownInfo{VK_CAPITAL, 0, kNotExtended}.Build(), WmKeyUpInfo{VK_CAPITAL, 0, kNotExtended}.Build()}); - clear_key_calls(); + tester.clear_key_calls(); } } // namespace testing