diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 241b18780c56..717f6c69d3e6 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -c40173f114fa8b830531578586f4f4eedd2b2c1f +f842ed916514879fe6898b2a5a4053c63c3308fe diff --git a/packages/dynamic_layouts/example/test/wrap_example_test.dart b/packages/dynamic_layouts/example/test/wrap_example_test.dart index 03dfabdc0a76..c517a9e09366 100644 --- a/packages/dynamic_layouts/example/test/wrap_example_test.dart +++ b/packages/dynamic_layouts/example/test/wrap_example_test.dart @@ -3,17 +3,17 @@ // found in the LICENSE file. import 'package:example/wrap_layout_example.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('Check that the children are layed out.', (WidgetTester tester) async { - await tester.pumpWidget( - const MaterialApp( - home: WrapExample(), - ), + const MaterialApp app = MaterialApp( + home: WrapExample(), ); + await tester.pumpWidget(app); await tester.pumpAndSettle(); // See if there are children layed out. @@ -23,10 +23,29 @@ void main() { expect(find.text('Index 3'), findsOneWidget); expect(find.text('Index 4'), findsOneWidget); + // Material 3 changes the expected layout positioning. + final bool usesMaterial3 = (app.theme ?? ThemeData.light()).useMaterial3; + final Offset offset0 = usesMaterial3 + ? Offset(0.0, _getExpectedYOffset(91.0)) + : const Offset(0.0, 103.0); + final Offset offset1 = usesMaterial3 + ? Offset(65.0, _getExpectedYOffset(121.0)) + : const Offset(66.0, 124.0); + final Offset offset3 = usesMaterial3 + ? Offset(270.0, _getExpectedYOffset(171.0)) + : const Offset(271.0, 174.0); + final Offset offset4 = usesMaterial3 + ? Offset(380.0, _getExpectedYOffset(221.0)) + : const Offset(381.0, 224.0); + // See if they are in expected position. - expect(tester.getTopLeft(find.text('Index 0')), const Offset(0.0, 103.0)); - expect(tester.getTopLeft(find.text('Index 1')), const Offset(66.0, 124.0)); - expect(tester.getTopLeft(find.text('Index 3')), const Offset(271.0, 174.0)); - expect(tester.getTopLeft(find.text('Index 4')), const Offset(381.0, 224.0)); + expect(tester.getTopLeft(find.text('Index 0')), offset0); + expect(tester.getTopLeft(find.text('Index 1')), offset1); + expect(tester.getTopLeft(find.text('Index 3')), offset3); + expect(tester.getTopLeft(find.text('Index 4')), offset4); }); } + +double _getExpectedYOffset(double nonWeb) { + return kIsWeb ? nonWeb - 0.5 : nonWeb; +}