TestWindow class Null safety
SingletonFlutterWindow that wraps another SingletonFlutterWindow and allows faking of some properties for testing purposes.
Tests for certain widgets, e.g., MaterialApp, might require faking certain properties of a SingletonFlutterWindow. TestWindow facilitates the faking of these properties by overriding the properties of a real SingletonFlutterWindow with desired fake values. The binding used within tests, TestWidgetsFlutterBinding, contains a TestWindow that is used by all tests.
Sample Code
A test can utilize a TestWindow in the following way:
testWidgets('your test name here', (WidgetTester tester) async {
// Retrieve the TestWidgetsFlutterBinding.
final TestWidgetsFlutterBinding testBinding = tester.binding;
// Fake the desired properties of the TestWindow. All code running
// within this test will perceive the following fake text scale
// factor as the real text scale factor of the window.
testBinding.window.textScaleFactorFakeValue = 2.5;
// Test code that depends on text scale factor here.
});
The TestWidgetsFlutterBinding is recreated for each test and therefore any fake values defined in one test will not persist to the next.
If a test needs to override a real SingletonFlutterWindow property and then later return to using the real SingletonFlutterWindow property, TestWindow provides methods to clear each individual test value, e.g., clearLocaleTestValue().
To clear all fake test values in a TestWindow, consider using clearAllTestValues().
See also:
- TestPlatformDispatcher, which wraps a PlatformDispatcher for testing purposes and is used by the platformDispatcher property of this class.
- Implemented types
Constructors
- TestWindow({required SingletonFlutterWindow window})
- Constructs a TestWindow that defers all behavior to the given dart:ui.SingletonFlutterWindow unless explicitly overridden for test purposes.
Properties
- accessibilityFeatures → AccessibilityFeatures
-
Additional accessibility features that may be enabled by the platform.
read-onlyoverride
- accessibilityFeaturesTestValue ← AccessibilityFeatures
-
Hides the real accessibility features and reports the given
accessibilityFeaturesTestValue instead.
Deprecated('Use platformDispatcher.accessibilityFeaturesTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.accessibilityFeaturesTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- alwaysUse24HourFormat → bool
-
The setting indicating whether time should always be shown in the 24-hour
format.
read-onlyoverride
- alwaysUse24HourFormatTestValue ← bool
-
Hides the real clock format and reports the given
alwaysUse24HourFormatTestValue instead.
Deprecated('Use platformDispatcher.alwaysUse24HourFormatTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.alwaysUse24HourFormatTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- brieflyShowPassword → bool
-
Whether briefly displaying the characters as you type in obscured text
fields is enabled in system settings.
read-onlyoverride
- brieflyShowPasswordTestValue ← bool
-
Hides the real brieflyShowPassword and reports the given
brieflyShowPasswordTestValue
instead.Deprecated('Use platformDispatcher.brieflyShowPasswordTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.brieflyShowPasswordTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only - defaultRouteName → String
-
The route or path that the embedder requested when the application was
launched.
read-onlyoverride
- defaultRouteNameTestValue ← String
-
Hides the real default route name and reports the given
defaultRouteNameTestValue instead.
Deprecated('Use platformDispatcher.defaultRouteNameTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.defaultRouteNameTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- devicePixelRatio → double
-
The number of device pixels for each logical pixel for the screen this
view is displayed on.
read-onlyoverride
- devicePixelRatioTestValue ← double
-
Hides the real device pixel ratio and reports the given
devicePixelRatio
instead.write-only -
displayFeatures
→ List<
DisplayFeature> -
Areas of the display that are obstructed by hardware features.
read-onlyoverride
-
displayFeaturesTestValue
← List<
DisplayFeature> -
Hides the real displayFeatures and reports the given displayFeaturesTestValue instead.
write-only
- frameData → FrameData
-
The FrameData object for the current frame.
read-onlyinherited
- hashCode → int
-
The hash code for this object.
read-onlyinherited
- initialLifecycleState → String
-
The lifecycle state immediately after dart isolate initialization.
read-onlyoverride
- initialLifecycleStateTestValue ← String
-
Sets a faked initialLifecycleState for testing.
Deprecated('Use platformDispatcher.initialLifecycleStateTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.initialLifecycleStateTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- locale → Locale
-
The system-reported default locale of the device.
read-onlyoverride
-
locales
→ List<
Locale> -
The full system-reported supported locales of the device.
read-onlyoverride
-
localesTestValue
← List<
Locale> -
Hides the real locales and reports the given localesTestValue instead.
Deprecated('Use platformDispatcher.localesTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.localesTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- localeTestValue ← Locale
-
Hides the real locale and reports the given localeTestValue instead.
Deprecated('Use platformDispatcher.localeTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.localeTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- nativeSpellCheckServiceDefined → bool
-
Whether the spell check service is supported on the current platform.
read-onlyinherited
- onAccessibilityFeaturesChanged ↔ VoidCallback?
-
A callback that is invoked when the value of accessibilityFeatures changes.
read / writeoverride
- onBeginFrame ↔ FrameCallback?
-
A callback that is invoked to notify the window that it is an appropriate
time to provide a scene using the SceneBuilder API and the render
method.
read / writeoverride
- onDrawFrame ↔ VoidCallback?
-
A callback that is invoked for each frame after onBeginFrame has
completed and after the microtask queue has been drained.
read / writeoverride
- onFrameDataChanged ↔ VoidCallback?
-
A callback that is invoked when the window updates the FrameData.
read / writeinherited
- onKeyData ↔ KeyDataCallback?
-
A callback that is invoked when key data is available.
read / writeinherited
- onLocaleChanged ↔ VoidCallback?
-
A callback that is invoked whenever locale changes value.
read / writeoverride
- onMetricsChanged ↔ VoidCallback?
-
A callback that is invoked whenever the devicePixelRatio,
physicalSize, padding, viewInsets, PlatformDispatcher.views, or
systemGestureInsets values change.
read / writeoverride
- onPlatformBrightnessChanged ↔ VoidCallback?
-
A callback that is invoked whenever platformBrightness changes value.
read / writeoverride
- onPlatformMessage ↔ PlatformMessageCallback?
-
Called whenever this window receives a message from a platform-specific
plugin.
Deprecated('Instead of calling this callback, use ServicesBinding.instance.channelBuffers.push. ' 'This feature was deprecated after v2.1.0-10.0.pre.')">@Deprecated('Instead of calling this callback, use ServicesBinding.instance.channelBuffers.push. ' 'This feature was deprecated after v2.1.0-10.0.pre.')Deprecated('Instead of setting this callback, use ServicesBinding.instance.defaultBinaryMessenger.setMessageHandler. ' 'This feature was deprecated after v2.1.0-10.0.pre.')">@Deprecated('Instead of setting this callback, use ServicesBinding.instance.defaultBinaryMessenger.setMessageHandler. ' 'This feature was deprecated after v2.1.0-10.0.pre.')read / writeoverride
- onPointerDataPacket ↔ PointerDataPacketCallback?
-
A callback that is invoked when pointer data is available.
read / writeoverride
- onReportTimings ↔ TimingsCallback?
-
A callback that is invoked to report the FrameTiming of recently
rasterized frames.
read / writeoverride
- onSemanticsAction ↔ SemanticsActionCallback?
-
A callback that is invoked whenever the user requests an action to be
performed.
read / writeoverride
- onSemanticsEnabledChanged ↔ VoidCallback?
-
A callback that is invoked when the value of semanticsEnabled changes.
read / writeoverride
- onSystemFontFamilyChanged ↔ VoidCallback?
-
A callback that is invoked whenever systemFontFamily changes value.
read / writeinherited
- onTextScaleFactorChanged ↔ VoidCallback?
-
A callback that is invoked whenever textScaleFactor changes value.
read / writeoverride
- padding → WindowPadding
-
The number of physical pixels on each side of the display rectangle into
which the view can render, but which may be partially obscured by system
UI (such as the system notification area), or physical intrusions in
the display (e.g. overscan regions on television screens or phone sensor
housings).
read-onlyoverride
- paddingTestValue ← WindowPadding
-
Hides the real padding and reports the given paddingTestValue instead.
write-only
- physicalGeometry → Rect
-
The dimensions and location of the rectangle into which the scene rendered
in this view will be drawn on the screen, in physical pixels.
read-onlyinherited
- physicalSize → Size
-
The dimensions of the rectangle into which the scene rendered in this view
will be drawn on the screen, in physical pixels.
read-onlyoverride
- physicalSizeTestValue ← Size
-
Hides the real physical size and reports the given physicalSizeTestValue
instead.
write-only
- platformBrightness → Brightness
-
The setting indicating the current brightness mode of the host platform.
read-onlyoverride
- platformBrightnessTestValue ← Brightness
-
Hides the real text scale factor and reports the given
platformBrightnessTestValue instead.
Deprecated('Use platformDispatcher.platformBrightnessTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.platformBrightnessTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- platformDispatcher → TestPlatformDispatcher
-
The platform dispatcher that this view is registered with, and gets its
information from.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
- semanticsEnabled → bool
-
Whether the user has requested that updateSemantics be called when
the semantic contents of window changes.
read-onlyoverride
- semanticsEnabledTestValue ← bool
-
Hides the real semantics enabled and reports the given
semanticsEnabledTestValue instead.
Deprecated('Use platformDispatcher.semanticsEnabledTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.semanticsEnabledTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- systemFontFamily → String?
-
The setting indicating the system font of the host platform.
read-onlyinherited
- systemGestureInsets → WindowPadding
-
The number of physical pixels on each side of the display rectangle into
which the view can render, but where the operating system will consume
input gestures for the sake of system navigation.
read-onlyoverride
- systemGestureInsetsTestValue ← WindowPadding
-
Hides the real system gesture insets and reports the given systemGestureInsetsTestValue instead.
write-only
- textScaleFactor → double
-
The system-reported text scale.
read-onlyoverride
- textScaleFactorTestValue ← double
-
Hides the real text scale factor and reports the given
textScaleFactorTestValue instead.
Deprecated('Use platformDispatcher.textScaleFactorTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.textScaleFactorTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')write-only
- viewConfiguration → ViewConfiguration
-
The configuration of this view.
read-onlyoverride
- viewConfigurationTestValue ← ViewConfiguration?
-
Hide the real view configuration and report the provided
value
instead.write-only - viewInsets → WindowPadding
-
The number of physical pixels on each side of the display rectangle into
which the view can render, but over which the operating system will likely
place system UI, such as the keyboard, that fully obscures any content.
read-onlyoverride
- viewInsetsTestValue ← WindowPadding
-
Hides the real view insets and reports the given viewInsetsTestValue
instead.
write-only
- viewPadding → WindowPadding
-
The number of physical pixels on each side of the display rectangle into
which the view can render, but which may be partially obscured by system
UI (such as the system notification area), or physical intrusions in
the display (e.g. overscan regions on television screens or phone sensor
housings).
read-onlyoverride
- viewPaddingTestValue ← WindowPadding
-
Hides the real view padding and reports the given paddingTestValue
instead.
write-only
Methods
-
clearAccessibilityFeaturesTestValue(
) → void -
Deletes any existing test accessibility features and returns to using the
real accessibility features.
Deprecated('Use platformDispatcher.clearAccessibilityFeaturesTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearAccessibilityFeaturesTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearAllTestValues(
) → void - Delete any test value properties that have been set on this TestWindow as well as its platformDispatcher.
-
clearAlwaysUse24HourTestValue(
) → void -
Deletes any existing test clock format and returns to using the real clock
format.
Deprecated('Use platformDispatcher.clearAlwaysUse24HourTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearAlwaysUse24HourTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearDefaultRouteNameTestValue(
) → void -
Deletes any existing test default route name and returns to using the real
default route name.
Deprecated('Use platformDispatcher.clearDefaultRouteNameTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearDefaultRouteNameTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearDevicePixelRatioTestValue(
) → void - Deletes any existing test device pixel ratio and returns to using the real device pixel ratio.
-
clearDisplayFeaturesTestValue(
) → void - Deletes any existing test padding and returns to using the real padding.
-
clearLocalesTestValue(
) → void -
Deletes any existing test locales and returns to using the real locales.
Deprecated('Use platformDispatcher.clearLocalesTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearLocalesTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearLocaleTestValue(
) → void -
Deletes any existing test locale and returns to using the real locale.
Deprecated('Use platformDispatcher.clearLocaleTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearLocaleTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearPaddingTestValue(
) → void - Deletes any existing test padding and returns to using the real padding.
-
clearPhysicalSizeTestValue(
) → void - Deletes any existing test physical size and returns to using the real physical size.
-
clearPlatformBrightnessTestValue(
) → void -
Deletes any existing test platform brightness and returns to using the
real platform brightness.
Deprecated('Use platformDispatcher.clearPlatformBrightnessTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearPlatformBrightnessTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearSemanticsEnabledTestValue(
) → void -
Deletes any existing test semantics enabled and returns to using the real
semantics enabled.
Deprecated('Use platformDispatcher.clearSemanticsEnabledTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearSemanticsEnabledTestValue instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearSystemGestureInsetsTestValue(
) → void - Deletes any existing test system gesture insets and returns to using the real system gesture insets.
-
clearTextScaleFactorTestValue(
) → void -
Deletes any existing test text scale factor and returns to using the real
text scale factor.
Deprecated('Use platformDispatcher.clearTextScaleFactorTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')">@Deprecated('Use platformDispatcher.clearTextScaleFactorTestValue() instead. ' 'This feature was deprecated after v2.11.0-0.0.pre.')
-
clearViewInsetsTestValue(
) → void - Deletes any existing test view insets and returns to using the real view insets.
-
clearViewPaddingTestValue(
) → void - Deletes any existing test view padding and returns to using the real viewPadding.
-
computePlatformResolvedLocale(
List< Locale> supportedLocales) → Locale? -
Performs the platform-native locale resolution.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
This gives us some grace time when the dart:ui side adds something to
SingletonFlutterWindow, and makes things easier when we do rolls to give
us time to catch up.
override
-
render(
Scene scene) → void -
Updates the view's rendering on the GPU with the newly provided Scene.
override
-
scheduleFrame(
) → void -
Requests that, at the next appropriate opportunity, the onBeginFrame and
onDrawFrame callbacks be invoked.
override
-
sendPlatformMessage(
String name, ByteData? data, PlatformMessageResponseCallback? callback) → void -
Sends a message to a platform-specific plugin.
override
-
setIsolateDebugName(
String name) → void -
Set the debug name associated with this platform dispatcher's root
isolate.
override
-
toString(
) → String -
A string representation of this object.
inherited
-
updateSemantics(
SemanticsUpdate update) → void -
Change the retained semantics data about this window.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited