From 154ae0f11bc9502f332b594617fb2e5c4b8de693 Mon Sep 17 00:00:00 2001 From: Alex Wallen Date: Thu, 10 Nov 2022 00:40:25 +0000 Subject: [PATCH] `updateSemantics` in TestWindow should always be implemented. (#114857) * Test that updateSemantics can be called * Test that updateSemantics in FakeWindow is always implemented * Sort import directives Co-authored-by: a-wallen --- packages/flutter_test/test/window_test.dart | 23 ++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/flutter_test/test/window_test.dart b/packages/flutter_test/test/window_test.dart index 255ac8aa33..01884183c3 100644 --- a/packages/flutter_test/test/window_test.dart +++ b/packages/flutter_test/test/window_test.dart @@ -3,8 +3,9 @@ // found in the LICENSE file. import 'dart:ui' as ui show window; -import 'dart:ui' show AccessibilityFeatures, Brightness, Locale, Size, WindowPadding; +import 'dart:ui' show AccessibilityFeatures, Brightness, Locale, PlatformDispatcher, SemanticsUpdate, SingletonFlutterWindow, Size, WindowPadding; +import 'package:flutter/semantics.dart' show SemanticsUpdateBuilder; import 'package:flutter/widgets.dart' show WidgetsBinding, WidgetsBindingObserver; import 'package:flutter_test/flutter_test.dart'; @@ -207,6 +208,14 @@ void main() { expect(observer.locales, equals(expectedValue)); retrieveTestBinding(tester).window.localesTestValue = defaultLocales; }); + +test('Window test', () { + final FakeSingletonWindow fakeWindow = FakeSingletonWindow(); + final TestWindow testWindow = TestWindow(window: fakeWindow); + final SemanticsUpdate update = SemanticsUpdateBuilder().build(); + testWindow.updateSemantics(update); + expect(fakeWindow.lastUpdate, update); + }); } void verifyThatTestWindowCanFakeProperty({ @@ -266,3 +275,15 @@ class TestObserver with WidgetsBindingObserver { this.locales = locales; } } + +class FakeSingletonWindow extends Fake implements SingletonFlutterWindow { + SemanticsUpdate? lastUpdate; + + @override + PlatformDispatcher get platformDispatcher => PlatformDispatcher.instance; + + @override + void updateSemantics(SemanticsUpdate update) { + lastUpdate = update; + } +}