Unverified Commit f4dee5c6 authored by Darren Austin's avatar Darren Austin Committed by GitHub

Fixed ProgressIndicatorTheme.wrap() to just return a new ProgressIndicatorTheme. (#81359)

parent f6726b42
......@@ -177,8 +177,7 @@ class ProgressIndicatorTheme extends InheritedTheme {
@override
Widget wrap(BuildContext context, Widget child) {
final ProgressIndicatorTheme? ancestorTheme = context.findAncestorWidgetOfExactType<ProgressIndicatorTheme>();
return identical(this, ancestorTheme) ? child : ProgressIndicatorTheme(data: data, child: child);
return ProgressIndicatorTheme(data: data, child: child);
}
@override
......
......@@ -826,4 +826,35 @@ void main() {
TargetPlatform.linux,
}),
);
testWidgets('ProgressIndicatorTheme.wrap() always creates a new ProgressIndicatorTheme', (WidgetTester tester) async {
late BuildContext builderContext;
const ProgressIndicatorThemeData themeData = ProgressIndicatorThemeData(
color: Color(0xFFFF0000),
linearTrackColor: Color(0xFF00FF00),
);
final ProgressIndicatorTheme progressTheme = ProgressIndicatorTheme(
data: themeData,
child: Builder(
builder: (BuildContext context) {
builderContext = context;
return const LinearProgressIndicator(value: 0.5);
}
),
);
await tester.pumpWidget(MaterialApp(
home: progressTheme,
));
final Widget wrappedTheme = progressTheme.wrap(builderContext, Container());
// Make sure the returned widget is a new ProgressIndicatorTheme instance
// with the same theme data as the original.
expect(wrappedTheme, isNot(equals(progressTheme)));
expect(wrappedTheme, isInstanceOf<ProgressIndicatorTheme>());
expect((wrappedTheme as ProgressIndicatorTheme).data, themeData);
});
}
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