Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
46a81067
Unverified
Commit
46a81067
authored
Mar 14, 2023
by
yaakovschectman
Committed by
GitHub
Mar 14, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Updates `flutter/test/material` to no longer use `TestWindow` (#122337)" (#122636)
This reverts commit
b2fc5f97
.
parent
b2fc5f97
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
234 additions
and
183 deletions
+234
-183
app_test.dart
packages/flutter/test/material/app_test.dart
+55
-61
date_picker_test.dart
packages/flutter/test/material/date_picker_test.dart
+7
-7
drawer_test.dart
packages/flutter/test/material/drawer_test.dart
+6
-6
dropdown_test.dart
packages/flutter/test/material/dropdown_test.dart
+5
-4
navigation_drawer_test.dart
packages/flutter/test/material/navigation_drawer_test.dart
+12
-9
page_test.dart
packages/flutter/test/material/page_test.dart
+59
-32
scrollbar_test.dart
packages/flutter/test/material/scrollbar_test.dart
+3
-2
text_field_test.dart
packages/flutter/test/material/text_field_test.dart
+38
-11
text_selection_test.dart
packages/flutter/test/material/text_selection_test.dart
+8
-8
time_picker_test.dart
packages/flutter/test/material/time_picker_test.dart
+23
-22
window.dart
packages/flutter_test/lib/src/window.dart
+0
-3
view_test.dart
packages/flutter_test/test/view_test.dart
+12
-12
window_test.dart
packages/flutter_test/test/window_test.dart
+6
-6
No files found.
packages/flutter/test/material/app_test.dart
View file @
46a81067
...
...
@@ -2,6 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// TODO(gspencergoog): Remove this tag once this test's state leaks/test
// dependencies have been fixed.
// https://github.com/flutter/flutter/issues/85160
// Fails with "flutter test --test-randomize-ordering-seed=123"
@Tags
(<
String
>[
'no-shuffle'
])
library
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/foundation.dart'
;
import
'package:flutter/material.dart'
;
...
...
@@ -406,9 +413,6 @@ void main() {
testWidgets
(
"WidgetsApp doesn't rebuild routes when MediaQuery updates"
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/37878
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
addTearDown
(
tester
.
view
.
reset
);
int
routeBuildCount
=
0
;
int
dependentBuildCount
=
0
;
...
...
@@ -432,7 +436,8 @@ void main() {
expect
(
dependentBuildCount
,
equals
(
1
));
// didChangeMetrics
tester
.
view
.
physicalSize
=
const
Size
(
42
,
42
);
tester
.
binding
.
window
.
physicalSizeTestValue
=
const
Size
(
42
,
42
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
await
tester
.
pump
();
...
...
@@ -440,7 +445,8 @@ void main() {
expect
(
dependentBuildCount
,
equals
(
2
));
// didChangeTextScaleFactor
tester
.
platformDispatcher
.
textScaleFactorTestValue
=
42
;
tester
.
binding
.
platformDispatcher
.
textScaleFactorTestValue
=
42
;
addTearDown
(
tester
.
binding
.
platformDispatcher
.
clearTextScaleFactorTestValue
);
await
tester
.
pump
();
...
...
@@ -448,7 +454,8 @@ void main() {
expect
(
dependentBuildCount
,
equals
(
3
));
// didChangePlatformBrightness
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
addTearDown
(
tester
.
binding
.
platformDispatcher
.
clearPlatformBrightnessTestValue
);
await
tester
.
pump
();
...
...
@@ -456,7 +463,8 @@ void main() {
expect
(
dependentBuildCount
,
equals
(
4
));
// didChangeAccessibilityFeatures
tester
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
tester
.
binding
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
addTearDown
(
tester
.
binding
.
platformDispatcher
.
clearAccessibilityFeaturesTestValue
);
await
tester
.
pump
();
...
...
@@ -520,10 +528,8 @@ void main() {
});
testWidgets
(
'MaterialApp uses regular theme when themeMode is light'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a light platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
// Mock the Window to explicitly report a light platformBrightness.
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
late
ThemeData
appliedTheme
;
await
tester
.
pumpWidget
(
...
...
@@ -545,8 +551,8 @@ void main() {
);
expect
(
appliedTheme
.
brightness
,
Brightness
.
light
);
// Mock the
test
to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the
Window
to explicitly report a dark platformBrightness.
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
...
...
@@ -568,10 +574,8 @@ void main() {
});
testWidgets
(
'MaterialApp uses darkTheme when themeMode is dark'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a light platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
// Mock the Window to explicitly report a light platformBrightness.
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
late
ThemeData
appliedTheme
;
await
tester
.
pumpWidget
(
...
...
@@ -593,8 +597,8 @@ void main() {
);
expect
(
appliedTheme
.
brightness
,
Brightness
.
dark
);
// Mock the
test
to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the
Window
to explicitly report a dark platformBrightness.
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
...
...
@@ -616,10 +620,9 @@ void main() {
});
testWidgets
(
'MaterialApp uses regular theme when themeMode is system and platformBrightness is light'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a light platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
// Mock the Window to explicitly report a light platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
late
ThemeData
appliedTheme
;
...
...
@@ -644,10 +647,8 @@ void main() {
});
testWidgets
(
'MaterialApp uses darkTheme when themeMode is system and platformBrightness is dark'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the Window to explicitly report a dark platformBrightness.
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
late
ThemeData
appliedTheme
;
await
tester
.
pumpWidget
(
...
...
@@ -670,10 +671,9 @@ void main() {
});
testWidgets
(
'MaterialApp uses light theme when platformBrightness is dark but no dark theme is provided'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the Window to explicitly report a dark platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
late
ThemeData
appliedTheme
;
...
...
@@ -695,10 +695,9 @@ void main() {
});
testWidgets
(
'MaterialApp uses fallback light theme when platformBrightness is dark but no theme is provided at all'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the Window to explicitly report a dark platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
late
ThemeData
appliedTheme
;
...
...
@@ -717,10 +716,9 @@ void main() {
});
testWidgets
(
'MaterialApp uses fallback light theme when platformBrightness is light and a dark theme is provided'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
// Mock the Window to explicitly report a dark platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
late
ThemeData
appliedTheme
;
...
...
@@ -742,10 +740,9 @@ void main() {
});
testWidgets
(
'MaterialApp uses dark theme when platformBrightness is dark'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a dark platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
// Mock the Window to explicitly report a dark platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
late
ThemeData
appliedTheme
;
...
...
@@ -770,10 +767,8 @@ void main() {
});
testWidgets
(
'MaterialApp uses high contrast theme when appropriate'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
tester
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
tester
.
binding
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
late
ThemeData
appliedTheme
;
...
...
@@ -795,13 +790,12 @@ void main() {
);
expect
(
appliedTheme
.
primaryColor
,
Colors
.
blue
);
tester
.
binding
.
platformDispatcher
.
clearAccessibilityFeaturesTestValue
();
});
testWidgets
(
'MaterialApp uses high contrast dark theme when appropriate'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
tester
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
tester
.
binding
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
late
ThemeData
appliedTheme
;
...
...
@@ -829,13 +823,12 @@ void main() {
);
expect
(
appliedTheme
.
primaryColor
,
Colors
.
green
);
tester
.
binding
.
platformDispatcher
.
clearAccessibilityFeaturesTestValue
();
});
testWidgets
(
'MaterialApp uses dark theme when no high contrast dark theme is provided'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
tester
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
tester
.
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
tester
.
binding
.
platformDispatcher
.
accessibilityFeaturesTestValue
=
FakeAccessibilityFeatures
.
allOn
;
late
ThemeData
appliedTheme
;
...
...
@@ -857,6 +850,8 @@ void main() {
);
expect
(
appliedTheme
.
primaryColor
,
Colors
.
lightGreen
);
tester
.
binding
.
platformDispatcher
.
clearAccessibilityFeaturesTestValue
();
tester
.
binding
.
platformDispatcher
.
clearPlatformBrightnessTestValue
();
});
testWidgets
(
'MaterialApp animates theme changes'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -941,11 +936,10 @@ void main() {
expect
(
scaffoldRebuilds
,
2
);
});
testWidgets
(
'MaterialApp switches themes when the platformBrightness changes.'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
platformDispatcher
.
clearAllTestValues
);
// Mock the test to explicitly report a light platformBrightness.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
testWidgets
(
'MaterialApp switches themes when the Window platformBrightness changes.'
,
(
WidgetTester
tester
)
async
{
// Mock the Window to explicitly report a light platformBrightness.
final
TestWidgetsFlutterBinding
binding
=
tester
.
binding
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
light
;
ThemeData
?
themeBeforeBrightnessChange
;
ThemeData
?
themeAfterBrightnessChange
;
...
...
@@ -973,7 +967,7 @@ void main() {
// Switch the platformBrightness from light to dark and pump the widget tree
// to process changes.
tester
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
binding
.
platformDispatcher
.
platformBrightnessTestValue
=
Brightness
.
dark
;
await
tester
.
pumpAndSettle
();
expect
(
themeBeforeBrightnessChange
!.
brightness
,
Brightness
.
light
);
...
...
packages/flutter/test/material/date_picker_test.dart
View file @
46a81067
...
...
@@ -275,7 +275,7 @@ void main() {
// Verify that the time picker is being laid out RTL.
// We expect the left edge of the 'OK' button in the RTL
// layout to match the gap between right edge of the 'OK'
// button and the right edge of the 800 wide
vie
w.
// button and the right edge of the 800 wide
windo
w.
expect
(
tester
.
getBottomLeft
(
find
.
text
(
'OK'
)).
dx
,
800
-
ltrOkRight
);
});
...
...
@@ -440,8 +440,8 @@ void main() {
// Portrait layout.
addTearDown
(
tester
.
view
.
reset
);
tester
.
view
.
physicalSiz
e
=
const
Size
(
900
,
1200
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
900
,
1200
);
await
tester
.
pumpWidget
(
buildFrame
(
TextDirection
.
ltr
));
await
tester
.
tap
(
find
.
text
(
'X'
));
...
...
@@ -1105,10 +1105,10 @@ void main() {
const
Size
kSmallScreenSizeLandscape
=
Size
(
521
,
320
);
Future
<
void
>
showPicker
(
WidgetTester
tester
,
Size
size
,
[
double
textScaleFactor
=
1.0
])
async
{
tester
.
view
.
physicalSiz
e
=
size
;
tester
.
view
.
devicePixelRatio
=
1.0
;
addTearDown
(
tester
.
view
.
reset
)
;
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
size
;
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
)
;
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1.0
;
addTearDown
(
tester
.
binding
.
window
.
clearDevicePixelRatioTestValue
);
await
prepareDatePicker
(
tester
,
(
Future
<
DateTime
?>
date
)
async
{
await
tester
.
tap
(
find
.
text
(
'OK'
));
});
...
...
packages/flutter/test/material/drawer_test.dart
View file @
46a81067
...
...
@@ -424,8 +424,8 @@ void main() {
testWidgets
(
'Disposing drawer does not crash if drawer is open and framework is locked'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/34978
addTearDown
(
tester
.
view
.
reset
);
tester
.
view
.
physicalSiz
e
=
const
Size
(
1800.0
,
2400.0
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
1800.0
,
2400.0
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
@@ -458,15 +458,15 @@ void main() {
// Change the orientation and cause the drawer controller to be disposed
// while the framework is locked.
tester
.
view
.
physicalSiz
e
=
const
Size
(
2400.0
,
1800.0
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
2400.0
,
1800.0
);
await
tester
.
pumpAndSettle
();
expect
(
find
.
byType
(
BackButton
),
findsNothing
);
});
testWidgets
(
'Disposing endDrawer does not crash if endDrawer is open and framework is locked'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/34978
addTearDown
(
tester
.
view
.
reset
);
tester
.
view
.
physicalSiz
e
=
const
Size
(
1800.0
,
2400.0
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
1800.0
,
2400.0
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
@@ -499,7 +499,7 @@ void main() {
// Change the orientation and cause the drawer controller to be disposed
// while the framework is locked.
tester
.
view
.
physicalSiz
e
=
const
Size
(
2400.0
,
1800.0
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
2400.0
,
1800.0
);
await
tester
.
pumpAndSettle
();
expect
(
find
.
byType
(
BackButton
),
findsNothing
);
});
...
...
packages/flutter/test/material/dropdown_test.dart
View file @
46a81067
...
...
@@ -406,7 +406,7 @@ void main() {
return
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
data:
MediaQueryData
.
fromView
(
tester
.
vie
w
),
data:
MediaQueryData
.
fromView
(
tester
.
binding
.
windo
w
),
child:
Navigator
(
initialRoute:
'/'
,
onGenerateRoute:
(
RouteSettings
settings
)
{
...
...
@@ -3167,9 +3167,10 @@ void main() {
// The default item height is 48.0 pixels and needs two items padding since
// the menu requires empty space surrounding the menu. Finally, the constraint height
// is 47.0 pixels for the menu rendering.
tester
.
view
.
physicalSize
=
const
Size
(
800.0
,
48.0
*
3
-
1.0
);
tester
.
view
.
devicePixelRatio
=
1
;
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValue
=
const
Size
(
800.0
,
48.0
*
3
-
1.0
);
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1
;
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
addTearDown
(
tester
.
binding
.
window
.
clearDevicePixelRatioTestValue
);
const
String
value
=
'foo'
;
final
UniqueKey
itemKey
=
UniqueKey
();
...
...
packages/flutter/test/material/navigation_drawer_test.dart
View file @
46a81067
...
...
@@ -11,7 +11,7 @@ void main() {
int
mutatedIndex
=
-
1
;
final
GlobalKey
<
ScaffoldState
>
scaffoldKey
=
GlobalKey
<
ScaffoldState
>();
final
ThemeData
theme
=
ThemeData
.
from
(
colorScheme:
const
ColorScheme
.
light
());
widgetSetup
(
tester
,
3000
,
vie
wHeight:
3000
);
widgetSetup
(
tester
,
3000
,
windo
wHeight:
3000
);
final
Widget
widget
=
_buildWidget
(
scaffoldKey
,
NavigationDrawer
(
...
...
@@ -154,7 +154,7 @@ void main() {
testWidgets
(
'Navigation drawer is scrollable'
,
(
WidgetTester
tester
)
async
{
final
GlobalKey
<
ScaffoldState
>
scaffoldKey
=
GlobalKey
<
ScaffoldState
>();
widgetSetup
(
tester
,
500
,
vie
wHeight:
300
);
widgetSetup
(
tester
,
500
,
windo
wHeight:
300
);
await
tester
.
pumpWidget
(
_buildWidget
(
scaffoldKey
,
...
...
@@ -201,8 +201,8 @@ void main() {
testWidgets
(
'Safe Area test'
,
(
WidgetTester
tester
)
async
{
final
GlobalKey
<
ScaffoldState
>
scaffoldKey
=
GlobalKey
<
ScaffoldState
>();
const
double
vie
wHeight
=
300
;
widgetSetup
(
tester
,
500
,
viewHeight:
vie
wHeight
);
const
double
windo
wHeight
=
300
;
widgetSetup
(
tester
,
500
,
windowHeight:
windo
wHeight
);
await
tester
.
pumpWidget
(
MediaQuery
(
data:
const
MediaQueryData
(
padding:
EdgeInsets
.
all
(
20.0
)),
...
...
@@ -237,7 +237,7 @@ void main() {
);
// No Safe area padding at the bottom.
expect
(
tester
.
getBottomRight
(
find
.
widgetWithText
(
NavigationDrawerDestination
,
'Label4'
)).
dy
,
vie
wHeight
);
expect
(
tester
.
getBottomRight
(
find
.
widgetWithText
(
NavigationDrawerDestination
,
'Label4'
)).
dy
,
windo
wHeight
);
});
testWidgets
(
'Navigation drawer semantics'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -387,8 +387,11 @@ ShapeDecoration? _getIndicatorDecoration(WidgetTester tester) {
.
decoration
as
ShapeDecoration
?;
}
void
widgetSetup
(
WidgetTester
tester
,
double
viewWidth
,
{
double
viewHeight
=
1000
})
{
tester
.
view
.
devicePixelRatio
=
2
;
final
double
dpi
=
tester
.
view
.
devicePixelRatio
;
tester
.
view
.
physicalSize
=
Size
(
viewWidth
*
dpi
,
viewHeight
*
dpi
);
void
widgetSetup
(
WidgetTester
tester
,
double
windowWidth
,
{
double
?
windowHeight
})
{
final
double
height
=
windowHeight
??
1000
;
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
2
;
final
double
dpi
=
tester
.
binding
.
window
.
devicePixelRatio
;
tester
.
binding
.
window
.
physicalSizeTestValue
=
Size
(
windowWidth
*
dpi
,
height
*
dpi
);
}
packages/flutter/test/material/page_test.dart
View file @
46a81067
...
...
@@ -4,6 +4,7 @@
@Tags
(<
String
>[
'reduced-test-set'
])
library
;
import
'dart:ui'
as
ui
;
import
'package:flutter/cupertino.dart'
show
CupertinoPageRoute
;
import
'package:flutter/foundation.dart'
;
...
...
@@ -238,44 +239,52 @@ void main() {
expect
(
find
.
text
(
'Page 2'
),
findsNothing
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
));
testWidgets
(
'test page transition (_ZoomPageTransition) with rasterization re-rasterizes when view insets change'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
view
.
reset
);
tester
.
view
.
physicalSize
=
const
Size
(
1000
,
1000
);
tester
.
view
.
viewInsets
=
FakeViewPadding
.
zero
;
// Intentionally use nested scaffolds to simulate the view insets being
// consumed.
final
Key
key
=
GlobalKey
();
await
tester
.
pumpWidget
(
RepaintBoundary
(
key:
key
,
child:
MaterialApp
(
onGenerateRoute:
(
RouteSettings
settings
)
{
return
MaterialPageRoute
<
void
>(
builder:
(
BuildContext
context
)
{
return
const
Scaffold
(
body:
Scaffold
(
body:
Material
(
child:
SizedBox
.
shrink
())
));
},
);
},
testWidgets
(
'test page transition (_ZoomPageTransition) with rasterization re-rasterizes when window insets'
,
(
WidgetTester
tester
)
async
{
late
Size
oldSize
;
late
ui
.
ViewPadding
oldInsets
;
try
{
oldSize
=
tester
.
binding
.
window
.
physicalSize
;
oldInsets
=
tester
.
binding
.
window
.
viewInsets
;
tester
.
binding
.
window
.
physicalSizeTestValue
=
const
Size
(
1000
,
1000
);
tester
.
binding
.
window
.
viewInsetsTestValue
=
ui
.
ViewPadding
.
zero
;
// Intentionally use nested scaffolds to simulate the view insets being
// consumed.
final
Key
key
=
GlobalKey
();
await
tester
.
pumpWidget
(
RepaintBoundary
(
key:
key
,
child:
MaterialApp
(
onGenerateRoute:
(
RouteSettings
settings
)
{
return
MaterialPageRoute
<
void
>(
builder:
(
BuildContext
context
)
{
return
const
Scaffold
(
body:
Scaffold
(
body:
Material
(
child:
SizedBox
.
shrink
())
));
},
);
},
),
),
),
);
);
tester
.
state
<
NavigatorState
>(
find
.
byType
(
Navigator
)).
pushNamed
(
'/next'
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
tester
.
state
<
NavigatorState
>(
find
.
byType
(
Navigator
)).
pushNamed
(
'/next'
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
await
expectLater
(
find
.
byKey
(
key
),
matchesGoldenFile
(
'zoom_page_transition.small.png'
));
await
expectLater
(
find
.
byKey
(
key
),
matchesGoldenFile
(
'zoom_page_transition.small.png'
));
// Change the view insets.
tester
.
view
.
viewInsets
=
const
FakeViewPadding
(
bottom:
500
);
// Change the view insets.
tester
.
binding
.
window
.
viewInsetsTestValue
=
const
TestViewPadding
(
left:
0
,
top:
0
,
right:
0
,
bottom:
500
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
await
expectLater
(
find
.
byKey
(
key
),
matchesGoldenFile
(
'zoom_page_transition.big.png'
));
await
expectLater
(
find
.
byKey
(
key
),
matchesGoldenFile
(
'zoom_page_transition.big.png'
));
}
finally
{
tester
.
binding
.
window
.
physicalSizeTestValue
=
oldSize
;
tester
.
binding
.
window
.
viewInsetsTestValue
=
oldInsets
;
}
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
android
),
skip:
kIsWeb
);
// [intended] rasterization is not used on the web.
testWidgets
(
...
...
@@ -1324,3 +1333,21 @@ class TestDependencies extends StatelessWidget {
);
}
}
class
TestViewPadding
implements
ui
.
ViewPadding
{
const
TestViewPadding
({
required
this
.
left
,
required
this
.
top
,
required
this
.
right
,
required
this
.
bottom
,
});
@override
final
double
left
;
@override
final
double
top
;
@override
final
double
right
;
@override
final
double
bottom
;
}
packages/flutter/test/material/scrollbar_test.dart
View file @
46a81067
...
...
@@ -5,9 +5,10 @@
// TODO(gspencergoog): Remove this tag once this test's state leaks/test
// dependencies have been fixed.
// https://github.com/flutter/flutter/issues/85160
// Fails with "flutter test --test-randomize-ordering-seed=
20230313
"
// Fails with "flutter test --test-randomize-ordering-seed=
382757700
"
@Tags
(<
String
>[
'no-shuffle'
])
library
;
import
'dart:ui'
as
ui
;
import
'package:flutter/cupertino.dart'
;
...
...
@@ -147,7 +148,7 @@ void main() {
pixels:
0.0
,
viewportDimension:
100.0
,
axisDirection:
AxisDirection
.
down
,
devicePixelRatio:
tester
.
vie
w
.
devicePixelRatio
,
devicePixelRatio:
tester
.
binding
.
windo
w
.
devicePixelRatio
,
);
scrollPainter
!.
update
(
metrics
,
AxisDirection
.
down
);
...
...
packages/flutter/test/material/text_field_test.dart
View file @
46a81067
...
...
@@ -2,14 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// no-shuffle:
// //TODO(gspencergoog): Remove this tag once this test's state leaks/test
// dependencies have been fixed.
// https://github.com/flutter/flutter/issues/85160
// Fails with "flutter test --test-randomize-ordering-seed=456"
// reduced-test-set:
// This file is run as part of a reduced test set in CI on Mac and Windows
// machines.
@Tags
(<
String
>[
'reduced-test-set'
])
@Tags
(<
String
>[
'reduced-test-set'
,
'no-shuffle'
])
library
;
import
'dart:math'
as
math
;
import
'dart:ui'
as
ui
show
BoxHeightStyle
,
BoxWidthStyle
;
import
'dart:ui'
as
ui
show
BoxHeightStyle
,
BoxWidthStyle
,
ViewPadding
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/foundation.dart'
;
...
...
@@ -135,6 +140,26 @@ class TestFormatter extends TextInputFormatter {
}
}
// Used to set window.viewInsets since the real ui.WindowPadding has only a
// private constructor.
class
_TestViewPadding
implements
ui
.
ViewPadding
{
const
_TestViewPadding
({
required
this
.
bottom
,
});
@override
final
double
bottom
;
@override
double
get
top
=>
0.0
;
@override
double
get
left
=>
0.0
;
@override
double
get
right
=>
0.0
;
}
void
main
(
)
{
TestWidgetsFlutterBinding
.
ensureInitialized
();
final
MockClipboard
mockClipboard
=
MockClipboard
();
...
...
@@ -3524,8 +3549,10 @@ void main() {
// Add a viewInset tall enough to push the field to the top, where there
// is no room to display the toolbar above. This is similar to when the
// keyboard is shown.
tester
.
view
.
viewInsets
=
const
FakeViewPadding
(
bottom:
500.0
);
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
viewInsetsTestValue
=
const
_TestViewPadding
(
bottom:
500.0
,
);
addTearDown
(
tester
.
binding
.
window
.
clearViewInsetsTestValue
);
await
tester
.
pumpAndSettle
();
// Verify the selection toolbar position is below the text.
...
...
@@ -3534,7 +3561,7 @@ void main() {
expect
(
toolbarTopLeft
.
dy
,
greaterThan
(
textFieldTopLeft
.
dy
));
// Remove the viewInset, as if the keyboard were hidden.
tester
.
view
.
resetViewInsets
();
tester
.
binding
.
window
.
clearViewInsetsTestValue
();
await
tester
.
pumpAndSettle
();
// Verify the selection toolbar position is below the text.
...
...
@@ -4938,9 +4965,9 @@ void main() {
editable
.
getLocalRectForCaret
(
const
TextPosition
(
offset:
0
)).
topLeft
,
);
// The overlay() function centers its child within a 800x600
vie
w.
// Default cursorWidth is 2.0, test
vie
wWidth is 800
// Centered cursor topLeft.dx: 399 ==
vie
wWidth/2 - cursorWidth/2
// The overlay() function centers its child within a 800x600
windo
w.
// Default cursorWidth is 2.0, test
windo
wWidth is 800
// Centered cursor topLeft.dx: 399 ==
windo
wWidth/2 - cursorWidth/2
expect
(
topLeft
.
dx
,
equals
(
399.0
));
await
tester
.
enterText
(
find
.
byType
(
TextField
),
'abcd'
);
...
...
@@ -4974,9 +5001,9 @@ void main() {
editable
.
getLocalRectForCaret
(
const
TextPosition
(
offset:
0
)).
topLeft
,
);
// The overlay() function centers its child within a 800x600
vie
w.
// Default cursorWidth is 2.0, test
vie
wWidth is 800
// Centered cursor topLeft.dx: 399 ==
vie
wWidth/2 - cursorWidth/2
// The overlay() function centers its child within a 800x600
windo
w.
// Default cursorWidth is 2.0, test
windo
wWidth is 800
// Centered cursor topLeft.dx: 399 ==
windo
wWidth/2 - cursorWidth/2
expect
(
topLeft
.
dx
,
equals
(
399.0
));
await
tester
.
enterText
(
find
.
byType
(
TextField
),
'abcd'
);
...
...
packages/flutter/test/material/text_selection_test.dart
View file @
46a81067
...
...
@@ -158,8 +158,8 @@ void main() {
testWidgets
(
"When menu items don't fit, an overflow menu is used."
,
(
WidgetTester
tester
)
async
{
// Set the screen size to more narrow, so that Select all can't fit.
tester
.
view
.
physicalSiz
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
final
TextEditingController
controller
=
TextEditingController
(
text:
'abc def ghi'
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
@@ -232,8 +232,8 @@ void main() {
testWidgets
(
'A smaller menu bumps more items to the overflow menu.'
,
(
WidgetTester
tester
)
async
{
// Set the screen size so narrow that only Cut and Copy can fit.
tester
.
view
.
physicalSiz
e
=
const
Size
(
800
,
800
);
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
800
,
800
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
final
TextEditingController
controller
=
TextEditingController
(
text:
'abc def ghi'
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
@@ -297,8 +297,8 @@ void main() {
testWidgets
(
'When the menu renders below the text, the overflow menu back button is at the top.'
,
(
WidgetTester
tester
)
async
{
// Set the screen size to more narrow, so that Select all can't fit.
tester
.
view
.
physicalSiz
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
final
TextEditingController
controller
=
TextEditingController
(
text:
'abc def ghi'
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
@@ -371,8 +371,8 @@ void main() {
testWidgets
(
'When the menu items change, the menu is closed and _closedWidth reset.'
,
(
WidgetTester
tester
)
async
{
// Set the screen size to more narrow, so that Select all can't fit.
tester
.
view
.
physicalSiz
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
1000
,
800
);
addTearDown
(
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
);
final
TextEditingController
controller
=
TextEditingController
(
text:
'abc def ghi'
);
await
tester
.
pumpWidget
(
MaterialApp
(
...
...
packages/flutter/test/material/time_picker_test.dart
View file @
46a81067
...
...
@@ -361,11 +361,9 @@ void main() {
}
testWidgets
(
'when change orientation, should reflect in render objects'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
view
.
reset
);
// portrait
tester
.
view
.
physicalSiz
e
=
const
Size
(
800
,
800.5
);
tester
.
view
.
devicePixelRatio
=
1
;
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
800
,
800.5
);
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1
;
await
mediaQueryBoilerplate
(
tester
,
materialType:
materialType
);
RenderObject
render
=
tester
.
renderObject
(
...
...
@@ -374,28 +372,32 @@ void main() {
expect
((
render
as
dynamic
).
orientation
,
Orientation
.
portrait
);
// ignore: avoid_dynamic_calls
// landscape
tester
.
view
.
physicalSiz
e
=
const
Size
(
800.5
,
800
);
tester
.
view
.
devicePixelRatio
=
1
;
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
800.5
,
800
);
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1
;
await
mediaQueryBoilerplate
(
tester
,
tapButton:
false
,
materialType:
materialType
);
render
=
tester
.
renderObject
(
find
.
byWidgetPredicate
((
Widget
w
)
=>
'
${w.runtimeType}
'
==
'_DayPeriodInputPadding'
),
);
expect
((
render
as
dynamic
).
orientation
,
Orientation
.
landscape
);
// ignore: avoid_dynamic_calls
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
();
tester
.
binding
.
window
.
clearDevicePixelRatioTestValue
();
});
testWidgets
(
'setting orientation should override MediaQuery orientation'
,
(
WidgetTester
tester
)
async
{
addTearDown
(
tester
.
view
.
reset
);
// portrait media query
tester
.
view
.
physicalSiz
e
=
const
Size
(
800
,
800.5
);
tester
.
view
.
devicePixelRatio
=
1
;
tester
.
binding
.
window
.
physicalSizeTestValu
e
=
const
Size
(
800
,
800.5
);
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1
;
await
mediaQueryBoilerplate
(
tester
,
orientation:
Orientation
.
landscape
,
materialType:
materialType
);
final
RenderObject
render
=
tester
.
renderObject
(
find
.
byWidgetPredicate
((
Widget
w
)
=>
'
${w.runtimeType}
'
==
'_DayPeriodInputPadding'
),
);
expect
((
render
as
dynamic
).
orientation
,
Orientation
.
landscape
);
// ignore: avoid_dynamic_calls
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
();
tester
.
binding
.
window
.
clearDevicePixelRatioTestValue
();
});
testWidgets
(
'builder parameter'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -442,7 +444,7 @@ void main() {
// Verify that the time picker is being laid out RTL.
// We expect the left edge of the 'OK' button in the RTL
// layout to match the gap between right edge of the 'OK'
// button and the right edge of the 800 wide
vie
w.
// button and the right edge of the 800 wide
windo
w.
expect
(
tester
.
getBottomLeft
(
find
.
text
(
okString
)).
dx
,
800
-
ltrOkRight
);
});
...
...
@@ -781,21 +783,19 @@ void main() {
group
(
'Works for various view sizes'
,
()
{
for
(
final
Size
size
in
const
<
Size
>[
Size
(
100
,
100
),
Size
(
300
,
300
),
Size
(
800
,
600
)])
{
testWidgets
(
'Draws dial without overflows at
$size
'
,
(
WidgetTester
tester
)
async
{
tester
.
view
.
physicalSize
=
size
;
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValue
=
size
;
await
mediaQueryBoilerplate
(
tester
,
entryMode:
TimePickerEntryMode
.
input
,
materialType:
materialType
);
await
tester
.
pumpAndSettle
();
expect
(
tester
.
takeException
(),
isNot
(
throwsAssertionError
));
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
();
});
testWidgets
(
'Draws input without overflows at
$size
'
,
(
WidgetTester
tester
)
async
{
tester
.
view
.
physicalSize
=
size
;
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValue
=
size
;
await
mediaQueryBoilerplate
(
tester
,
materialType:
materialType
);
await
tester
.
pumpAndSettle
();
expect
(
tester
.
takeException
(),
isNot
(
throwsAssertionError
));
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
();
});
}
});
...
...
@@ -1035,10 +1035,8 @@ void main() {
testWidgets
(
'header touch regions are large enough'
,
(
WidgetTester
tester
)
async
{
// Ensure picker is displayed in portrait mode.
tester
.
view
.
physicalSize
=
const
Size
(
400
,
800
);
tester
.
view
.
devicePixelRatio
=
1
;
addTearDown
(
tester
.
view
.
reset
);
tester
.
binding
.
window
.
physicalSizeTestValue
=
const
Size
(
400
,
800
);
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
1
;
await
mediaQueryBoilerplate
(
tester
,
materialType:
materialType
);
final
Size
dayPeriodControlSize
=
tester
.
getSize
(
...
...
@@ -1060,6 +1058,9 @@ void main() {
));
expect
(
minuteSize
.
width
,
greaterThanOrEqualTo
(
48
));
expect
(
minuteSize
.
height
,
greaterThanOrEqualTo
(
48
));
tester
.
binding
.
window
.
clearPhysicalSizeTestValue
();
tester
.
binding
.
window
.
clearDevicePixelRatioTestValue
();
});
});
...
...
@@ -1550,7 +1551,7 @@ Future<void> mediaQueryBoilerplate(
alwaysUse24HourFormat:
alwaysUse24HourFormat
,
textScaleFactor:
textScaleFactor
,
accessibleNavigation:
accessibleNavigation
,
size:
tester
.
view
.
physicalSize
/
tester
.
vie
w
.
devicePixelRatio
,
size:
tester
.
binding
.
window
.
physicalSize
/
tester
.
binding
.
windo
w
.
devicePixelRatio
,
),
child:
Material
(
child:
Center
(
...
...
packages/flutter_test/lib/src/window.dart
View file @
46a81067
...
...
@@ -124,9 +124,6 @@ class FakeViewPadding implements ViewPadding {
right
=
base
.
right
,
bottom
=
base
.
bottom
;
/// A view padding that has zeros for each edge.
static
const
FakeViewPadding
zero
=
FakeViewPadding
();
@override
final
double
left
;
...
...
packages/flutter_test/test/view_test.dart
View file @
46a81067
...
...
@@ -82,7 +82,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
trueImplicitView
().
padding
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
padding
,
propertyFaker:
(
_
,
ViewPadding
fakeValue
)
{
tester
.
view
.
padding
=
fakeValue
as
FakeViewPadding
;
...
...
@@ -94,7 +94,7 @@ void main() {
testWidgets
(
'can reset padding'
,
(
WidgetTester
tester
)
async
{
verifyPropertyReset
<
ViewPadding
>(
tester:
tester
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
padding
,
propertyResetter:
()
{
tester
.
view
.
resetPadding
();
...
...
@@ -180,7 +180,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
trueImplicitView
().
systemGestureInsets
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
systemGestureInsets
,
propertyFaker:
(
_
,
ViewPadding
fakeValue
)
{
tester
.
view
.
systemGestureInsets
=
fakeValue
as
FakeViewPadding
;
...
...
@@ -192,7 +192,7 @@ void main() {
testWidgets
(
'can reset systemGestureInsets'
,
(
WidgetTester
tester
)
async
{
verifyPropertyReset
<
ViewPadding
>(
tester:
tester
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
systemGestureInsets
,
propertyResetter:
()
{
tester
.
view
.
resetSystemGestureInsets
();
...
...
@@ -208,7 +208,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
trueImplicitView
().
viewInsets
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
viewInsets
,
propertyFaker:
(
_
,
ViewPadding
fakeValue
)
{
tester
.
view
.
viewInsets
=
fakeValue
as
FakeViewPadding
;
...
...
@@ -220,7 +220,7 @@ void main() {
testWidgets
(
'can reset viewInsets'
,
(
WidgetTester
tester
)
async
{
verifyPropertyReset
<
ViewPadding
>(
tester:
tester
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
viewInsets
,
propertyResetter:
()
{
tester
.
view
.
resetViewInsets
();
...
...
@@ -236,7 +236,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
trueImplicitView
().
viewPadding
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
viewPadding
,
propertyFaker:
(
_
,
ViewPadding
fakeValue
)
{
tester
.
view
.
viewPadding
=
fakeValue
as
FakeViewPadding
;
...
...
@@ -248,7 +248,7 @@ void main() {
testWidgets
(
'can reset viewPadding'
,
(
WidgetTester
tester
)
async
{
verifyPropertyReset
<
ViewPadding
>(
tester:
tester
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
=>
boundImplicitView
().
viewPadding
,
propertyResetter:
()
{
tester
.
view
.
resetViewPadding
();
...
...
@@ -265,11 +265,11 @@ void main() {
tester
.
view
.
devicePixelRatio
=
7
;
tester
.
view
.
displayFeatures
=
<
DisplayFeature
>[
const
DisplayFeature
(
bounds:
Rect
.
fromLTWH
(
0
,
0
,
20
,
300
),
type:
DisplayFeatureType
.
unknown
,
state:
DisplayFeatureState
.
unknown
)];
tester
.
view
.
padding
=
FakeViewPadding
.
zero
;
tester
.
view
.
padding
=
const
FakeViewPadding
()
;
tester
.
view
.
physicalGeometry
=
const
Rect
.
fromLTWH
(
0
,
0
,
505
,
805
);
tester
.
view
.
systemGestureInsets
=
FakeViewPadding
.
zero
;
tester
.
view
.
viewInsets
=
FakeViewPadding
.
zero
;
tester
.
view
.
viewPadding
=
FakeViewPadding
.
zero
;
tester
.
view
.
systemGestureInsets
=
const
FakeViewPadding
()
;
tester
.
view
.
viewInsets
=
const
FakeViewPadding
()
;
tester
.
view
.
viewPadding
=
const
FakeViewPadding
()
;
tester
.
view
.
gestureSettings
=
const
GestureSettings
(
physicalTouchSlop:
4
,
physicalDoubleTapSlop:
5
);
final
FlutterViewSnapshot
faked
=
FlutterViewSnapshot
(
tester
.
view
);
...
...
packages/flutter_test/test/window_test.dart
View file @
46a81067
...
...
@@ -54,7 +54,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
ui
.
window
.
viewInsets
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
{
return
WidgetsBinding
.
instance
.
window
.
viewInsets
;
},
...
...
@@ -69,7 +69,7 @@ void main() {
verifyPropertyFaked
<
ViewPadding
>(
tester:
tester
,
realValue:
ui
.
window
.
padding
,
fakeValue:
FakeViewPadding
.
zero
,
fakeValue:
const
FakeViewPadding
()
,
propertyRetriever:
()
{
return
WidgetsBinding
.
instance
.
window
.
padding
;
},
...
...
@@ -220,11 +220,11 @@ void main() {
testWidgets
(
'Updates to window also update tester.view'
,
(
WidgetTester
tester
)
async
{
tester
.
binding
.
window
.
devicePixelRatioTestValue
=
7
;
tester
.
binding
.
window
.
displayFeaturesTestValue
=
<
DisplayFeature
>[
const
DisplayFeature
(
bounds:
Rect
.
fromLTWH
(
0
,
0
,
20
,
300
),
type:
DisplayFeatureType
.
unknown
,
state:
DisplayFeatureState
.
unknown
)];
tester
.
binding
.
window
.
paddingTestValue
=
FakeViewPadding
.
zero
;
tester
.
binding
.
window
.
paddingTestValue
=
const
FakeViewPadding
()
;
tester
.
binding
.
window
.
physicalSizeTestValue
=
const
Size
(
505
,
805
);
tester
.
binding
.
window
.
systemGestureInsetsTestValue
=
FakeViewPadding
.
zero
;
tester
.
binding
.
window
.
viewInsetsTestValue
=
FakeViewPadding
.
zero
;
tester
.
binding
.
window
.
viewPaddingTestValue
=
FakeViewPadding
.
zero
;
tester
.
binding
.
window
.
systemGestureInsetsTestValue
=
const
FakeViewPadding
()
;
tester
.
binding
.
window
.
viewInsetsTestValue
=
const
FakeViewPadding
()
;
tester
.
binding
.
window
.
viewPaddingTestValue
=
const
FakeViewPadding
()
;
tester
.
binding
.
window
.
gestureSettingsTestValue
=
const
GestureSettings
(
physicalTouchSlop:
4
,
physicalDoubleTapSlop:
5
);
expect
(
tester
.
binding
.
window
.
devicePixelRatio
,
tester
.
view
.
devicePixelRatio
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment