Unverified Commit f359d9e2 authored by Loïc Sharma's avatar Loïc Sharma Committed by GitHub

Revert "Update Unit Tests for M2/M3" (#131368)

Reverts flutter/flutter#131292

This PR is affected by https://g-issues.skia.org/issues/40045533.

See @Piinks's [explanation](https://discord.com/channels/608014603317936148/613398423093116959/1133885989358678076):

> The mirror is probably out of sync. The failing commit introduced new changes, but they have not been updated yet. I would revert the PR until we can check the mirror. Last week it went 2+ hours out of sync so rerunning it may not green the tree for a while.
parent 5d76d1a5
...@@ -790,7 +790,7 @@ void main() { ...@@ -790,7 +790,7 @@ void main() {
await tester.pumpWidget( await tester.pumpWidget(
wrap( wrap(
useMaterial3: theme.useMaterial3, useMaterial3: false,
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
IconButton( IconButton(
......
...@@ -93,41 +93,23 @@ void main() { ...@@ -93,41 +93,23 @@ void main() {
// Goldens // // Goldens //
///////////// /////////////
testWidgetsWithLeakTracking('Material2 - InkSparkle renders with sparkles when top left of button is tapped', (WidgetTester tester) async { testWidgetsWithLeakTracking('InkSparkle renders with sparkles when top left of button is tapped', (WidgetTester tester) async {
await _runTest(tester, 'top_left', 0.2); await _runTest(tester, 'top_left', 0.2);
}, },
skip: kIsWeb, // [intended] shaders are not yet supported for web. skip: kIsWeb, // [intended] shaders are not yet supported for web.
); );
testWidgetsWithLeakTracking('Material3 - InkSparkle renders with sparkles when top left of button is tapped', (WidgetTester tester) async { testWidgetsWithLeakTracking('InkSparkle renders with sparkles when center of button is tapped', (WidgetTester tester) async {
await _runM3Test(tester, 'top_left', 0.2);
},
skip: kIsWeb, // [intended] shaders are not yet supported for web.
);
testWidgetsWithLeakTracking('Material2 - InkSparkle renders with sparkles when center of button is tapped', (WidgetTester tester) async {
await _runTest(tester, 'center', 0.5); await _runTest(tester, 'center', 0.5);
}, },
skip: kIsWeb, // [intended] shaders are not yet supported for web. skip: kIsWeb, // [intended] shaders are not yet supported for web.
); );
testWidgetsWithLeakTracking('Material3 - InkSparkle renders with sparkles when center of button is tapped', (WidgetTester tester) async { testWidgetsWithLeakTracking('InkSparkle renders with sparkles when bottom right of button is tapped', (WidgetTester tester) async {
await _runM3Test(tester, 'center', 0.5);
},
skip: kIsWeb, // [intended] shaders are not yet supported for web.
);
testWidgetsWithLeakTracking('Material2 - InkSparkle renders with sparkles when bottom right of button is tapped', (WidgetTester tester) async {
await _runTest(tester, 'bottom_right', 0.8); await _runTest(tester, 'bottom_right', 0.8);
}, },
skip: kIsWeb, // [intended] shaders are not yet supported for web. skip: kIsWeb, // [intended] shaders are not yet supported for web.
); );
testWidgetsWithLeakTracking('Material3 - InkSparkle renders with sparkles when bottom right of button is tapped', (WidgetTester tester) async {
await _runM3Test(tester, 'bottom_right', 0.8);
},
skip: kIsWeb, // [intended] shaders are not yet supported for web.
);
} }
Future<void> _runTest(WidgetTester tester, String positionName, double distanceFromTopLeft) async { Future<void> _runTest(WidgetTester tester, String positionName, double distanceFromTopLeft) async {
...@@ -164,46 +146,7 @@ Future<void> _runTest(WidgetTester tester, String positionName, double distanceF ...@@ -164,46 +146,7 @@ Future<void> _runTest(WidgetTester tester, String positionName, double distanceF
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
await expectLater( await expectLater(
repaintFinder, repaintFinder,
matchesGoldenFile('m2_ink_sparkle.$positionName.$i.png'), matchesGoldenFile('ink_sparkle.$positionName.$i.png'),
);
}
}
Future<void> _runM3Test(WidgetTester tester, String positionName, double distanceFromTopLeft) async {
final Key repaintKey = UniqueKey();
final Key buttonKey = UniqueKey();
await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Scaffold(
body: Center(
child: RepaintBoundary(
key: repaintKey,
child: ElevatedButton(
key: buttonKey,
style: ElevatedButton.styleFrom(splashFactory: InkSparkle.constantTurbulenceSeedSplashFactory),
child: const Text('Sparkle!'),
onPressed: () { },
),
),
),
),
));
final Finder buttonFinder = find.byKey(buttonKey);
final Finder repaintFinder = find.byKey(repaintKey);
final Offset topLeft = tester.getTopLeft(buttonFinder);
final Offset bottomRight = tester.getBottomRight(buttonFinder);
await _warmUpShader(tester, buttonFinder);
final Offset target = topLeft + (bottomRight - topLeft) * distanceFromTopLeft;
await tester.tapAt(target);
for (int i = 0; i <= 5; i++) {
await tester.pump(const Duration(milliseconds: 50));
await expectLater(
repaintFinder,
matchesGoldenFile('m3_ink_sparkle.$positionName.$i.png'),
); );
} }
} }
......
...@@ -921,7 +921,7 @@ void main() { ...@@ -921,7 +921,7 @@ void main() {
expect(box, isNot(paints..circle())); expect(box, isNot(paints..circle()));
}); });
testWidgetsWithLeakTracking('Material2 - border is painted above child by default', (WidgetTester tester) async { testWidgetsWithLeakTracking('border is painted above child by default', (WidgetTester tester) async {
final Key painterKey = UniqueKey(); final Key painterKey = UniqueKey();
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
...@@ -956,50 +956,11 @@ void main() { ...@@ -956,50 +956,11 @@ void main() {
await expectLater( await expectLater(
find.byKey(painterKey), find.byKey(painterKey),
matchesGoldenFile('m2_material.border_paint_above.png'), matchesGoldenFile('material.border_paint_above.png'),
); );
}); });
testWidgetsWithLeakTracking('Material3 - border is painted above child by default', (WidgetTester tester) async { testWidgetsWithLeakTracking('border is painted below child when specified', (WidgetTester tester) async {
final Key painterKey = UniqueKey();
await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Scaffold(
body: RepaintBoundary(
key: painterKey,
child: Card(
child: SizedBox(
width: 200,
height: 300,
child: Material(
clipBehavior: Clip.hardEdge,
shape: const RoundedRectangleBorder(
side: BorderSide(color: Colors.grey, width: 6),
borderRadius: BorderRadius.all(Radius.circular(8)),
),
child: Column(
children: <Widget>[
Container(
color: Colors.green,
height: 150,
),
],
),
),
),
),
),
),
));
await expectLater(
find.byKey(painterKey),
matchesGoldenFile('m3_material.border_paint_above.png'),
);
});
testWidgetsWithLeakTracking('Material2 - border is painted below child when specified', (WidgetTester tester) async {
final Key painterKey = UniqueKey(); final Key painterKey = UniqueKey();
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
...@@ -1035,47 +996,7 @@ void main() { ...@@ -1035,47 +996,7 @@ void main() {
await expectLater( await expectLater(
find.byKey(painterKey), find.byKey(painterKey),
matchesGoldenFile('m2_material.border_paint_below.png'), matchesGoldenFile('material.border_paint_below.png'),
);
});
testWidgetsWithLeakTracking('Material3 - border is painted below child when specified', (WidgetTester tester) async {
final Key painterKey = UniqueKey();
await tester.pumpWidget(MaterialApp(
theme: ThemeData(useMaterial3: true),
home: Scaffold(
body: RepaintBoundary(
key: painterKey,
child: Card(
child: SizedBox(
width: 200,
height: 300,
child: Material(
clipBehavior: Clip.hardEdge,
shape: const RoundedRectangleBorder(
side: BorderSide(color: Colors.grey, width: 6),
borderRadius: BorderRadius.all(Radius.circular(8)),
),
borderOnForeground: false,
child: Column(
children: <Widget>[
Container(
color: Colors.green,
height: 150,
),
],
),
),
),
),
),
),
));
await expectLater(
find.byKey(painterKey),
matchesGoldenFile('m3_material.border_paint_below.png'),
); );
}); });
}); });
......
...@@ -240,7 +240,7 @@ void main() { ...@@ -240,7 +240,7 @@ void main() {
expect(find.text('Page 2'), findsNothing); expect(find.text('Page 2'), findsNothing);
}, variant: TargetPlatformVariant.only(TargetPlatform.android)); }, variant: TargetPlatformVariant.only(TargetPlatform.android));
testWidgets('Material2 - test page transition (_ZoomPageTransition) with rasterization re-rasterizes when view insets change', (WidgetTester tester) async { testWidgets('test page transition (_ZoomPageTransition) with rasterization re-rasterizes when view insets change', (WidgetTester tester) async {
addTearDown(tester.view.reset); addTearDown(tester.view.reset);
tester.view.physicalSize = const Size(1000, 1000); tester.view.physicalSize = const Size(1000, 1000);
tester.view.viewInsets = FakeViewPadding.zero; tester.view.viewInsets = FakeViewPadding.zero;
...@@ -270,7 +270,7 @@ void main() { ...@@ -270,7 +270,7 @@ void main() {
await tester.pump(); await tester.pump();
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
await expectLater(find.byKey(key), matchesGoldenFile('m2_zoom_page_transition.small.png')); await expectLater(find.byKey(key), matchesGoldenFile('zoom_page_transition.small.png'));
// Change the view insets. // Change the view insets.
tester.view.viewInsets = const FakeViewPadding(bottom: 500); tester.view.viewInsets = const FakeViewPadding(bottom: 500);
...@@ -278,48 +278,7 @@ void main() { ...@@ -278,48 +278,7 @@ void main() {
await tester.pump(); await tester.pump();
await tester.pump(const Duration(milliseconds: 50)); await tester.pump(const Duration(milliseconds: 50));
await expectLater(find.byKey(key), matchesGoldenFile('m2_zoom_page_transition.big.png')); await expectLater(find.byKey(key), matchesGoldenFile('zoom_page_transition.big.png'));
}, variant: TargetPlatformVariant.only(TargetPlatform.android), skip: kIsWeb); // [intended] rasterization is not used on the web.
testWidgets('Material3 - test page transition (_ZoomPageTransition) with rasterization re-rasterizes when view insets change', (WidgetTester tester) async {
addTearDown(tester.view.reset);
tester.view.physicalSize = const Size(1000, 1000);
tester.view.viewInsets = FakeViewPadding.zero;
// Intentionally use nested scaffolds to simulate the view insets being
// consumed.
final Key key = GlobalKey();
await tester.pumpWidget(
RepaintBoundary(
key: key,
child: MaterialApp(
theme: ThemeData(useMaterial3: true),
onGenerateRoute: (RouteSettings settings) {
return MaterialPageRoute<void>(
builder: (BuildContext context) {
return const Scaffold(body: Scaffold(
body: Material(child: SizedBox.shrink())
));
},
);
},
),
),
);
tester.state<NavigatorState>(find.byType(Navigator)).pushNamed('/next');
await tester.pump();
await tester.pump(const Duration(milliseconds: 50));
await expectLater(find.byKey(key), matchesGoldenFile('m3_zoom_page_transition.small.png'));
// Change the view insets.
tester.view.viewInsets = const FakeViewPadding(bottom: 500);
await tester.pump();
await tester.pump(const Duration(milliseconds: 50));
await expectLater(find.byKey(key), matchesGoldenFile('m3_zoom_page_transition.big.png'));
}, variant: TargetPlatformVariant.only(TargetPlatform.android), skip: kIsWeb); // [intended] rasterization is not used on the web. }, variant: TargetPlatformVariant.only(TargetPlatform.android), skip: kIsWeb); // [intended] rasterization is not used on the web.
testWidgets( testWidgets(
......
...@@ -720,7 +720,7 @@ void main() { ...@@ -720,7 +720,7 @@ void main() {
expect(tester.hasRunningAnimations, isTrue); expect(tester.hasRunningAnimations, isTrue);
}); });
testWidgets('Material2 - RefreshProgressIndicator uses expected animation', (WidgetTester tester) async { testWidgets('RefreshProgressIndicator uses expected animation', (WidgetTester tester) async {
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(50, 50)); final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(50, 50));
await tester.pumpFrames(animationSheet.record( await tester.pumpFrames(animationSheet.record(
...@@ -732,23 +732,7 @@ void main() { ...@@ -732,23 +732,7 @@ void main() {
await expectLater( await expectLater(
await animationSheet.collate(20), await animationSheet.collate(20),
matchesGoldenFile('m2_material.refresh_progress_indicator.png'), matchesGoldenFile('material.refresh_progress_indicator.png'),
);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
testWidgets('Material3 - RefreshProgressIndicator uses expected animation', (WidgetTester tester) async {
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(50, 50));
await tester.pumpFrames(animationSheet.record(
Theme(
data: ThemeData(useMaterial3: true),
child: const _RefreshProgressIndicatorGolden()
),
), const Duration(seconds: 3));
await expectLater(
await animationSheet.collate(20),
matchesGoldenFile('m3_material.refresh_progress_indicator.png'),
); );
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
...@@ -1017,7 +1001,7 @@ void main() { ...@@ -1017,7 +1001,7 @@ void main() {
handle.dispose(); handle.dispose();
}); });
testWidgets('Material2 - Indeterminate CircularProgressIndicator uses expected animation', (WidgetTester tester) async { testWidgets('Indeterminate CircularProgressIndicator uses expected animation', (WidgetTester tester) async {
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(40, 40)); final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(40, 40));
await tester.pumpFrames(animationSheet.record( await tester.pumpFrames(animationSheet.record(
...@@ -1035,29 +1019,7 @@ void main() { ...@@ -1035,29 +1019,7 @@ void main() {
await expectLater( await expectLater(
await animationSheet.collate(20), await animationSheet.collate(20),
matchesGoldenFile('m2_material.circular_progress_indicator.indeterminate.png'), matchesGoldenFile('material.circular_progress_indicator.indeterminate.png'),
);
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
testWidgets('Material3 - Indeterminate CircularProgressIndicator uses expected animation', (WidgetTester tester) async {
final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(40, 40));
await tester.pumpFrames(animationSheet.record(
Theme(
data: ThemeData(useMaterial3: true),
child: const Directionality(
textDirection: TextDirection.ltr,
child: Padding(
padding: EdgeInsets.all(4),
child: CircularProgressIndicator(),
),
),
),
), const Duration(seconds: 2));
await expectLater(
await animationSheet.collate(20),
matchesGoldenFile('m3_material.circular_progress_indicator.indeterminate.png'),
); );
}, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001 }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
......
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