diff --git a/examples/layers/macos/Runner/DebugProfile.entitlements b/examples/layers/macos/Runner/DebugProfile.entitlements index dddb8a30c8..3ba6c1266f 100644 --- a/examples/layers/macos/Runner/DebugProfile.entitlements +++ b/examples/layers/macos/Runner/DebugProfile.entitlements @@ -6,6 +6,8 @@ com.apple.security.cs.allow-jit + com.apple.security.network.client + com.apple.security.network.server diff --git a/packages/flutter/test/material/debug_test.dart b/packages/flutter/test/material/debug_test.dart index 00882c4901..5b36a71c2b 100644 --- a/packages/flutter/test/material/debug_test.dart +++ b/packages/flutter/test/material/debug_test.dart @@ -119,7 +119,7 @@ void main() { 'or WidgetsApp widget at the top of your application widget tree.\n', ), ); - expect(error.toStringDeep(), equalsIgnoringHashCodes( + expect(error.toStringDeep(), startsWith( 'FlutterError\n' ' No Scaffold widget found.\n' ' Builder widgets require a Scaffold widget ancestor.\n' @@ -128,114 +128,8 @@ void main() { ' The ancestors of this widget were:\n' ' Semantics\n' ' Builder\n' - ' RepaintBoundary-[GlobalKey#00000]\n' - ' IgnorePointer\n' - ' AnimatedBuilder\n' - ' FadeTransition\n' - ' FractionalTranslation\n' - ' SlideTransition\n' - ' _FadeUpwardsPageTransition\n' - ' AnimatedBuilder\n' - ' RepaintBoundary\n' - ' _FocusInheritedScope\n' - ' Semantics\n' - ' FocusScope\n' - ' PrimaryScrollController\n' - ' _ActionsScope\n' - ' Actions\n' - ' Builder\n' - ' PageStorage\n' - ' Offstage\n' - ' _ModalScopeStatus\n' - ' UnmanagedRestorationScope\n' - ' RestorationScope\n' - ' AnimatedBuilder\n' - ' _ModalScope-[LabeledGlobalKey<_ModalScopeState>#00000]\n' - ' Semantics\n' - ' _RenderTheaterMarker\n' - ' _EffectiveTickerMode\n' - ' TickerMode\n' - ' _OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#00000]\n' - ' _Theater\n' - ' Overlay-[LabeledGlobalKey#00000]\n' - ' UnmanagedRestorationScope\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' FocusTraversalGroup\n' - ' AbsorbPointer\n' - ' Listener\n' - ' HeroControllerScope\n' - ' Navigator-[GlobalObjectKey _WidgetsAppState#00000]\n' - ' _FocusInheritedScope\n' - ' Semantics\n' - ' FocusScope\n' - ' DefaultSelectionStyle\n' - ' IconTheme\n' - ' IconTheme\n' - ' _InheritedCupertinoTheme\n' - ' CupertinoTheme\n' - ' _InheritedTheme\n' - ' Theme\n' - ' AnimatedTheme\n' - ' DefaultSelectionStyle\n' - ' _ScaffoldMessengerScope\n' - ' ScaffoldMessenger\n' - ' Builder\n' - ' DefaultTextStyle\n' - ' CustomPaint\n' - ' Banner\n' - ' CheckedModeBanner\n' - ' Title\n' - ' Directionality\n' - ' _LocalizationsScope-[GlobalKey#00000]\n' - ' Semantics\n' - ' Localizations\n' - ' Semantics\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' Shortcuts\n' - ' _ShortcutRegistrarScope\n' - ' ShortcutRegistrar\n' - ' TapRegionSurface\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' FocusTraversalGroup\n' - ' _ActionsScope\n' - ' Actions\n' - '${kIsWeb - ? ' Semantics\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' Shortcuts\n' - : ''}' - ' Semantics\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' Shortcuts\n' - ' DefaultTextEditingShortcuts\n' - ' Semantics\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' Shortcuts\n' - ' _SharedAppModel\n' - ' SharedAppData\n' - ' UnmanagedRestorationScope\n' - ' RestorationScope\n' - ' UnmanagedRestorationScope\n' - ' RootRestorationScope\n' - ' WidgetsApp-[GlobalObjectKey _MaterialAppState#00000]\n' - ' Semantics\n' - ' _FocusInheritedScope\n' - ' Focus\n' - ' HeroControllerScope\n' - ' ScrollConfiguration\n' - ' MaterialApp\n' - ' MediaQuery\n' - ' _MediaQueryFromView\n' - ' _ViewScope\n' - ' View-[GlobalObjectKey TestFlutterView#00000]\n' + )); + expect(error.toStringDeep(), endsWith( ' [root]\n' ' Typically, the Scaffold widget is introduced by the MaterialApp\n' ' or WidgetsApp widget at the top of your application widget tree.\n' @@ -302,7 +196,7 @@ void main() { 'MaterialApp at the top of your application widget tree.\n', ), ); - expect(error.toStringDeep(), equalsIgnoringHashCodes( + expect(error.toStringDeep(), startsWith( 'FlutterError\n' ' No ScaffoldMessenger widget found.\n' ' SnackBarAction widgets require a ScaffoldMessenger widget\n' @@ -314,69 +208,8 @@ void main() { ' TextButtonTheme\n' ' Padding\n' ' Row\n' - ' Wrap\n' - ' Padding\n' - ' MediaQuery\n' - ' Padding\n' - ' SafeArea\n' - ' FadeTransition\n' - ' DefaultSelectionStyle\n' - ' IconTheme\n' - ' IconTheme\n' - ' _InheritedCupertinoTheme\n' - ' CupertinoTheme\n' - ' _InheritedTheme\n' - ' Theme\n' - ' DefaultTextStyle\n' - ' AnimatedDefaultTextStyle\n' - ' _InkFeatures-[GlobalKey#00000 ink renderer]\n' - ' NotificationListener\n' - ' PhysicalModel\n' - ' AnimatedPhysicalModel\n' - ' Material\n' - ' KeyedSubtree-[GlobalKey#00000]\n' - ' FractionalTranslation\n' - ' SlideTransition\n' - ' Listener\n' - ' _GestureSemantics\n' - ' RawGestureDetector\n' - ' GestureDetector\n' - " Dismissible-[<'dismissible'>]\n" - ' Semantics\n' - ' Align\n' - ' AnimatedBuilder\n' - ' ClipRect\n' - ' KeyedSubtree-[GlobalKey#00000]\n' - ' _EffectiveTickerMode\n' - ' TickerMode\n' - ' Offstage\n' - ' SizedBox\n' - ' Hero\n' - ' SnackBar-[#00000]\n' - ' MediaQuery\n' - ' LayoutId-[<_ScaffoldSlot.snackBar>]\n' - ' CustomMultiChildLayout\n' - ' _ActionsScope\n' - ' Actions\n' - ' AnimatedBuilder\n' - ' DefaultTextStyle\n' - ' AnimatedDefaultTextStyle\n' - ' _InkFeatures-[GlobalKey#00000 ink renderer]\n' - ' NotificationListener\n' - ' PhysicalModel\n' - ' AnimatedPhysicalModel\n' - ' Material\n' - ' _ScrollNotificationObserverScope\n' - ' NotificationListener\n' - ' NotificationListener\n' - ' ScrollNotificationObserver\n' - ' _ScaffoldScope\n' - ' Scaffold-[LabeledGlobalKey#00000]\n' - ' Directionality\n' - ' MediaQuery\n' - ' _MediaQueryFromView\n' - ' _ViewScope\n' - ' View-[GlobalObjectKey TestFlutterView#00000]\n' + )); + expect(error.toStringDeep(), endsWith( ' [root]\n' ' Typically, the ScaffoldMessenger widget is introduced by the\n' ' MaterialApp at the top of your application widget tree.\n' diff --git a/packages/flutter/test/material/scaffold_test.dart b/packages/flutter/test/material/scaffold_test.dart index d26772c999..f4dd934ec5 100644 --- a/packages/flutter/test/material/scaffold_test.dart +++ b/packages/flutter/test/material/scaffold_test.dart @@ -2501,7 +2501,7 @@ void main() { 'MaterialApp at the top of your application widget tree.\n', ), ); - expect(error.toStringDeep(), equalsIgnoringHashCodes( + expect(error.toStringDeep(), startsWith( 'FlutterError\n' ' No ScaffoldMessenger widget found.\n' ' Builder widgets require a ScaffoldMessenger widget ancestor.\n' @@ -2509,32 +2509,8 @@ void main() { ' ancestor was:\n' ' Builder\n' ' The ancestors of this widget were:\n' - ' KeyedSubtree-[GlobalKey#00000]\n' - ' _BodyBuilder\n' - ' MediaQuery\n' - ' LayoutId-[<_ScaffoldSlot.body>]\n' - ' CustomMultiChildLayout\n' - ' _ActionsScope\n' - ' Actions\n' - ' AnimatedBuilder\n' - ' DefaultTextStyle\n' - ' AnimatedDefaultTextStyle\n' - ' _InkFeatures-[GlobalKey#00000 ink renderer]\n' - ' NotificationListener\n' - ' PhysicalModel\n' - ' AnimatedPhysicalModel\n' - ' Material\n' - ' _ScrollNotificationObserverScope\n' - ' NotificationListener\n' - ' NotificationListener\n' - ' ScrollNotificationObserver\n' - ' _ScaffoldScope\n' - ' Scaffold\n' - ' Directionality\n' - ' MediaQuery\n' - ' _MediaQueryFromView\n' - ' _ViewScope\n' - ' View-[GlobalObjectKey TestFlutterView#e6136]\n' + )); + expect(error.toStringDeep(), endsWith( ' [root]\n' ' Typically, the ScaffoldMessenger widget is introduced by the\n' ' MaterialApp at the top of your application widget tree.\n', diff --git a/packages/flutter/test/rendering/simple_semantics_test.dart b/packages/flutter/test/rendering/simple_semantics_test.dart index 797ac93a2a..fcfbb3771a 100644 --- a/packages/flutter/test/rendering/simple_semantics_test.dart +++ b/packages/flutter/test/rendering/simple_semantics_test.dart @@ -7,7 +7,6 @@ import 'package:flutter_test/flutter_test.dart'; import 'rendering_tester.dart'; - void main() { TestRenderingFlutterBinding.ensureInitialized(); diff --git a/packages/flutter/test/widgets/framework_test.dart b/packages/flutter/test/widgets/framework_test.dart index 2e70d1f6a5..11e445aea9 100644 --- a/packages/flutter/test/widgets/framework_test.dart +++ b/packages/flutter/test/widgets/framework_test.dart @@ -1689,7 +1689,7 @@ void main() { testWidgets('RenderObjectElement.unmount disposes of its renderObject', (WidgetTester tester) async { await tester.pumpWidget(const Placeholder()); - final RenderObjectElement element = tester.allElements.whereType().first; + final RenderObjectElement element = tester.allElements.whereType().last; final RenderObject renderObject = element.renderObject; expect(renderObject.debugDisposed, false); diff --git a/packages/flutter/test/widgets/heroes_test.dart b/packages/flutter/test/widgets/heroes_test.dart index a9a66029ce..5dbc959829 100644 --- a/packages/flutter/test/widgets/heroes_test.dart +++ b/packages/flutter/test/widgets/heroes_test.dart @@ -1182,22 +1182,20 @@ Future main() async { await tester.pump(const Duration(milliseconds: 100)); expect(tester.getTopLeft(find.byKey(heroABKey)).dy, 100.0); - bool isVisible(Element node) { - bool visible = true; - node.visitAncestorElements((Element ancestor) { - final RenderObject r = ancestor.renderObject!; - if (r is RenderAnimatedOpacity && r.opacity.value == 0) { - visible = false; + bool isVisible(RenderObject node) { + RenderObject? currentNode = node; + while (currentNode != null) { + if (currentNode is RenderAnimatedOpacity && currentNode.opacity.value == 0) { return false; } - return true; - }); - return visible; + currentNode = currentNode.parent as RenderObject?; + } + return true; } // Of all heroes only one should be visible now. - final Iterable elements = find.text('Hero').evaluate(); - expect(elements.where(isVisible).length, 1); + final Iterable renderObjects = find.text('Hero').evaluate().map((Element e) => e.renderObject!); + expect(renderObjects.where(isVisible).length, 1); // Hero BC's flight finishes normally. await tester.pump(const Duration(milliseconds: 300));