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));