Unverified Commit a3362a9f authored by Polina Cherkasova's avatar Polina Cherkasova Committed by GitHub

MaterialStatesController should dispatch creation in constructor. (#133826)

This PR also updates other tests to use matcher.
parent 80f737d1
......@@ -4,6 +4,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
test('MaterialStatesController constructor', () {
......@@ -12,6 +13,10 @@ void main() {
expect(MaterialStatesController(<MaterialState>{MaterialState.selected}).value, <MaterialState>{MaterialState.selected});
});
test('MaterialStatesController dispatches memory events', () {
expect(()=> MaterialStatesController().dispose(), dispatchesMemoryEvents(MaterialStatesController));
});
test('MaterialStatesController update, listener', () {
int count = 0;
void valueChanged() {
......
......@@ -11,6 +11,7 @@ import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
final GlobalKey widgetKey = GlobalKey();
......@@ -1610,38 +1611,11 @@ void main() {
});
test('$FocusManager dispatches object creation in constructor', () {
final List<ObjectEvent> events = <ObjectEvent>[];
void listener(ObjectEvent event) {
if (event.object.runtimeType == FocusManager) {
events.add(event);
}
}
MemoryAllocations.instance.addListener(listener);
final FocusManager focusManager = FocusManager();
expect(events, hasLength(1));
focusManager.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(()=> FocusManager().dispose(), dispatchesMemoryEvents(FocusManager));
});
test('$FocusNode dispatches object creation in constructor', () {
final List<ObjectEvent> events = <ObjectEvent>[];
void listener(ObjectEvent event) {
if (event.object.runtimeType == FocusNode) {
events.add(event);
}
}
MemoryAllocations.instance.addListener(listener);
final FocusNode focusManager = FocusNode();
expect(events, hasLength(1));
focusManager.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(()=> FocusNode().dispose(), dispatchesMemoryEvents(FocusNode));
});
testWidgets('FocusManager notifies listeners when a widget loses focus because it was removed.', (WidgetTester tester) async {
......
......@@ -8,6 +8,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
testWidgets('Simple router basic functionality - synchronized', (WidgetTester tester) async {
......@@ -1584,18 +1585,13 @@ testWidgets('ChildBackButtonDispatcher take priority recursively', (WidgetTester
});
test('$PlatformRouteInformationProvider dispatches object creation in constructor', () {
int eventCount = 0;
void listener(ObjectEvent event) => eventCount++;
MemoryAllocations.instance.addListener(listener);
final PlatformRouteInformationProvider registry = PlatformRouteInformationProvider(
initialRouteInformation: RouteInformation(uri: Uri.parse('http://google.com')),
);
expect(eventCount, 1);
void createAndDispose() {
PlatformRouteInformationProvider(
initialRouteInformation: RouteInformation(uri: Uri.parse('http://google.com')),
).dispose();
}
registry.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(createAndDispose, dispatchesMemoryEvents(PlatformRouteInformationProvider));
});
}
......
......@@ -4,9 +4,9 @@
import 'dart:ui' as ui;
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
import 'states.dart';
......@@ -396,19 +396,6 @@ void main() {
});
test('$ScrollController dispatches object creation in constructor', () {
final List<ObjectEvent> events = <ObjectEvent>[];
void listener(ObjectEvent event) {
if (event.object.runtimeType == ScrollController) {
events.add(event);
}
}
MemoryAllocations.instance.addListener(listener);
final ScrollController controller = ScrollController();
expect(events, hasLength(1));
controller.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(()=> ScrollController().dispose(), dispatchesMemoryEvents(ScrollController));
});
}
......@@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
group(LogicalKeySet, () {
......@@ -667,16 +668,7 @@ void main() {
});
test('$ShortcutManager dispatches object creation in constructor', () {
int eventCount = 0;
void listener(ObjectEvent event) => eventCount++;
MemoryAllocations.instance.addListener(listener);
final ShortcutManager registry = ShortcutManager();
expect(eventCount, 1);
registry.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(()=> ShortcutManager().dispose(), dispatchesMemoryEvents(ShortcutManager));
});
testWidgets("Shortcuts passes to the next Shortcuts widget if it doesn't map the key", (WidgetTester tester) async {
......@@ -1867,16 +1859,7 @@ void main() {
});
test('dispatches object creation in constructor', () {
int eventCount = 0;
void listener(ObjectEvent event) => eventCount++;
MemoryAllocations.instance.addListener(listener);
final ShortcutRegistry registry = ShortcutRegistry();
expect(eventCount, 1);
registry.dispose();
MemoryAllocations.instance.removeListener(listener);
expect(()=> ShortcutRegistry().dispose(), dispatchesMemoryEvents(ShortcutRegistry));
});
});
}
......
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