Unverified Commit 237db2bb authored by derdilla's avatar derdilla Committed by GitHub

cover more tests with leak tracing (#134834)

parent 2868bc13
...@@ -4,9 +4,10 @@ ...@@ -4,9 +4,10 @@
import 'package:flutter/semantics.dart'; import 'package:flutter/semantics.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() { void main() {
testWidgets('Listeners are called when semantics are turned on with ensureSemantics', (WidgetTester tester) async { testWidgetsWithLeakTracking('Listeners are called when semantics are turned on with ensureSemantics', (WidgetTester tester) async {
expect(SemanticsBinding.instance.semanticsEnabled, isFalse); expect(SemanticsBinding.instance.semanticsEnabled, isFalse);
final List<bool> status = <bool>[]; final List<bool> status = <bool>[];
...@@ -43,7 +44,7 @@ void main() { ...@@ -43,7 +44,7 @@ void main() {
expect(SemanticsBinding.instance.semanticsEnabled, isFalse); expect(SemanticsBinding.instance.semanticsEnabled, isFalse);
}, semanticsEnabled: false); }, semanticsEnabled: false);
testWidgets('Listeners are called when semantics are turned on by platform', (WidgetTester tester) async { testWidgetsWithLeakTracking('Listeners are called when semantics are turned on by platform', (WidgetTester tester) async {
expect(SemanticsBinding.instance.semanticsEnabled, isFalse); expect(SemanticsBinding.instance.semanticsEnabled, isFalse);
final List<bool> status = <bool>[]; final List<bool> status = <bool>[];
...@@ -69,7 +70,7 @@ void main() { ...@@ -69,7 +70,7 @@ void main() {
expect(SemanticsBinding.instance.semanticsEnabled, isFalse); expect(SemanticsBinding.instance.semanticsEnabled, isFalse);
}, semanticsEnabled: false); }, semanticsEnabled: false);
testWidgets('SemanticsBinding.ensureSemantics triggers creation of semantics owner.', (WidgetTester tester) async { testWidgetsWithLeakTracking('SemanticsBinding.ensureSemantics triggers creation of semantics owner.', (WidgetTester tester) async {
expect(SemanticsBinding.instance.semanticsEnabled, isFalse); expect(SemanticsBinding.instance.semanticsEnabled, isFalse);
expect(tester.binding.pipelineOwner.semanticsOwner, isNull); expect(tester.binding.pipelineOwner.semanticsOwner, isNull);
......
...@@ -5,11 +5,12 @@ ...@@ -5,11 +5,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
import '../widgets/semantics_tester.dart'; import '../widgets/semantics_tester.dart';
void main() { void main() {
testWidgets('SemanticsNodes overlapping in z', (WidgetTester tester) async { testWidgetsWithLeakTracking('SemanticsNodes overlapping in z', (WidgetTester tester) async {
// Cards are semantic boundaries that always own their own SemanticNode, // Cards are semantic boundaries that always own their own SemanticNode,
// PhysicalModels merge their semantics information into parent. // PhysicalModels merge their semantics information into parent.
// //
...@@ -97,7 +98,7 @@ void main() { ...@@ -97,7 +98,7 @@ void main() {
semantics.dispose(); semantics.dispose();
}); });
testWidgets('SemanticsNodes overlapping in z with switched children', (WidgetTester tester) async { testWidgetsWithLeakTracking('SemanticsNodes overlapping in z with switched children', (WidgetTester tester) async {
// Same as 'SemanticsNodes overlapping in z', but the order of children // Same as 'SemanticsNodes overlapping in z', but the order of children
// is reversed // is reversed
...@@ -173,7 +174,7 @@ void main() { ...@@ -173,7 +174,7 @@ void main() {
semantics.dispose(); semantics.dispose();
}); });
testWidgets('single node thickness', (WidgetTester tester) async { testWidgetsWithLeakTracking('single node thickness', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester); final SemanticsTester semantics = SemanticsTester(tester);
await tester.pumpWidget(const MaterialApp( await tester.pumpWidget(const MaterialApp(
...@@ -193,7 +194,7 @@ void main() { ...@@ -193,7 +194,7 @@ void main() {
semantics.dispose(); semantics.dispose();
}); });
testWidgets('force-merge', (WidgetTester tester) async { testWidgetsWithLeakTracking('force-merge', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester); final SemanticsTester semantics = SemanticsTester(tester);
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
...@@ -247,7 +248,7 @@ void main() { ...@@ -247,7 +248,7 @@ void main() {
semantics.dispose(); semantics.dispose();
}); });
testWidgets('force-merge with inversed children', (WidgetTester tester) async { testWidgetsWithLeakTracking('force-merge with inversed children', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester); final SemanticsTester semantics = SemanticsTester(tester);
await tester.pumpWidget(MaterialApp( await tester.pumpWidget(MaterialApp(
......
...@@ -5,11 +5,12 @@ ...@@ -5,11 +5,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart'; import 'package:flutter/semantics.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
import '../widgets/semantics_tester.dart'; import '../widgets/semantics_tester.dart';
void main() { void main() {
testWidgets('Performing SemanticsAction.showOnScreen does not crash if node no longer exist', (WidgetTester tester) async { testWidgetsWithLeakTracking('Performing SemanticsAction.showOnScreen does not crash if node no longer exist', (WidgetTester tester) async {
// Regression test for https://github.com/flutter/flutter/issues/100358. // Regression test for https://github.com/flutter/flutter/issues/100358.
final SemanticsTester semantics = SemanticsTester(tester); final SemanticsTester semantics = SemanticsTester(tester);
......
...@@ -8,11 +8,12 @@ import 'dart:ui' as ui; ...@@ -8,11 +8,12 @@ import 'dart:ui' as ui;
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/semantics.dart'; import 'package:flutter/semantics.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() { void main() {
SemanticsUpdateTestBinding(); SemanticsUpdateTestBinding();
testWidgets('Semantics update does not send update for merged nodes.', (WidgetTester tester) async { testWidgetsWithLeakTracking('Semantics update does not send update for merged nodes.', (WidgetTester tester) async {
final SemanticsHandle handle = tester.ensureSemantics(); final SemanticsHandle handle = tester.ensureSemantics();
// Pumps a placeholder to trigger the warm up frame. // Pumps a placeholder to trigger the warm up frame.
await tester.pumpWidget( await tester.pumpWidget(
...@@ -85,7 +86,7 @@ void main() { ...@@ -85,7 +86,7 @@ void main() {
handle.dispose(); handle.dispose();
}); });
testWidgets('Semantics update receives attributed text', (WidgetTester tester) async { testWidgetsWithLeakTracking('Semantics update receives attributed text', (WidgetTester tester) async {
final SemanticsHandle handle = tester.ensureSemantics(); final SemanticsHandle handle = tester.ensureSemantics();
// Pumps a placeholder to trigger the warm up frame. // Pumps a placeholder to trigger the warm up frame.
await tester.pumpWidget( await tester.pumpWidget(
......
...@@ -4,11 +4,12 @@ ...@@ -4,11 +4,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
import '../widgets/semantics_tester.dart'; import '../widgets/semantics_tester.dart';
void main() { void main() {
testWidgets('Traversal order handles touching elements', (WidgetTester tester) async { testWidgetsWithLeakTracking('Traversal order handles touching elements', (WidgetTester tester) async {
final SemanticsTester semantics = SemanticsTester(tester); final SemanticsTester semantics = SemanticsTester(tester);
await tester.pumpWidget( await tester.pumpWidget(
MaterialApp( MaterialApp(
......
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