@@ -144,6 +144,7 @@ Widget chipWithOptionalDeleteButton({
144
144
TextDirection textDirection = TextDirection .ltr,
145
145
String ? chipTooltip,
146
146
String ? deleteButtonTooltipMessage,
147
+ double ? size,
147
148
VoidCallback ? onPressed = doNothing,
148
149
ThemeData ? themeData,
149
150
}) {
@@ -156,7 +157,11 @@ Widget chipWithOptionalDeleteButton({
156
157
tooltip: chipTooltip,
157
158
onPressed: onPressed,
158
159
onDeleted: deletable ? doNothing : null ,
159
- deleteIcon: Icon (Icons .close, key: deleteButtonKey),
160
+ deleteIcon: Icon (
161
+ key: deleteButtonKey,
162
+ size: size,
163
+ Icons .close,
164
+ ),
160
165
deleteButtonTooltipMessage: deleteButtonTooltipMessage,
161
166
label: Text (
162
167
deletable
@@ -1852,6 +1857,7 @@ void main() {
1852
1857
labelKey: labelKey,
1853
1858
deleteButtonKey: deleteButtonKey,
1854
1859
deletable: true ,
1860
+ size: 18.0 ,
1855
1861
),
1856
1862
);
1857
1863
@@ -1957,6 +1963,7 @@ void main() {
1957
1963
onPressed: null ,
1958
1964
deleteButtonKey: deleteButtonKey,
1959
1965
deletable: true ,
1966
+ size: 18.0 ,
1960
1967
),
1961
1968
);
1962
1969
@@ -5385,6 +5392,62 @@ void main() {
5385
5392
expect (labelTopRight.dx, deleteIconCenter.dx - (iconSize / 2 ) - labelPadding);
5386
5393
});
5387
5394
5395
+ testWidgets ('Default delete button InkWell shape' , (WidgetTester tester) async {
5396
+ await tester.pumpWidget (wrapForChip (
5397
+ child: Center (
5398
+ child: RawChip (
5399
+ onDeleted: () { },
5400
+ label: const Text ('RawChip' ),
5401
+ ),
5402
+ ),
5403
+ ));
5404
+
5405
+ final InkWell deleteButtonInkWell = tester.widget <InkWell >(find.ancestor (
5406
+ of: find.byIcon (Icons .cancel),
5407
+ matching: find.byType (InkWell ).last,
5408
+ ));
5409
+ expect (deleteButtonInkWell.customBorder, const CircleBorder ());
5410
+ });
5411
+
5412
+ testWidgets ('Default delete button overlay' , (WidgetTester tester) async {
5413
+ final ThemeData theme = ThemeData ();
5414
+ await tester.pumpWidget (wrapForChip (
5415
+ child: Center (
5416
+ child: RawChip (
5417
+ onDeleted: () { },
5418
+ label: const Text ('RawChip' ),
5419
+ ),
5420
+ ),
5421
+ theme: theme,
5422
+ ));
5423
+
5424
+ RenderObject inkFeatures = tester.allRenderObjects.firstWhere ((RenderObject object) => object.runtimeType.toString () == '_RenderInkFeatures' );
5425
+ expect (inkFeatures, isNot (paints..rect (color: theme.hoverColor)));
5426
+ expect (inkFeatures, paintsExactlyCountTimes (#clipPath, 0 ));
5427
+
5428
+ // Hover over the delete icon.
5429
+ final Offset centerOfDeleteButton = tester.getCenter (find.byType (Icon ));
5430
+ final TestGesture hoverGesture = await tester.createGesture (kind: PointerDeviceKind .mouse);
5431
+ await hoverGesture.moveTo (centerOfDeleteButton);
5432
+ addTearDown (hoverGesture.removePointer);
5433
+ await tester.pumpAndSettle ();
5434
+
5435
+ inkFeatures = tester.allRenderObjects.firstWhere ((RenderObject object) => object.runtimeType.toString () == '_RenderInkFeatures' );
5436
+ expect (inkFeatures, paints..rect (color: theme.hoverColor));
5437
+ expect (inkFeatures, paintsExactlyCountTimes (#clipPath, 1 ));
5438
+
5439
+ const Rect expectedClipRect = Rect .fromLTRB (124.7 , 10.0 , 142.7 , 28.0 );
5440
+ final Path expectedClipPath = Path ()..addRect (expectedClipRect);
5441
+ expect (
5442
+ inkFeatures,
5443
+ paints..clipPath (pathMatcher: coversSameAreaAs (
5444
+ expectedClipPath,
5445
+ areaToCompare: expectedClipRect.inflate (48.0 ),
5446
+ sampleSize: 100 ,
5447
+ )),
5448
+ );
5449
+ });
5450
+
5388
5451
group ('Material 2' , () {
5389
5452
// These tests are only relevant for Material 2. Once Material 2
5390
5453
// support is deprecated and the APIs are removed, these tests
0 commit comments