Unverified Commit 2e4122cc authored by Qun Cheng's avatar Qun Cheng Committed by GitHub

Update `SwitchListTile` tests for M2/M3 (#129809)

Updated and reorganized unit tests for `SwitchListTile` to have M2 and M3 versions.

More info in https://github.com/flutter/flutter/issues/127064
parent 7cef9661
...@@ -116,18 +116,70 @@ void main() { ...@@ -116,18 +116,70 @@ void main() {
semantics.dispose(); semantics.dispose();
}); });
testWidgets('SwitchListTile has the right colors', (WidgetTester tester) async { testWidgets('Material2 - SwitchListTile has the right colors', (WidgetTester tester) async {
bool value = false; bool value = false;
final ThemeData theme = ThemeData();
final bool material3 = theme.useMaterial3;
await tester.pumpWidget( await tester.pumpWidget(
MediaQuery( MediaQuery(
data: const MediaQueryData(padding: EdgeInsets.all(8.0)), data: const MediaQueryData(padding: EdgeInsets.all(8.0)),
child: Theme( child: Theme(
data: theme, data: ThemeData(useMaterial3: false),
child: Directionality( child: Directionality(
textDirection: TextDirection.ltr, textDirection: TextDirection.ltr,
child: child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return Material(
child: SwitchListTile(
value: value,
onChanged: (bool newValue) {
setState(() { value = newValue; });
},
activeColor: Colors.red[500],
activeTrackColor: Colors.green[500],
inactiveThumbColor: Colors.yellow[500],
inactiveTrackColor: Colors.blue[500],
),
);
},
),
),
),
),
);
expect(
find.byType(Switch),
paints
..rrect(color: Colors.blue[500])
..rrect(color: const Color(0x33000000))
..rrect(color: const Color(0x24000000))
..rrect(color: const Color(0x1f000000))
..rrect(color: Colors.yellow[500]),
);
await tester.tap(find.byType(Switch));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints
..rrect(color: Colors.green[500])
..rrect(color: const Color(0x33000000))
..rrect(color: const Color(0x24000000))
..rrect(color: const Color(0x1f000000))
..rrect(color: Colors.red[500]),
);
});
testWidgets('Material3 - SwitchListTile has the right colors', (WidgetTester tester) async {
bool value = false;
await tester.pumpWidget(
MediaQuery(
data: const MediaQueryData(padding: EdgeInsets.all(8.0)),
child: Theme(
data: ThemeData(useMaterial3: true),
child: Directionality(
textDirection: TextDirection.ltr,
child:
StatefulBuilder( StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
return Material( return Material(
...@@ -151,17 +203,10 @@ void main() { ...@@ -151,17 +203,10 @@ void main() {
expect( expect(
find.byType(Switch), find.byType(Switch),
material3 paints
? (paints ..rrect(color: Colors.blue[500])
..rrect(color: Colors.blue[500]) ..rrect()
..rrect() ..rrect(color: Colors.yellow[500])
..rrect(color: Colors.yellow[500]))
: (paints
..rrect(color: Colors.blue[500])
..rrect(color: const Color(0x33000000))
..rrect(color: const Color(0x24000000))
..rrect(color: const Color(0x1f000000))
..rrect(color: Colors.yellow[500])),
); );
await tester.tap(find.byType(Switch)); await tester.tap(find.byType(Switch));
...@@ -169,17 +214,10 @@ void main() { ...@@ -169,17 +214,10 @@ void main() {
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints
? (paints ..rrect(color: Colors.green[500])
..rrect(color: Colors.green[500]) ..rrect()
..rrect() ..rrect(color: Colors.red[500])
..rrect(color: Colors.red[500]))
: (paints
..rrect(color: Colors.green[500])
..rrect(color: const Color(0x33000000))
..rrect(color: const Color(0x24000000))
..rrect(color: const Color(0x1f000000))
..rrect(color: Colors.red[500])),
); );
}); });
...@@ -633,13 +671,11 @@ void main() { ...@@ -633,13 +671,11 @@ void main() {
); );
}); });
testWidgets('SwitchListTile respects thumbColor in active/enabled states', (WidgetTester tester) async { testWidgets('Material2 - SwitchListTile respects thumbColor in active/enabled states', (WidgetTester tester) async {
const Color activeEnabledThumbColor = Color(0xFF000001); const Color activeEnabledThumbColor = Color(0xFF000001);
const Color activeDisabledThumbColor = Color(0xFF000002); const Color activeDisabledThumbColor = Color(0xFF000002);
const Color inactiveEnabledThumbColor = Color(0xFF000003); const Color inactiveEnabledThumbColor = Color(0xFF000003);
const Color inactiveDisabledThumbColor = Color(0xFF000004); const Color inactiveDisabledThumbColor = Color(0xFF000004);
final ThemeData theme = ThemeData();
final bool material3 = theme.useMaterial3;
Color getThumbColor(Set<MaterialState> states) { Color getThumbColor(Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) { if (states.contains(MaterialState.disabled)) {
...@@ -657,8 +693,78 @@ void main() { ...@@ -657,8 +693,78 @@ void main() {
final MaterialStateProperty<Color> thumbColor = MaterialStateColor.resolveWith(getThumbColor); final MaterialStateProperty<Color> thumbColor = MaterialStateColor.resolveWith(getThumbColor);
Widget buildSwitchListTile({required bool enabled, required bool selected}) { Widget buildSwitchListTile({required bool enabled, required bool selected}) {
return wrap( return MaterialApp(
child: StatefulBuilder( theme: ThemeData(useMaterial3: false),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return SwitchListTile(
value: selected,
thumbColor: thumbColor,
onChanged: enabled ? (_) { } : null,
);
}),
),
);
}
await tester.pumpWidget(buildSwitchListTile(enabled: false, selected: false));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect()..rrect()..rrect(color: inactiveDisabledThumbColor)
);
await tester.pumpWidget(buildSwitchListTile(enabled: false, selected: true));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect()..rrect()..rrect(color: activeDisabledThumbColor)
);
await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: false));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect()..rrect()..rrect(color: inactiveEnabledThumbColor)
);
await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: true));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect()..rrect()..rrect(color: activeEnabledThumbColor)
);
});
testWidgets('Material3 - SwitchListTile respects thumbColor in active/enabled states', (WidgetTester tester) async {
const Color activeEnabledThumbColor = Color(0xFF000001);
const Color activeDisabledThumbColor = Color(0xFF000002);
const Color inactiveEnabledThumbColor = Color(0xFF000003);
const Color inactiveDisabledThumbColor = Color(0xFF000004);
Color getThumbColor(Set<MaterialState> states) {
if (states.contains(MaterialState.disabled)) {
if (states.contains(MaterialState.selected)) {
return activeDisabledThumbColor;
}
return inactiveDisabledThumbColor;
}
if (states.contains(MaterialState.selected)) {
return activeEnabledThumbColor;
}
return inactiveEnabledThumbColor;
}
final MaterialStateProperty<Color> thumbColor = MaterialStateColor.resolveWith(getThumbColor);
Widget buildSwitchListTile({required bool enabled, required bool selected}) {
return MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
return SwitchListTile( return SwitchListTile(
value: selected, value: selected,
...@@ -666,6 +772,7 @@ void main() { ...@@ -666,6 +772,7 @@ void main() {
onChanged: enabled ? (_) { } : null, onChanged: enabled ? (_) { } : null,
); );
}), }),
),
); );
} }
...@@ -673,18 +780,14 @@ void main() { ...@@ -673,18 +780,14 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect(color: inactiveDisabledThumbColor),
? (paints..rrect()..rrect()..rrect(color: inactiveDisabledThumbColor))
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: inactiveDisabledThumbColor)),
); );
await tester.pumpWidget(buildSwitchListTile(enabled: false, selected: true)); await tester.pumpWidget(buildSwitchListTile(enabled: false, selected: true));
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect(color: activeDisabledThumbColor),
? (paints..rrect()..rrect()..rrect(color: activeDisabledThumbColor))
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: activeDisabledThumbColor)),
); );
await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: false)); await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: false));
...@@ -692,9 +795,7 @@ void main() { ...@@ -692,9 +795,7 @@ void main() {
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect(color: inactiveEnabledThumbColor),
? (paints..rrect()..rrect()..rrect(color: inactiveEnabledThumbColor))
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: inactiveEnabledThumbColor)),
); );
await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: true)); await tester.pumpWidget(buildSwitchListTile(enabled: true, selected: true));
...@@ -702,18 +803,14 @@ void main() { ...@@ -702,18 +803,14 @@ void main() {
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect(color: activeEnabledThumbColor),
? (paints..rrect()..rrect()..rrect(color: activeEnabledThumbColor))
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: activeEnabledThumbColor)),
); );
}); });
testWidgets('SwitchListTile respects thumbColor in hovered/pressed states', (WidgetTester tester) async { testWidgets('Material2 - SwitchListTile respects thumbColor in hovered/pressed states', (WidgetTester tester) async {
tester.binding.focusManager.highlightStrategy = FocusHighlightStrategy.alwaysTraditional; tester.binding.focusManager.highlightStrategy = FocusHighlightStrategy.alwaysTraditional;
const Color hoveredThumbColor = Color(0xFF4caf50); const Color hoveredThumbColor = Color(0xFF4caf50);
const Color pressedThumbColor = Color(0xFFF44336); const Color pressedThumbColor = Color(0xFFF44336);
final ThemeData theme = ThemeData();
final bool material3 = theme.useMaterial3;
Color getThumbColor(Set<MaterialState> states) { Color getThumbColor(Set<MaterialState> states) {
if (states.contains(MaterialState.pressed)) { if (states.contains(MaterialState.pressed)) {
...@@ -729,8 +826,8 @@ void main() { ...@@ -729,8 +826,8 @@ void main() {
Widget buildSwitchListTile() { Widget buildSwitchListTile() {
return MaterialApp( return MaterialApp(
theme: theme, theme: ThemeData(useMaterial3: false),
home: wrap( home: Material(
child: StatefulBuilder( child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
return SwitchListTile( return SwitchListTile(
...@@ -754,9 +851,63 @@ void main() { ...@@ -754,9 +851,63 @@ void main() {
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect()..rrect()..rrect(color: hoveredThumbColor),
? (paints..rrect()..rrect()..rrect(color: hoveredThumbColor)) );
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: hoveredThumbColor)),
// On pressed state
await tester.press(find.byType(Switch));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect()..rrect()..rrect(color: pressedThumbColor),
);
});
testWidgets('Material3 - SwitchListTile respects thumbColor in hovered/pressed states', (WidgetTester tester) async {
tester.binding.focusManager.highlightStrategy = FocusHighlightStrategy.alwaysTraditional;
const Color hoveredThumbColor = Color(0xFF4caf50);
const Color pressedThumbColor = Color(0xFFF44336);
Color getThumbColor(Set<MaterialState> states) {
if (states.contains(MaterialState.pressed)) {
return pressedThumbColor;
}
if (states.contains(MaterialState.hovered)) {
return hoveredThumbColor;
}
return Colors.transparent;
}
final MaterialStateProperty<Color> thumbColor = MaterialStateColor.resolveWith(getThumbColor);
Widget buildSwitchListTile() {
return MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return SwitchListTile(
value: false,
thumbColor: thumbColor,
onChanged: (_) { },
);
}),
),
);
}
await tester.pumpWidget(buildSwitchListTile());
await tester.pumpAndSettle();
// Start hovering
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
await tester.pumpAndSettle();
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect()..rrect()..rrect(color: hoveredThumbColor),
); );
// On pressed state // On pressed state
...@@ -764,9 +915,7 @@ void main() { ...@@ -764,9 +915,7 @@ void main() {
await tester.pumpAndSettle(); await tester.pumpAndSettle();
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
material3 paints..rrect()..rrect()..rrect(color: pressedThumbColor),
? (paints..rrect()..rrect()..rrect(color: pressedThumbColor))
: (paints..rrect()..rrect()..rrect()..rrect()..rrect(color: pressedThumbColor)),
); );
}); });
...@@ -961,12 +1110,10 @@ void main() { ...@@ -961,12 +1110,10 @@ void main() {
); );
}); });
testWidgets('SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async { testWidgets('Material2 - SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async {
final ThemeData theme = ThemeData();
final bool material3 = theme.useMaterial3;
Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) { Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) {
return MaterialApp( return MaterialApp(
theme: theme, theme: ThemeData(useMaterial3: false),
home: Material( home: Material(
child: StatefulBuilder( child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
...@@ -983,20 +1130,47 @@ void main() { ...@@ -983,20 +1130,47 @@ void main() {
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded)); await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded));
final Switch switchWidget = tester.widget<Switch>(find.byType(Switch)); final Switch switchWidget = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded); expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded);
expect(tester.getSize(find.byType(Switch)), material3 ? const Size(60.0, 48.0) : const Size(59.0, 48.0)); expect(tester.getSize(find.byType(Switch)), const Size(59.0, 48.0));
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap));
final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap);
expect(tester.getSize(find.byType(Switch)), const Size(59.0, 40.0));
});
testWidgets('Material3 - SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async {
Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) {
return MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return SwitchListTile(
materialTapTargetSize: materialTapTargetSize,
value: false,
onChanged: (_) {},
);
}),
),
);
}
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded));
final Switch switchWidget = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded);
expect(tester.getSize(find.byType(Switch)), const Size(60.0, 48.0));
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap)); await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap));
final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch)); final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap); expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap);
expect(tester.getSize(find.byType(Switch)), material3 ? const Size(60.0, 40.0) : const Size(59.0, 40.0)); expect(tester.getSize(find.byType(Switch)), const Size(60.0, 40.0));
}); });
testWidgets('SwitchListTile.adaptive respects applyCupertinoTheme', (WidgetTester tester) async { testWidgets('Material2 - SwitchListTile.adaptive respects applyCupertinoTheme', (WidgetTester tester) async {
final ThemeData theme = ThemeData();
Widget buildSwitchListTile(bool applyCupertinoTheme, TargetPlatform platform) { Widget buildSwitchListTile(bool applyCupertinoTheme, TargetPlatform platform) {
return MaterialApp( return MaterialApp(
theme: theme.copyWith(platform: platform), theme: ThemeData(useMaterial3: false, platform: platform),
home: wrap( home: Material(
child: StatefulBuilder( child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
return SwitchListTile.adaptive( return SwitchListTile.adaptive(
...@@ -1015,7 +1189,7 @@ void main() { ...@@ -1015,7 +1189,7 @@ void main() {
expect(find.byType(CupertinoSwitch), findsOneWidget); expect(find.byType(CupertinoSwitch), findsOneWidget);
expect( expect(
Material.of(tester.element(find.byType(Switch))), Material.of(tester.element(find.byType(Switch))),
paints..rrect(color: theme.useMaterial3 ? const Color(0xFF6750A4) : const Color(0xFF2196F3)), paints..rrect(color: const Color(0xFF2196F3)),
); );
await tester.pumpWidget(buildSwitchListTile(false, platform)); await tester.pumpWidget(buildSwitchListTile(false, platform));
...@@ -1028,12 +1202,46 @@ void main() { ...@@ -1028,12 +1202,46 @@ void main() {
} }
}); });
testWidgets('SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async { testWidgets('Material3 - SwitchListTile.adaptive respects applyCupertinoTheme', (WidgetTester tester) async {
final ThemeData theme = ThemeData(); Widget buildSwitchListTile(bool applyCupertinoTheme, TargetPlatform platform) {
final bool material3 = theme.useMaterial3; return MaterialApp(
theme: ThemeData(useMaterial3: true, platform: platform),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return SwitchListTile.adaptive(
applyCupertinoTheme: applyCupertinoTheme,
value: true,
onChanged: (_) {},
);
}),
),
);
}
for (final TargetPlatform platform in <TargetPlatform>[ TargetPlatform.iOS, TargetPlatform.macOS ]) {
await tester.pumpWidget(buildSwitchListTile(true, platform));
await tester.pumpAndSettle();
expect(find.byType(CupertinoSwitch), findsOneWidget);
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect(color: const Color(0xFF6750A4)),
);
await tester.pumpWidget(buildSwitchListTile(false, platform));
await tester.pumpAndSettle();
expect(find.byType(CupertinoSwitch), findsOneWidget);
expect(
Material.of(tester.element(find.byType(Switch))),
paints..rrect(color: const Color(0xFF34C759)),
);
}
});
testWidgets('Material2 - SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async {
Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) { Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) {
return MaterialApp( return MaterialApp(
theme: theme, theme: ThemeData(useMaterial3: false),
home: Material( home: Material(
child: StatefulBuilder( child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) { builder: (BuildContext context, StateSetter setState) {
...@@ -1050,12 +1258,40 @@ void main() { ...@@ -1050,12 +1258,40 @@ void main() {
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded)); await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded));
final Switch switchWidget = tester.widget<Switch>(find.byType(Switch)); final Switch switchWidget = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded); expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded);
expect(tester.getSize(find.byType(Switch)), material3 ? const Size(60.0, 48.0) : const Size(59.0, 48.0)); expect(tester.getSize(find.byType(Switch)), const Size(59.0, 48.0));
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap));
final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap);
expect(tester.getSize(find.byType(Switch)), const Size(59.0, 40.0));
});
testWidgets('Material3 - SwitchListTile respects materialTapTargetSize', (WidgetTester tester) async {
Widget buildSwitchListTile(MaterialTapTargetSize materialTapTargetSize) {
return MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Material(
child: StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return SwitchListTile(
materialTapTargetSize: materialTapTargetSize,
value: false,
onChanged: (_) {},
);
}),
),
);
}
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.padded));
final Switch switchWidget = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget.materialTapTargetSize, MaterialTapTargetSize.padded);
expect(tester.getSize(find.byType(Switch)), const Size(60.0, 48.0));
await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap)); await tester.pumpWidget(buildSwitchListTile(MaterialTapTargetSize.shrinkWrap));
final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch)); final Switch switchWidget1 = tester.widget<Switch>(find.byType(Switch));
expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap); expect(switchWidget1.materialTapTargetSize, MaterialTapTargetSize.shrinkWrap);
expect(tester.getSize(find.byType(Switch)), material3 ? const Size(60.0, 40.0) : const Size(59.0, 40.0)); expect(tester.getSize(find.byType(Switch)), const Size(60.0, 40.0));
}); });
testWidgets('SwitchListTile passes the value of dragStartBehavior to Switch', (WidgetTester tester) async { testWidgets('SwitchListTile passes the value of dragStartBehavior to Switch', (WidgetTester tester) async {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment