@@ -391,6 +391,77 @@ void main() {
391
391
expect (_getCheckboxMaterial (tester), paints..path (color: localThemeFillColor));
392
392
expect (_getCheckboxMaterial (tester), paints..path (color: localThemeFillColor)..path (color: localThemeCheckColor));
393
393
});
394
+
395
+ test ('CheckboxThemeData lerp with null parameters' , () {
396
+ final CheckboxThemeData lerped = CheckboxThemeData .lerp (null , null , 0.25 );
397
+
398
+ expect (lerped.mouseCursor, null );
399
+ expect (lerped.fillColor, null );
400
+ expect (lerped.checkColor, null );
401
+ expect (lerped.overlayColor, null );
402
+ expect (lerped.splashRadius, null );
403
+ expect (lerped.materialTapTargetSize, null );
404
+ expect (lerped.visualDensity, null );
405
+ expect (lerped.shape, null );
406
+ expect (lerped.side, null );
407
+ });
408
+
409
+ test ('CheckboxThemeData lerp from populated to null parameters' , () {
410
+ final CheckboxThemeData theme = CheckboxThemeData (
411
+ fillColor: MaterialStateProperty .all (const Color (0xfffffff0 )),
412
+ checkColor: MaterialStateProperty .all (const Color (0xfffffff1 )),
413
+ overlayColor: MaterialStateProperty .all (const Color (0xfffffff2 )),
414
+ splashRadius: 3.0 ,
415
+ materialTapTargetSize: MaterialTapTargetSize .shrinkWrap,
416
+ visualDensity: const VisualDensity (vertical: 1.0 , horizontal: 1.0 ),
417
+ shape: const RoundedRectangleBorder (borderRadius: BorderRadius .all (Radius .circular (4.0 ))),
418
+ side: const BorderSide (width: 4.0 ),
419
+ );
420
+ final CheckboxThemeData lerped = CheckboxThemeData .lerp (theme, null , 0.5 );
421
+
422
+ expect (lerped.fillColor! .resolve (< MaterialState > {}), const Color (0x80fffff0 ));
423
+ expect (lerped.checkColor! .resolve (< MaterialState > {}), const Color (0x80fffff1 ));
424
+ expect (lerped.overlayColor! .resolve (< MaterialState > {}), const Color (0x80fffff2 ));
425
+ expect (lerped.splashRadius, 1.5 );
426
+ expect (lerped.materialTapTargetSize, null );
427
+ expect (lerped.visualDensity, null );
428
+ expect (lerped.shape, const RoundedRectangleBorder (borderRadius: BorderRadius .all (Radius .circular (2.0 ))));
429
+ // Returns null if either lerp value is null.
430
+ expect (lerped.side, null );
431
+ });
432
+
433
+ test ('CheckboxThemeData lerp from populated parameters' , () {
434
+ final CheckboxThemeData themeA = CheckboxThemeData (
435
+ fillColor: MaterialStateProperty .all (const Color (0xfffffff0 )),
436
+ checkColor: MaterialStateProperty .all (const Color (0xfffffff1 )),
437
+ overlayColor: MaterialStateProperty .all (const Color (0xfffffff2 )),
438
+ splashRadius: 3.0 ,
439
+ materialTapTargetSize: MaterialTapTargetSize .shrinkWrap,
440
+ visualDensity: const VisualDensity (vertical: 1.0 , horizontal: 1.0 ),
441
+ shape: const RoundedRectangleBorder (borderRadius: BorderRadius .all (Radius .circular (4.0 ))),
442
+ side: const BorderSide (width: 4.0 ),
443
+ );
444
+ final CheckboxThemeData themeB = CheckboxThemeData (
445
+ fillColor: MaterialStateProperty .all (const Color (0xfffffff3 )),
446
+ checkColor: MaterialStateProperty .all (const Color (0xfffffff4 )),
447
+ overlayColor: MaterialStateProperty .all (const Color (0xfffffff5 )),
448
+ splashRadius: 9.0 ,
449
+ materialTapTargetSize: MaterialTapTargetSize .shrinkWrap,
450
+ visualDensity: const VisualDensity (vertical: 2.0 , horizontal: 2.0 ),
451
+ shape: const RoundedRectangleBorder (borderRadius: BorderRadius .all (Radius .circular (1.0 ))),
452
+ side: const BorderSide (width: 3.0 ),
453
+ );
454
+ final CheckboxThemeData lerped = CheckboxThemeData .lerp (themeA, themeB, 0.5 );
455
+
456
+ expect (lerped.fillColor! .resolve (< MaterialState > {}), const Color (0xfffffff1 ));
457
+ expect (lerped.checkColor! .resolve (< MaterialState > {}), const Color (0xfffffff2 ));
458
+ expect (lerped.overlayColor! .resolve (< MaterialState > {}), const Color (0xfffffff3 ));
459
+ expect (lerped.splashRadius, 6 );
460
+ expect (lerped.materialTapTargetSize, MaterialTapTargetSize .shrinkWrap);
461
+ expect (lerped.visualDensity, const VisualDensity (vertical: 2.0 , horizontal: 2.0 ));
462
+ expect (lerped.shape, const RoundedRectangleBorder (borderRadius: BorderRadius .all (Radius .circular (2.5 ))));
463
+ expect (lerped.side, const BorderSide (width: 3.5 ));
464
+ });
394
465
}
395
466
396
467
Future <void > _pointGestureToCheckbox (WidgetTester tester) async {
0 commit comments