MaterialStatesController should dispatch creation in constructor. (#133826)
This PR also updates other tests to use matcher.
This commit is contained in:
parent
80f737d1e0
commit
a3362a9ff8
@ -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);
|
||||
void createAndDispose() {
|
||||
PlatformRouteInformationProvider(
|
||||
initialRouteInformation: RouteInformation(uri: Uri.parse('http://google.com')),
|
||||
).dispose();
|
||||
}
|
||||
|
||||
final PlatformRouteInformationProvider registry = PlatformRouteInformationProvider(
|
||||
initialRouteInformation: RouteInformation(uri: Uri.parse('http://google.com')),
|
||||
);
|
||||
|
||||
expect(eventCount, 1);
|
||||
|
||||
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));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user