diff --git a/lib/src/input_method_engine.dart b/lib/src/input_method_engine.dart index eeebbcf..77f5816 100644 --- a/lib/src/input_method_engine.dart +++ b/lib/src/input_method_engine.dart @@ -42,6 +42,8 @@ class ImeSimulator { String textToType, { Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final imeClient = _findImeClient(finder: finder, getter: getter); @@ -50,11 +52,16 @@ class ImeSimulator { "The target widget doesn't have a text selection to type into."); for (final character in textToType.characters) { - await _typeCharacter(imeClient, character); + await _typeCharacter(imeClient, character, settle: settle, extraPumps: extraPumps); } } - Future _typeCharacter(DeltaTextInputClient imeClient, String character) async { + Future _typeCharacter( + DeltaTextInputClient imeClient, + String character, { + bool settle = true, + int extraPumps = 0, + }) async { assert(imeClient.currentTextEditingValue != null); assert(imeClient.currentTextEditingValue!.selection.extentOffset != -1); @@ -93,15 +100,17 @@ class ImeSimulator { // await _sendDeltasThroughChannel(deltas); // Let the app handle the deltas, however long it takes. - await _tester.pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates the user pressing the tab button on a software keyboard. Future pressTab({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { - await typeText('\t'); + await typeText('\t', settle: settle, extraPumps: extraPumps); } /// Simulates the user pressing the backspace button. @@ -111,6 +120,8 @@ class ImeSimulator { Future backspace({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final imeClient = _findImeClient(finder: finder, getter: getter); @@ -152,7 +163,7 @@ class ImeSimulator { // await _sendDeltasThroughChannel(deltas); // Let the app handle the deltas, however long it takes. - await _tester.pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates dispatching arbitrary deltas. @@ -163,13 +174,15 @@ class ImeSimulator { List deltas, { Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final imeClient = _findImeClient(finder: finder, getter: getter); imeClient.updateEditingValueWithDeltas(deltas); // Let the app handle the deltas. - await _tester.pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } DeltaTextInputClient _findImeClient({ @@ -270,6 +283,15 @@ class ImeSimulator { return 'TextAffinity.upstream'; } } + + Future _maybeSettleOrExtraPumps({bool settle = true, int extraPumps = 0}) async { + if (settle) { + await _tester.pumpAndSettle(); + } + for (int i = 0; i < extraPumps; i += 1) { + await _tester.pump(); + } + } } typedef GetDeltaTextInputClient = DeltaTextInputClient Function(); diff --git a/lib/src/keyboard.dart b/lib/src/keyboard.dart index 02a856f..b4a65cf 100644 --- a/lib/src/keyboard.dart +++ b/lib/src/keyboard.dart @@ -80,9 +80,10 @@ extension KeyboardInput on WidgetTester { /// {@macro flutter_key_simulation_override} Future repeatKey(LogicalKeyboardKey key) => simulateKeyRepeatEvent(key, platform: _keyEventPlatform); - Future pressEnter() async { + Future pressEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates the user pressing ENTER in a widget attached to the IME. @@ -99,6 +100,8 @@ extension KeyboardInput on WidgetTester { Future pressEnterWithIme({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { if (!testTextInput.hasAnyClients) { // There isn't any IME connections. @@ -109,6 +112,8 @@ extension KeyboardInput on WidgetTester { await pump(); await testTextInput.receiveAction(TextInputAction.newline); await pump(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates pressing an ENTER button, either as a keyboard key, or as a software keyboard action button. @@ -121,16 +126,18 @@ extension KeyboardInput on WidgetTester { Future pressEnterAdaptive({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final handled = await sendKeyEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); if (handled) { // The textfield handled the key event. // It won't bubble up to the OS to generate text deltas or input actions. - await pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); return; } - await pressEnterWithIme(finder: finder, getter: getter); + await pressEnterWithIme(finder: finder, getter: getter, settle: settle, extraPumps: extraPumps); } /// Simulates pressing the SPACE key. @@ -144,12 +151,14 @@ extension KeyboardInput on WidgetTester { Future pressSpaceAdaptive({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final handled = await sendKeyEvent(LogicalKeyboardKey.space, platform: _keyEventPlatform); if (handled) { // The key press was handled by the app. We shouldn't generate any deltas. - await pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); return; } @@ -159,35 +168,41 @@ extension KeyboardInput on WidgetTester { } await ime.typeText(' ', finder: finder, getter: getter); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftEnter() async { + Future pressShiftEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdEnter() async { + Future pressCmdEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlEnter() async { + Future pressCtlEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.enter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressNumpadEnter() async { + Future pressNumpadEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.numpadEnter, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates the user pressing NUMPAD ENTER in a widget attached to the IME. @@ -199,6 +214,8 @@ extension KeyboardInput on WidgetTester { Future pressNumpadEnterWithIme({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { if (!testTextInput.hasAnyClients) { // There isn't any IME connections. @@ -207,7 +224,8 @@ extension KeyboardInput on WidgetTester { await ime.typeText('\n', finder: finder, getter: getter); await testTextInput.receiveAction(TextInputAction.newline); - await pump(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } /// Simulates pressing an NUMPAD ENTER button, either as a keyboard key, or as a software keyboard action button. @@ -220,480 +238,554 @@ extension KeyboardInput on WidgetTester { Future pressNumpadEnterAdaptive({ Finder? finder, GetDeltaTextInputClient? getter, + bool settle = true, + int extraPumps = 0, }) async { final handled = await sendKeyEvent(LogicalKeyboardKey.numpadEnter, platform: _keyEventPlatform); if (handled) { // The textfield handled the key event. // It won't bubble up to the OS to generate text deltas or input actions. - await pumpAndSettle(); + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); return; } - await pressNumpadEnterWithIme(finder: finder, getter: getter); + await pressNumpadEnterWithIme(finder: finder, getter: getter, settle: settle, extraPumps: extraPumps); } - Future pressShiftNumpadEnter() async { + Future pressShiftNumpadEnter({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.numpadEnter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.numpadEnter, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressTab() async { + Future pressTab({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.tab, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressBackspace() async { + Future pressBackspace({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdBackspace() async { + Future pressCmdBackspace({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressAltBackspace() async { + Future pressAltBackspace({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlBackspace() async { + Future pressCtlBackspace({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.backspace, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressDelete() async { + Future pressDelete({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.delete, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdB() async { + Future pressCmdB({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyB, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyB, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlB() async { + Future pressCtlB({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyB, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyB, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdC() async { + Future pressCmdC({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyC, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyC, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlC() async { + Future pressCtlC({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyC, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyC, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdI() async { + Future pressCmdI({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyI, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyI, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlI() async { + Future pressCtlI({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyI, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyI, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdX() async { + Future pressCmdX({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyX, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyX, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlX() async { + Future pressCtlX({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyX, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyX, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdV() async { + Future pressCmdV({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyV, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyV, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlV() async { + Future pressCtlV({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyV, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyV, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdA() async { + Future pressCmdA({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyA, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyA, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlA() async { + Future pressCtlA({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyA, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyA, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlE() async { + Future pressCtlE({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.keyE, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.keyE, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressHome() async { + Future pressHome({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressEnd() async { + Future pressEnd({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressLeftArrow() async { + Future pressLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftLeftArrow() async { + Future pressShiftLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressAltLeftArrow() async { + Future pressAltLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftAltLeftArrow() async { + Future pressShiftAltLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlLeftArrow() async { + Future pressCtlLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCtlLeftArrow() async { + Future pressShiftCtlLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdLeftArrow() async { + Future pressCmdLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCmdLeftArrow() async { + Future pressShiftCmdLeftArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowLeft, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressRightArrow() async { + Future pressRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftRightArrow() async { + Future pressShiftRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressAltRightArrow() async { + Future pressAltRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftAltRightArrow() async { + Future pressShiftAltRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtlRightArrow() async { + Future pressCtlRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCtlRightArrow() async { + Future pressShiftCtlRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdRightArrow() async { + Future pressCmdRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCmdRightArrow() async { + Future pressShiftCmdRightArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowRight, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressUpArrow() async { + Future pressUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftUpArrow() async { + Future pressShiftUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdUpArrow() async { + Future pressCmdUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCmdUpArrow() async { + Future pressShiftCmdUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressAltUpArrow() async { + Future pressAltUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftAltUpArrow() async { + Future pressShiftAltUpArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowUp, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressDownArrow() async { + Future pressDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftDownArrow() async { + Future pressShiftDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdDownArrow() async { + Future pressCmdDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftCmdDownArrow() async { + Future pressShiftCmdDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressAltDownArrow() async { + Future pressAltDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressShiftAltDownArrow() async { + Future pressShiftAltDownArrow({bool settle = true, int extraPumps = 0}) async { await sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyDownEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.arrowDown, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.alt, platform: _keyEventPlatform); await sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressEscape() async { + Future pressEscape({bool settle = true, int extraPumps = 0}) async { await sendKeyEvent(LogicalKeyboardKey.escape, platform: _keyEventPlatform); - await pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdHome(WidgetTester tester) async { + Future pressCmdHome(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); - await tester.pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdEnd(WidgetTester tester) async { + Future pressCmdEnd(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); - await tester.pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtrlHome(WidgetTester tester) async { + Future pressCtrlHome(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.home, platform: _keyEventPlatform); - await tester.pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtrlEnd(WidgetTester tester) async { + Future pressCtrlEnd(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.end, platform: _keyEventPlatform); - await tester.pumpAndSettle(); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdZ(WidgetTester tester) async { + Future pressCmdZ(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtrlZ(WidgetTester tester) async { + Future pressCtrlZ(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCmdShiftZ(WidgetTester tester) async { + Future pressCmdShiftZ(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.meta, platform: _keyEventPlatform); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); } - Future pressCtrlShiftZ(WidgetTester tester) async { + Future pressCtrlShiftZ(WidgetTester tester, {bool settle = true, int extraPumps = 0}) async { await tester.sendKeyDownEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await tester.sendKeyDownEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.keyZ, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.shift, platform: _keyEventPlatform); await tester.sendKeyUpEvent(LogicalKeyboardKey.control, platform: _keyEventPlatform); + + await _maybeSettleOrExtraPumps(settle: settle, extraPumps: extraPumps); + } + + Future _maybeSettleOrExtraPumps({bool settle = true, int extraPumps = 0}) async { + if (settle) { + await pumpAndSettle(); + } + for (int i = 0; i < extraPumps; i += 1) { + await pump(); + } } } diff --git a/test/basic_ime_client.dart b/test/basic_ime_client.dart index 4a704ab..cc38c0d 100644 --- a/test/basic_ime_client.dart +++ b/test/basic_ime_client.dart @@ -103,13 +103,13 @@ class _BareBonesTextFieldWithInputClientState extends State textEditingDeltas) { setState(() { for (final delta in textEditingDeltas) { - imeTestClientLog.info("Handling delta: $delta"); - imeTestClientLog.fine(_deltaSummary(delta)); + FtrTestLogs.imeTestClientLog.info("Handling delta: $delta"); + FtrTestLogs.imeTestClientLog.fine(_deltaSummary(delta)); _currentTextEditingValue = delta.apply(_currentTextEditingValue); - imeTestClientLog.info("New text: ${_currentTextEditingValue.text}"); - imeTestClientLog.info("New selection: ${_currentTextEditingValue.selection}"); + FtrTestLogs.imeTestClientLog.info("New text: ${_currentTextEditingValue.text}"); + FtrTestLogs.imeTestClientLog.info("New selection: ${_currentTextEditingValue.selection}"); } _textInputConnection!.setEditingState(_currentTextEditingValue); }); diff --git a/test/test_logging.dart b/test/test_logging.dart index 335f560..66accec 100644 --- a/test/test_logging.dart +++ b/test/test_logging.dart @@ -1,46 +1,46 @@ -// ignore_for_file: avoid_print +import 'package:logging/logging.dart'; +export 'package:logging/logging.dart'; -import 'package:logging/logging.dart' as logging; +abstract class FtrTestLogs { + static final imeTestClientLog = Logger("ime.test-client"); -class LogNames { - static const imeTestClient = 'ime.testclient'; -} - -final imeTestClientLog = logging.Logger(LogNames.imeTestClient); + static final _activeLoggers = {}; -final _activeLoggers = {}; - -void initAllLogs(logging.Level level) { - initLoggers(level, {logging.Logger.root}); -} + static void initAllLogs(Level level) { + initLoggers(level, {Logger.root}); + } -void initLoggers(logging.Level level, Set loggers) { - logging.hierarchicalLoggingEnabled = true; + static void initLoggers(Level level, Set loggers) { + hierarchicalLoggingEnabled = true; - for (final logger in loggers) { - if (!_activeLoggers.contains(logger)) { - print('Initializing logger: ${logger.name}'); - logger - ..level = level - ..onRecord.listen(printLog); + for (final logger in loggers) { + if (!_activeLoggers.contains(logger)) { + // ignore: avoid_print + print('Initializing logger: ${logger.name}'); + logger + ..level = level + ..onRecord.listen(printLog); - _activeLoggers.add(logger); + _activeLoggers.add(logger); + } } } -} -void deactivateLoggers(Set loggers) { - for (final logger in loggers) { - if (_activeLoggers.contains(logger)) { - print('Deactivating logger: ${logger.name}'); - logger.clearListeners(); + static void deactivateLoggers(Set loggers) { + for (final logger in loggers) { + if (_activeLoggers.contains(logger)) { + // ignore: avoid_print + print('Deactivating logger: ${logger.name}'); + logger.clearListeners(); - _activeLoggers.remove(logger); + _activeLoggers.remove(logger); + } } } -} -void printLog(logging.LogRecord record) { - print( - '(${record.time.second}.${record.time.millisecond.toString().padLeft(3, '0')}) ${record.loggerName} > ${record.level.name}: ${record.message}'); + static void printLog(LogRecord record) { + // ignore: avoid_print + print( + '(${record.time.second}.${record.time.millisecond.toString().padLeft(3, '0')}) ${record.loggerName} > ${record.level.name}: ${record.message}'); + } }