45 lines
1.3 KiB
Dart
45 lines
1.3 KiB
Dart
import 'dart:ui' as ui;
|
|
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:plezy/focus/dpad_navigator.dart';
|
|
import 'package:plezy/focus/key_event_utils.dart';
|
|
import 'package:plezy/utils/platform_detector.dart';
|
|
|
|
void main() {
|
|
tearDown(() {
|
|
TvDetectionService.debugSetAppleTVOverride(null);
|
|
BackKeyUpSuppressor.clearSuppression();
|
|
});
|
|
|
|
testWidgets('tvOS physical keyboard back runs on key down and suppresses key up', (tester) async {
|
|
TvDetectionService.debugSetAppleTVOverride(true);
|
|
var backs = 0;
|
|
|
|
final downResult = handleBackKeyAction(
|
|
const KeyDownEvent(
|
|
physicalKey: PhysicalKeyboardKey.escape,
|
|
logicalKey: LogicalKeyboardKey.escape,
|
|
timeStamp: Duration.zero,
|
|
deviceType: ui.KeyEventDeviceType.keyboard,
|
|
),
|
|
() => backs++,
|
|
);
|
|
|
|
final upResult = handleBackKeyAction(
|
|
const KeyUpEvent(
|
|
physicalKey: PhysicalKeyboardKey.escape,
|
|
logicalKey: LogicalKeyboardKey.escape,
|
|
timeStamp: Duration.zero,
|
|
deviceType: ui.KeyEventDeviceType.keyboard,
|
|
),
|
|
() => backs++,
|
|
);
|
|
|
|
expect(downResult, KeyEventResult.handled);
|
|
expect(upResult, KeyEventResult.handled);
|
|
expect(backs, 1);
|
|
});
|
|
}
|