@@ -301,9 +301,16 @@ - (void)testIgnoreDuplicateDownEvent API_AVAILABLE(ios(13.4)) {
301
301
last_handled = handled;
302
302
}];
303
303
304
- XCTAssertEqual ([events count ], 0u );
304
+ XCTAssertEqual ([events count ], 1u );
305
+ event = [events lastObject ].data ;
306
+ XCTAssertEqual (event->physical , 0ull );
307
+ XCTAssertEqual (event->logical , 0ull );
308
+ XCTAssertEqual (event->synthesized , false );
309
+ XCTAssertFalse ([[events lastObject ] hasCallback ]);
305
310
XCTAssertEqual (last_handled, TRUE );
306
311
312
+ [events removeAllObjects ];
313
+
307
314
last_handled = FALSE ;
308
315
[responder handlePress: keyUpEvent (kKeyCodeKeyA , kModifierFlagNone , 123 .0f )
309
316
callback: ^(BOOL handled) {
@@ -327,6 +334,7 @@ - (void)testIgnoreDuplicateDownEvent API_AVAILABLE(ios(13.4)) {
327
334
- (void )testIgnoreAbruptUpEvent API_AVAILABLE(ios(13.4 )) {
328
335
__block NSMutableArray <TestKeyEvent*>* events = [[NSMutableArray <TestKeyEvent*> alloc] init ];
329
336
__block BOOL last_handled = TRUE ;
337
+ FlutterKeyEvent* event;
330
338
331
339
FlutterEmbedderKeyResponder* responder = [[FlutterEmbedderKeyResponder alloc ]
332
340
initWithSendEvent: ^(const FlutterKeyEvent& event, _Nullable FlutterKeyEventCallback callback,
@@ -342,8 +350,15 @@ - (void)testIgnoreAbruptUpEvent API_AVAILABLE(ios(13.4)) {
342
350
last_handled = handled;
343
351
}];
344
352
345
- XCTAssertEqual ([events count ], 0u );
353
+ XCTAssertEqual ([events count ], 1u );
354
+ event = [events lastObject ].data ;
355
+ XCTAssertEqual (event->physical , 0ull );
356
+ XCTAssertEqual (event->logical , 0ull );
357
+ XCTAssertEqual (event->synthesized , false );
358
+ XCTAssertFalse ([[events lastObject ] hasCallback ]);
346
359
XCTAssertEqual (last_handled, TRUE );
360
+
361
+ [events removeAllObjects ];
347
362
}
348
363
349
364
// Press R-Shift, A, then release R-Shift then A, on a US keyboard.
@@ -433,6 +448,10 @@ - (void)testToggleModifiersDuringKeyTap API_AVAILABLE(ios(13.4)) {
433
448
- (void )testSpecialModiferFlags API_AVAILABLE(ios(13.4 )) {
434
449
__block NSMutableArray <TestKeyEvent*>* events = [[NSMutableArray <TestKeyEvent*> alloc] init ];
435
450
FlutterKeyEvent* event;
451
+ __block BOOL last_handled = TRUE ;
452
+ id keyEventCallback = ^(BOOL handled) {
453
+ last_handled = handled;
454
+ };
436
455
437
456
FlutterEmbedderKeyResponder* responder = [[FlutterEmbedderKeyResponder alloc ]
438
457
initWithSendEvent: ^(const FlutterKeyEvent& event, _Nullable FlutterKeyEventCallback callback,
@@ -448,8 +467,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
448
467
// Numpad 1
449
468
// OS provides: char: "1", code: 0x59, modifiers: 0x200000
450
469
[responder handlePress: keyDownEvent (kKeyCodeNumpad1 , kModifierFlagNumPadKey , 123.0 , " 1" , " 1" )
451
- callback: ^(BOOL handled){
452
- }];
470
+ callback: keyEventCallback];
453
471
454
472
XCTAssertEqual ([events count ], 1u );
455
473
event = [events lastObject ].data ;
@@ -465,8 +483,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
465
483
// Fn Key (sends HID undefined)
466
484
// OS provides: char: nil, keycode: 0x3, modifiers: 0x0
467
485
[responder handlePress: keyDownEvent (kKeyCodeUndefined , kModifierFlagNone , 123.0 )
468
- callback: ^(BOOL handled){
469
- }];
486
+ callback: keyEventCallback];
470
487
471
488
XCTAssertEqual ([events count ], 1u );
472
489
event = [events lastObject ].data ;
@@ -482,8 +499,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
482
499
// F1 Down
483
500
// OS provides: char: UIKeyInputF1, code: 0x3a, modifiers: 0x0
484
501
[responder handlePress: keyDownEvent (kKeyCodeF1 , kModifierFlagNone , 123 .0f , " \\ ^P" , " \\ ^P" )
485
- callback: ^(BOOL handled){
486
- }];
502
+ callback: keyEventCallback];
487
503
488
504
XCTAssertEqual ([events count ], 1u );
489
505
event = [events lastObject ].data ;
@@ -499,8 +515,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
499
515
// KeyA Down
500
516
// OS provides: char: "q", code: 0x4, modifiers: 0x0
501
517
[responder handlePress: keyDownEvent (kKeyCodeKeyA , kModifierFlagNone , 123 .0f , " a" , " a" )
502
- callback: ^(BOOL handled){
503
- }];
518
+ callback: keyEventCallback];
504
519
505
520
XCTAssertEqual ([events count ], 1u );
506
521
event = [events lastObject ].data ;
@@ -516,8 +531,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
516
531
// ShiftLeft Down
517
532
// OS Provides: char: nil, code: 0xe1, modifiers: 0x20000
518
533
[responder handlePress: keyDownEvent (kKeyCodeShiftLeft , kModifierFlagShiftAny , 123 .0f )
519
- callback: ^(BOOL handled){
520
- }];
534
+ callback: keyEventCallback];
521
535
522
536
XCTAssertEqual ([events count ], 1u );
523
537
event = [events lastObject ].data ;
@@ -532,8 +546,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
532
546
// Numpad 1 Up
533
547
// OS provides: char: "1", code: 0x59, modifiers: 0x200000
534
548
[responder handlePress: keyUpEvent (kKeyCodeNumpad1 , kModifierFlagNumPadKey , 123 .0f )
535
- callback: ^(BOOL handled){
536
- }];
549
+ callback: keyEventCallback];
537
550
538
551
XCTAssertEqual ([events count ], 2u );
539
552
@@ -559,8 +572,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
559
572
// F1 Up
560
573
// OS provides: char: UIKeyInputF1, code: 0x3a, modifiers: 0x0
561
574
[responder handlePress: keyUpEvent (kKeyCodeF1 , kModifierFlagNone , 123 .0f )
562
- callback: ^(BOOL handled){
563
- }];
575
+ callback: keyEventCallback];
564
576
565
577
XCTAssertEqual ([events count ], 1u );
566
578
event = [events lastObject ].data ;
@@ -576,8 +588,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
576
588
// Fn Key (sends HID undefined)
577
589
// OS provides: char: nil, code: 0x3, modifiers: 0x0
578
590
[responder handlePress: keyUpEvent (kKeyCodeUndefined , kModifierFlagNone , 123.0 )
579
- callback: ^(BOOL handled){
580
- }];
591
+ callback: keyEventCallback];
581
592
582
593
XCTAssertEqual ([events count ], 1u );
583
594
event = [events lastObject ].data ;
@@ -592,8 +603,7 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
592
603
// KeyA Up
593
604
// OS provides: char: "a", code: 0x4, modifiers: 0x0
594
605
[responder handlePress: keyUpEvent (kKeyCodeKeyA , kModifierFlagNone , 123 .0f )
595
- callback: ^(BOOL handled){
596
- }];
606
+ callback: keyEventCallback];
597
607
598
608
XCTAssertEqual ([events count ], 1u );
599
609
event = [events lastObject ].data ;
@@ -609,10 +619,17 @@ - (void)testSpecialModiferFlags API_AVAILABLE(ios(13.4)) {
609
619
// ShiftLeft Up
610
620
// OS provides: char: nil, code: 0xe1, modifiers: 0x20000
611
621
[responder handlePress: keyUpEvent (kKeyCodeShiftLeft , kModifierFlagShiftAny , 123 .0f )
612
- callback: ^(BOOL handled){
613
- }];
622
+ callback: keyEventCallback];
614
623
615
- XCTAssertEqual ([events count ], 0u );
624
+ XCTAssertEqual ([events count ], 1u );
625
+ event = [events lastObject ].data ;
626
+ XCTAssertEqual (event->physical , 0ull );
627
+ XCTAssertEqual (event->logical , 0ull );
628
+ XCTAssertEqual (event->synthesized , false );
629
+ XCTAssertFalse ([[events lastObject ] hasCallback ]);
630
+ XCTAssertEqual (last_handled, TRUE );
631
+
632
+ [events removeAllObjects ];
616
633
}
617
634
618
635
- (void )testIdentifyLeftAndRightModifiers API_AVAILABLE(ios(13.4 )) {
0 commit comments