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
80dd6a40
Unverified
Commit
80dd6a40
authored
Apr 27, 2021
by
Alexandre Ardhuin
Committed by
GitHub
Apr 27, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add missing trailing commas (#81080)
parent
3df0f931
Changes
28
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
862 additions
and
858 deletions
+862
-858
action_sheet_test.dart
packages/flutter/test/cupertino/action_sheet_test.dart
+32
-31
activity_indicator_test.dart
packages/flutter/test/cupertino/activity_indicator_test.dart
+3
-6
app_test.dart
packages/flutter/test/cupertino/app_test.dart
+24
-27
bottom_tab_bar_test.dart
packages/flutter/test/cupertino/bottom_tab_bar_test.dart
+61
-57
button_test.dart
packages/flutter/test/cupertino/button_test.dart
+6
-6
colors_test.dart
packages/flutter/test/cupertino/colors_test.dart
+17
-12
date_picker_test.dart
packages/flutter/test/cupertino/date_picker_test.dart
+9
-7
dialog_test.dart
packages/flutter/test/cupertino/dialog_test.dart
+20
-22
form_row_test.dart
packages/flutter/test/cupertino/form_row_test.dart
+7
-15
form_section_test.dart
packages/flutter/test/cupertino/form_section_test.dart
+8
-14
icon_theme_data_test.dart
packages/flutter/test/cupertino/icon_theme_data_test.dart
+2
-2
tab_scaffold_test.dart
...es/flutter/test/cupertino/material/tab_scaffold_test.dart
+2
-2
nav_bar_test.dart
packages/flutter/test/cupertino/nav_bar_test.dart
+92
-94
nav_bar_transition_test.dart
packages/flutter/test/cupertino/nav_bar_transition_test.dart
+9
-18
picker_test.dart
packages/flutter/test/cupertino/picker_test.dart
+7
-4
refresh_test.dart
packages/flutter/test/cupertino/refresh_test.dart
+81
-54
route_test.dart
packages/flutter/test/cupertino/route_test.dart
+36
-34
scrollbar_paint_test.dart
packages/flutter/test/cupertino/scrollbar_paint_test.dart
+1
-1
scrollbar_test.dart
packages/flutter/test/cupertino/scrollbar_test.dart
+282
-270
search_field_test.dart
packages/flutter/test/cupertino/search_field_test.dart
+8
-18
segmented_control_test.dart
packages/flutter/test/cupertino/segmented_control_test.dart
+45
-48
slider_test.dart
packages/flutter/test/cupertino/slider_test.dart
+3
-3
sliding_segmented_control_test.dart
...lutter/test/cupertino/sliding_segmented_control_test.dart
+5
-4
tab_scaffold_test.dart
packages/flutter/test/cupertino/tab_scaffold_test.dart
+29
-23
tab_test.dart
packages/flutter/test/cupertino/tab_test.dart
+31
-27
text_field_test.dart
packages/flutter/test/cupertino/text_field_test.dart
+20
-19
text_form_field_row_test.dart
...ages/flutter/test/cupertino/text_form_field_row_test.dart
+19
-38
theme_test.dart
packages/flutter/test/cupertino/theme_test.dart
+3
-2
No files found.
packages/flutter/test/cupertino/action_sheet_test.dart
View file @
80dd6a40
...
...
@@ -155,10 +155,8 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
final
DefaultTextStyle
titleStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'Action Sheet'
));
final
DefaultTextStyle
messageStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'An action sheet'
));
final
DefaultTextStyle
titleStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'Action Sheet'
));
final
DefaultTextStyle
messageStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'An action sheet'
));
expect
(
titleStyle
.
style
.
fontWeight
,
FontWeight
.
w600
);
expect
(
messageStyle
.
style
.
fontWeight
,
FontWeight
.
w400
);
...
...
@@ -176,8 +174,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
final
DefaultTextStyle
titleStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'Action Sheet'
));
final
DefaultTextStyle
titleStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'Action Sheet'
));
expect
(
titleStyle
.
style
.
fontWeight
,
FontWeight
.
w400
);
});
...
...
@@ -194,8 +191,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
final
DefaultTextStyle
messageStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'An action sheet'
));
final
DefaultTextStyle
messageStyle
=
tester
.
firstWidget
(
find
.
widgetWithText
(
DefaultTextStyle
,
'An action sheet'
));
expect
(
messageStyle
.
style
.
fontWeight
,
FontWeight
.
w600
);
});
...
...
@@ -219,8 +215,10 @@ void main() {
// Content section should be at the bottom left of action sheet
// (minus padding).
expect
(
tester
.
getBottomLeft
(
find
.
byType
(
ClipRRect
)),
tester
.
getBottomLeft
(
find
.
byType
(
CupertinoActionSheet
))
-
const
Offset
(-
8.0
,
10.0
));
expect
(
tester
.
getBottomLeft
(
find
.
byType
(
ClipRRect
)),
tester
.
getBottomLeft
(
find
.
byType
(
CupertinoActionSheet
))
-
const
Offset
(-
8.0
,
10.0
),
);
// Check that the dialog size is the same as the content section size
// (minus padding).
...
...
@@ -268,13 +266,19 @@ void main() {
// Check that the title/message section is not displayed (action section is
// at the top of the action sheet + padding).
expect
(
tester
.
getTopLeft
(
finder
),
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
10.0
));
expect
(
tester
.
getTopLeft
(
finder
),
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
10.0
),
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
10.0
),
tester
.
getTopLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'One'
)));
expect
(
tester
.
getBottomLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
-
10.0
),
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'Two'
)));
expect
(
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
10.0
),
tester
.
getTopLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'One'
)),
);
expect
(
tester
.
getBottomLeft
(
find
.
byType
(
CupertinoActionSheet
))
+
const
Offset
(
8.0
,
-
10.0
),
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'Two'
)),
);
});
testWidgets
(
'Action section is scrollable'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -474,8 +478,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
expect
(
tester
.
getSize
(
find
.
byType
(
CupertinoActionSheet
)).
height
,
moreOrLessEquals
(
132.33333333333334
));
expect
(
tester
.
getSize
(
find
.
byType
(
CupertinoActionSheet
)).
height
,
moreOrLessEquals
(
132.33333333333334
));
});
testWidgets
(
'1 action button with cancel button'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -532,8 +535,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
112.33333333333331
));
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
112.33333333333331
));
});
testWidgets
(
'3 action buttons with cancel button'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -567,8 +569,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
168.66666666666669
));
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
168.66666666666669
));
});
testWidgets
(
'4+ action buttons with cancel button'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -606,8 +607,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
84.33333333333337
));
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
84.33333333333337
));
});
testWidgets
(
'1 action button without cancel button'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -655,8 +655,7 @@ void main() {
await
tester
.
tap
(
find
.
text
(
'Go'
));
await
tester
.
pump
();
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
84.33333333333337
));
expect
(
findScrollableActionsSectionRenderBox
(
tester
).
size
.
height
,
moreOrLessEquals
(
84.33333333333337
));
});
testWidgets
(
'Action sheet with just cancel button is correct'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -744,8 +743,10 @@ void main() {
await
tester
.
pump
(
const
Duration
(
seconds:
1
));
expect
(
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'Cancel'
)).
dy
,
590.0
);
expect
(
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'One'
)).
dy
,
moreOrLessEquals
(
469.66666666666663
));
expect
(
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'One'
)).
dy
,
moreOrLessEquals
(
469.66666666666663
),
);
expect
(
tester
.
getBottomLeft
(
find
.
widgetWithText
(
CupertinoActionSheetAction
,
'Two'
)).
dy
,
526.0
);
});
...
...
@@ -978,7 +979,7 @@ void main() {
),
],
),
]
]
,
),
],
),
...
...
@@ -995,8 +996,8 @@ void main() {
}
RenderBox
findScrollableActionsSectionRenderBox
(
WidgetTester
tester
)
{
final
RenderObject
actionsSection
=
tester
.
renderObject
(
find
.
byElementPredicate
(
(
Element
element
)
{
final
RenderObject
actionsSection
=
tester
.
renderObject
(
find
.
byElementPredicate
(
(
Element
element
)
{
return
element
.
widget
.
runtimeType
.
toString
()
==
'_CupertinoAlertActionSection'
;
}),
);
...
...
packages/flutter/test/cupertino/activity_indicator_test.dart
View file @
80dd6a40
...
...
@@ -9,8 +9,7 @@ import 'package:flutter_test/flutter_test.dart';
import
'../rendering/mock_canvas.dart'
;
void
main
(
)
{
testWidgets
(
'Activity indicator animate property works'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Activity indicator animate property works'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
buildCupertinoActivityIndicator
());
expect
(
SchedulerBinding
.
instance
!.
transientCallbackCount
,
equals
(
1
));
...
...
@@ -96,8 +95,7 @@ void main() {
);
});
testWidgets
(
'Activity indicator 30% in progress'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Activity indicator 30% in progress'
,
(
WidgetTester
tester
)
async
{
final
Key
key
=
UniqueKey
();
await
tester
.
pumpWidget
(
Center
(
...
...
@@ -119,8 +117,7 @@ void main() {
);
});
testWidgets
(
'Activity indicator 100% in progress'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Activity indicator 100% in progress'
,
(
WidgetTester
tester
)
async
{
final
Key
key
=
UniqueKey
();
await
tester
.
pumpWidget
(
Center
(
...
...
packages/flutter/test/cupertino/app_test.dart
View file @
80dd6a40
...
...
@@ -10,27 +10,22 @@ import 'package:flutter_test/flutter_test.dart';
void
main
(
)
{
testWidgets
(
'Heroes work'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
ListView
(
children:
<
Widget
>[
const
Hero
(
tag:
'a'
,
child:
Text
(
'foo'
)),
Builder
(
builder:
(
BuildContext
context
)
{
return
CupertinoButton
(
child:
const
Text
(
'next'
),
onPressed:
()
{
Navigator
.
push
(
context
,
CupertinoPageRoute
<
void
>(
builder:
(
BuildContext
context
)
{
return
const
Hero
(
tag:
'a'
,
child:
Text
(
'foo'
));
}
),
);
},
home:
ListView
(
children:
<
Widget
>[
const
Hero
(
tag:
'a'
,
child:
Text
(
'foo'
)),
Builder
(
builder:
(
BuildContext
context
)
{
return
CupertinoButton
(
child:
const
Text
(
'next'
),
onPressed:
()
{
Navigator
.
push
(
context
,
CupertinoPageRoute
<
void
>(
builder:
(
BuildContext
context
)
{
return
const
Hero
(
tag:
'a'
,
child:
Text
(
'foo'
));
}),
);
}),
],
),
},
);
}),
]),
));
await
tester
.
tap
(
find
.
text
(
'next'
));
...
...
@@ -99,17 +94,19 @@ void main() {
pageBuilder:
(
BuildContext
context
,
Animation
<
double
>
animation
,
Animation
<
double
>
secondaryAnimation
)
{
Animation
<
double
>
secondaryAnimation
,
)
{
return
const
Text
(
'non-regular page one'
);
}
}
,
),
PageRouteBuilder
<
void
>(
pageBuilder:
(
BuildContext
context
,
Animation
<
double
>
animation
,
Animation
<
double
>
secondaryAnimation
)
{
Animation
<
double
>
secondaryAnimation
,
)
{
return
const
Text
(
'non-regular page two'
);
}
}
,
),
];
},
...
...
@@ -118,7 +115,7 @@ void main() {
'/'
:
(
BuildContext
context
)
=>
const
Text
(
'regular page one'
),
'/abc'
:
(
BuildContext
context
)
=>
const
Text
(
'regular page two'
),
},
)
)
,
);
expect
(
find
.
text
(
'non-regular page two'
),
findsOneWidget
);
expect
(
find
.
text
(
'non-regular page one'
),
findsNothing
);
...
...
@@ -163,7 +160,7 @@ void main() {
location:
'popped'
,
);
return
route
.
didPop
(
result
);
}
}
,
);
await
tester
.
pumpWidget
(
CupertinoApp
.
router
(
routeInformationProvider:
provider
,
...
...
@@ -280,7 +277,7 @@ class SimpleNavigatorRouterDelegate extends RouterDelegate<RouteInformation> wit
CupertinoPage
<
void
>(
key:
ValueKey
<
String
?>(
routeInformation
.
location
),
child:
builder
(
context
,
routeInformation
),
)
)
,
],
);
}
...
...
packages/flutter/test/cupertino/bottom_tab_bar_test.dart
View file @
80dd6a40
...
...
@@ -433,31 +433,33 @@ Future<void> main() async {
final
List
<
int
>
itemsTapped
=
<
int
>[];
await
pumpWidgetWithBoilerplate
(
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
label:
'Tab 1'
,
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
iconProvider
,
),
label:
'Tab 1'
,
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
iconProvider
,
),
],
onTap:
(
int
index
)
=>
itemsTapped
.
add
(
index
),
),
));
),
],
onTap:
(
int
index
)
=>
itemsTapped
.
add
(
index
),
),
),
);
expect
(
find
.
text
(
'Tab 1'
),
findsOneWidget
);
final
Finder
finder
=
find
.
byWidgetPredicate
(
(
Widget
widget
)
=>
widget
is
Image
&&
widget
.
image
==
iconProvider
);
(
Widget
widget
)
=>
widget
is
Image
&&
widget
.
image
==
iconProvider
,
);
await
tester
.
tap
(
finder
);
expect
(
itemsTapped
,
<
int
>[
1
]);
...
...
@@ -465,54 +467,56 @@ Future<void> main() async {
testWidgets
(
'Hide border hides the top border of the tabBar'
,
(
WidgetTester
tester
)
async
{
await
pumpWidgetWithBoilerplate
(
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
label:
'Tab 1'
,
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
label:
'Tab 2'
,
label:
'Tab 1'
,
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
))
,
),
],
),
));
label:
'Tab 2'
,
),
],
),
),
);
final
DecoratedBox
decoratedBox
=
tester
.
widget
(
find
.
byType
(
DecoratedBox
));
final
BoxDecoration
boxDecoration
=
decoratedBox
.
decoration
as
BoxDecoration
;
expect
(
boxDecoration
.
border
,
isNotNull
);
await
pumpWidgetWithBoilerplate
(
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
label:
'Tab 1'
,
tester
,
MediaQuery
(
data:
const
MediaQueryData
(),
child:
CupertinoTabBar
(
items:
<
BottomNavigationBarItem
>[
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
)),
),
label:
'Tab 2'
,
label:
'Tab 1'
,
),
BottomNavigationBarItem
(
icon:
ImageIcon
(
MemoryImage
(
Uint8List
.
fromList
(
kTransparentImage
))
,
),
],
backgroundColor:
const
Color
(
0xFFFFFFFF
),
// Opaque white.
border:
null
,
),
));
label:
'Tab 2'
,
),
],
backgroundColor:
const
Color
(
0xFFFFFFFF
),
// Opaque white.
border:
null
,
),
),
);
final
DecoratedBox
decoratedBoxHiddenBorder
=
tester
.
widget
(
find
.
byType
(
DecoratedBox
));
...
...
packages/flutter/test/cupertino/button_test.dart
View file @
80dd6a40
...
...
@@ -274,8 +274,8 @@ void main() {
)));
BoxDecoration
boxDecoration
=
tester
.
widget
<
DecoratedBox
>(
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
).
decoration
as
BoxDecoration
;
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
),
).
decoration
as
BoxDecoration
;
expect
(
boxDecoration
.
color
,
const
Color
(
0x000000FF
));
...
...
@@ -287,8 +287,8 @@ void main() {
)));
boxDecoration
=
tester
.
widget
<
DecoratedBox
>(
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
).
decoration
as
BoxDecoration
;
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
),
).
decoration
as
BoxDecoration
;
expect
(
boxDecoration
.
color
,
const
Color
(
0x0000FF00
));
});
...
...
@@ -317,7 +317,7 @@ void main() {
);
BoxDecoration
boxDecoration
=
tester
.
widget
<
DecoratedBox
>(
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
,
).
decoration
as
BoxDecoration
;
expect
(
boxDecoration
.
color
!.
value
,
0xFF654321
);
...
...
@@ -335,7 +335,7 @@ void main() {
);
boxDecoration
=
tester
.
widget
<
DecoratedBox
>(
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
find
.
widgetWithText
(
DecoratedBox
,
'Skeuomorph me'
)
,
).
decoration
as
BoxDecoration
;
// Disabled color.
...
...
packages/flutter/test/cupertino/colors_test.dart
View file @
80dd6a40
...
...
@@ -202,13 +202,15 @@ void main() {
);
});
testWidgets
(
'Dynamic colors that are not actually dynamic should not claim dependencies'
,
testWidgets
(
'Dynamic colors that are not actually dynamic should not claim dependencies'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
DependentWidget
(
color:
notSoDynamicColor1
));
expect
(
tester
.
takeException
(),
null
);
expect
(
find
.
byType
(
DependentWidget
),
paints
..
rect
(
color:
color0
));
});
},
);
testWidgets
(
'Dynamic colors that are only dependent on vibrancy should not claim unnecessary dependencies, '
...
...
@@ -251,7 +253,8 @@ void main() {
expect
(
tester
.
takeException
(),
null
);
expect
(
find
.
byType
(
DependentWidget
),
paints
..
rect
(
color:
color1
));
expect
(
find
.
byType
(
DependentWidget
),
isNot
(
paints
..
rect
(
color:
color0
)));
});
},
);
testWidgets
(
'Dynamic colors that are only dependent on accessibility contrast should not claim unnecessary dependencies, '
...
...
@@ -279,7 +282,8 @@ void main() {
expect
(
tester
.
takeException
(),
null
);
expect
(
find
.
byType
(
DependentWidget
),
paints
..
rect
(
color:
color0
));
expect
(
find
.
byType
(
DependentWidget
),
isNot
(
paints
..
rect
(
color:
color1
)));
});
},
);
testWidgets
(
'Dynamic colors that are only dependent on elevation level should not claim unnecessary dependencies, '
...
...
@@ -307,7 +311,8 @@ void main() {
expect
(
tester
.
takeException
(),
null
);
expect
(
find
.
byType
(
DependentWidget
),
paints
..
rect
(
color:
color0
));
expect
(
find
.
byType
(
DependentWidget
),
isNot
(
paints
..
rect
(
color:
color1
)));
});
},
);
testWidgets
(
'Dynamic color with all 3 dependencies works'
,
(
WidgetTester
tester
)
async
{
const
Color
dynamicRainbowColor1
=
CupertinoDynamicColor
(
...
...
@@ -422,7 +427,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
as
CupertinoDynamicColor
;
return
const
Placeholder
();
}
}
,
),
),
);
...
...
@@ -440,7 +445,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
as
CupertinoDynamicColor
;
return
const
Placeholder
();
}
}
,
),
),
);
...
...
@@ -459,7 +464,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
as
CupertinoDynamicColor
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
@@ -481,7 +486,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
as
CupertinoDynamicColor
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
@@ -514,7 +519,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
@@ -542,7 +547,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
@@ -565,7 +570,7 @@ void main() {
builder:
(
BuildContext
context
)
{
color
=
CupertinoTheme
.
of
(
context
).
primaryColor
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
packages/flutter/test/cupertino/date_picker_test.dart
View file @
80dd6a40
...
...
@@ -211,9 +211,7 @@ void main() {
);
// Distance between the first column and the last column.
final
double
distance
=
tester
.
getCenter
(
find
.
text
(
'sec.'
)).
dx
-
tester
.
getCenter
(
find
.
text
(
'12'
),
).
dx
;
final
double
distance
=
tester
.
getCenter
(
find
.
text
(
'sec.'
)).
dx
-
tester
.
getCenter
(
find
.
text
(
'12'
)).
dx
;
await
tester
.
pumpWidget
(
CupertinoApp
(
...
...
@@ -693,7 +691,8 @@ void main() {
tester
.
widget
<
Text
>(
find
.
text
(
'29'
)).
style
!.
color
,
isSameColorAs
(
CupertinoColors
.
inactiveGray
.
color
),
);
});
},
);
testWidgets
(
'dateTime picker automatically scrolls away from invalid date, '
...
...
@@ -770,7 +769,8 @@ void main() {
date
,
DateTime
(
2019
,
11
,
11
,
3
,
30
),
);
});
},
);
testWidgets
(
'time picker automatically scrolls away from invalid date, '
...
...
@@ -847,7 +847,8 @@ void main() {
date
,
DateTime
(
2019
,
11
,
11
,
3
,
30
),
);
});
},
);
testWidgets
(
'picker automatically scrolls away from invalid date on day change'
,
(
WidgetTester
tester
)
async
{
late
DateTime
date
;
...
...
@@ -933,7 +934,8 @@ void main() {
expect
(
date
.
year
,
minDate
.
year
);
expect
(
date
.
month
,
minDate
.
month
);
expect
(
date
.
day
,
minDate
.
day
);
});
},
);
testWidgets
(
'date picker does not display previous day of minimumDate if it is set at midnight'
,
(
WidgetTester
tester
)
async
{
// Regression test for https://github.com/flutter/flutter/issues/72932
...
...
packages/flutter/test/cupertino/dialog_test.dart
View file @
80dd6a40
...
...
@@ -207,8 +207,8 @@ void main() {
),
],
),
]
)
]
,
)
,
],
),
],
...
...
@@ -290,8 +290,8 @@ void main() {
scrollController:
scrollController
,
),
);
}
)
}
,
)
,
);
await
tester
.
tap
(
find
.
text
(
'Go'
));
...
...
@@ -307,9 +307,7 @@ void main() {
// Expect the modal dialog box to take all available height.
expect
(
tester
.
getSize
(
find
.
byType
(
ClipRRect
)
),
tester
.
getSize
(
find
.
byType
(
ClipRRect
)),
equals
(
const
Size
(
310.0
,
560.0
-
24.0
*
2
)),
);
...
...
@@ -399,8 +397,8 @@ void main() {
actionScrollController:
actionScrollController
,
),
);
}
)
}
,
)
,
);
await
tester
.
tap
(
find
.
text
(
'Go'
));
...
...
@@ -448,7 +446,7 @@ void main() {
actionScrollController:
actionScrollController
,
),
);
}
}
,
),
);
...
...
@@ -475,8 +473,10 @@ void main() {
expect
(
tester
.
getTopLeft
(
find
.
widgetWithText
(
CupertinoDialogAction
,
'One'
)).
dy
,
equals
(
277.5
));
// Check that the button's vertical size is the same.
expect
(
tester
.
getSize
(
find
.
widgetWithText
(
CupertinoDialogAction
,
'One'
)).
height
,
equals
(
tester
.
getSize
(
find
.
widgetWithText
(
CupertinoDialogAction
,
'Two'
)).
height
));
expect
(
tester
.
getSize
(
find
.
widgetWithText
(
CupertinoDialogAction
,
'One'
)).
height
,
equals
(
tester
.
getSize
(
find
.
widgetWithText
(
CupertinoDialogAction
,
'Two'
)).
height
),
);
});
testWidgets
(
'Button section is empty, Title section is not empty.'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -1162,7 +1162,7 @@ void main() {
),
),
);
}
}
,
),
);
...
...
@@ -1252,17 +1252,15 @@ RenderBox findActionButtonRenderBoxByTitle(WidgetTester tester, String title) {
}
RenderBox
findScrollableActionsSectionRenderBox
(
WidgetTester
tester
)
{
final
RenderObject
actionsSection
=
tester
.
renderObject
(
find
.
byElementPredicate
(
(
Element
element
)
{
return
element
.
widget
.
runtimeType
.
toString
()
==
'_CupertinoAlertActionSection'
;
}),
);
final
RenderObject
actionsSection
=
tester
.
renderObject
(
find
.
byElementPredicate
((
Element
element
)
{
return
element
.
widget
.
runtimeType
.
toString
()
==
'_CupertinoAlertActionSection'
;
}));
assert
(
actionsSection
is
RenderBox
);
return
actionsSection
as
RenderBox
;
}
Widget
createAppWithButtonThatLaunchesDialog
(
{
required
WidgetBuilder
dialogBuilder
required
WidgetBuilder
dialogBuilder
,
})
{
return
MaterialApp
(
home:
Material
(
...
...
@@ -1296,10 +1294,10 @@ Widget createAppWithCenteredButton(Widget child) {
child:
Center
(
child:
ElevatedButton
(
onPressed:
null
,
child:
child
child:
child
,
),
)
)
)
,
)
,
);
}
...
...
packages/flutter/test/cupertino/form_row_test.dart
View file @
80dd6a40
...
...
@@ -57,10 +57,7 @@ void main() {
),
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dx
>
tester
.
getTopLeft
(
find
.
byType
(
CupertinoTextField
)).
dx
,
true
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dx
>
tester
.
getTopLeft
(
find
.
byType
(
CupertinoTextField
)).
dx
,
true
);
});
testWidgets
(
'LTR puts child after prefix'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -81,10 +78,7 @@ void main() {
),
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dx
>
tester
.
getTopLeft
(
find
.
byType
(
CupertinoTextField
)).
dx
,
false
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dx
>
tester
.
getTopLeft
(
find
.
byType
(
CupertinoTextField
)).
dx
,
false
);
});
testWidgets
(
'Shows error widget'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -121,8 +115,7 @@ void main() {
expect
(
helper
,
tester
.
widget
(
find
.
byType
(
Text
)));
});
testWidgets
(
'Shows helper text above error text'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Shows helper text above error text'
,
(
WidgetTester
tester
)
async
{
const
Widget
helper
=
Text
(
'Helper'
);
const
Widget
error
=
CupertinoActivityIndicator
();
...
...
@@ -139,13 +132,12 @@ void main() {
);
expect
(
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActivityIndicator
)).
dy
>
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dy
,
true
);
tester
.
getTopLeft
(
find
.
byType
(
CupertinoActivityIndicator
)).
dy
>
tester
.
getTopLeft
(
find
.
byType
(
Text
)).
dy
,
true
,
);
});
testWidgets
(
'Shows helper in label color and error text in red color'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Shows helper in label color and error text in red color'
,
(
WidgetTester
tester
)
async
{
const
Widget
helper
=
Text
(
'Helper'
);
const
Widget
error
=
Text
(
'Error'
);
...
...
packages/flutter/test/cupertino/form_section_test.dart
View file @
80dd6a40
...
...
@@ -36,8 +36,7 @@ void main() {
expect
(
find
.
text
(
'Footer'
),
findsOneWidget
);
});
testWidgets
(
'Shows long dividers in edge-to-edge section part 1'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Shows long dividers in edge-to-edge section part 1'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -54,15 +53,14 @@ void main() {
expect
(
childrenColumn
.
children
.
length
,
3
);
});
testWidgets
(
'Shows long dividers in edge-to-edge section part 2'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Shows long dividers in edge-to-edge section part 2'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
child:
CupertinoFormSection
(
children:
<
Widget
>[
CupertinoTextFormFieldRow
(),
CupertinoTextFormFieldRow
()
CupertinoTextFormFieldRow
()
,
],
),
),
...
...
@@ -76,8 +74,7 @@ void main() {
expect
(
childrenColumn
.
children
.
length
,
5
);
});
testWidgets
(
'Does not show long dividers in insetGrouped section part 1'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Does not show long dividers in insetGrouped section part 1'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -95,8 +92,7 @@ void main() {
expect
(
childrenColumn
.
children
.
length
,
1
);
});
testWidgets
(
'Does not show long dividers in insetGrouped section part 2'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Does not show long dividers in insetGrouped section part 2'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
restorationScopeId:
'App'
,
...
...
@@ -104,7 +100,7 @@ void main() {
child:
CupertinoFormSection
.
insetGrouped
(
children:
<
Widget
>[
CupertinoTextFormFieldRow
(),
CupertinoTextFormFieldRow
()
CupertinoTextFormFieldRow
()
,
],
),
),
...
...
@@ -141,8 +137,7 @@ void main() {
expect
(
boxDecoration
.
color
,
backgroundColor
);
});
testWidgets
(
'Setting clipBehavior clips children section'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Setting clipBehavior clips children section'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -157,8 +152,7 @@ void main() {
expect
(
find
.
byType
(
ClipRRect
),
findsOneWidget
);
});
testWidgets
(
'Not setting clipBehavior does not clip children section'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Not setting clipBehavior does not clip children section'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
packages/flutter/test/cupertino/icon_theme_data_test.dart
View file @
80dd6a40
...
...
@@ -14,7 +14,7 @@ void main() {
IconTheme
(
data:
data
,
child:
Builder
(
builder:
(
BuildContext
context
)
{
retrieved
=
IconTheme
.
of
(
context
);
return
const
SizedBox
();
}))
}))
,
);
expect
(
retrieved
,
data
);
...
...
@@ -28,7 +28,7 @@ void main() {
retrieved
=
IconTheme
.
of
(
context
);
return
const
SizedBox
();
},
)
)
,
),
),
);
...
...
packages/flutter/test/cupertino/material/tab_scaffold_test.dart
View file @
80dd6a40
...
...
@@ -200,7 +200,7 @@ void main() {
find
.
descendant
(
of:
find
.
byType
(
CupertinoTabScaffold
),
matching:
find
.
byType
(
DecoratedBox
),
)
)
,
).
decoration
as
BoxDecoration
;
expect
(
tabDecoration
.
color
!.
value
,
backgroundColor
.
color
.
value
);
...
...
@@ -223,7 +223,7 @@ void main() {
find
.
descendant
(
of:
find
.
byType
(
CupertinoTabScaffold
),
matching:
find
.
byType
(
DecoratedBox
),
)
)
,
).
decoration
as
BoxDecoration
;
expect
(
tabDecoration
.
color
!.
value
,
backgroundColor
.
darkColor
.
value
);
...
...
packages/flutter/test/cupertino/nav_bar_test.dart
View file @
80dd6a40
...
...
@@ -107,11 +107,11 @@ void main() {
),
);
navigator
.
currentState
!.
push
<
void
>(
CupertinoPageRoute
<
void
>(
builder:
(
BuildContext
context
)
{
return
const
CupertinoNavigationBar
(
middle:
Text
(
'Page 2'
),
);
}
builder:
(
BuildContext
context
)
{
return
const
CupertinoNavigationBar
(
middle:
Text
(
'Page 2'
),
);
},
));
await
tester
.
pumpAndSettle
();
expect
(
find
.
byType
(
CupertinoNavigationBarBackButton
),
findsOneWidget
);
...
...
@@ -206,7 +206,7 @@ void main() {
largeTitle:
Text
(
'Title'
),
backgroundColor:
Color
(
0xF0F9F9F9
),
brightness:
Brightness
.
dark
,
)
)
,
],
),
),
...
...
@@ -225,7 +225,7 @@ void main() {
largeTitle:
Text
(
'Title'
),
backgroundColor:
Color
(
0xF01D1D1D
),
brightness:
Brightness
.
light
,
)
)
,
],
),
),
...
...
@@ -524,9 +524,7 @@ void main() {
expect
(
tester
.
getCenter
(
find
.
byKey
(
segmentedControlsKey
)).
dx
,
400.0
);
// The large title is invisible now.
expect
(
tester
.
renderObject
<
RenderAnimatedOpacity
>(
find
.
widgetWithText
(
AnimatedOpacity
,
'Title'
)
).
opacity
.
value
,
tester
.
renderObject
<
RenderAnimatedOpacity
>(
find
.
widgetWithText
(
AnimatedOpacity
,
'Title'
)).
opacity
.
value
,
0.0
,
);
});
...
...
@@ -666,8 +664,8 @@ void main() {
),
child:
Placeholder
(),
);
}
)
}
,
)
,
);
await
tester
.
pump
();
...
...
@@ -684,8 +682,8 @@ void main() {
),
child:
Placeholder
(),
);
}
)
}
,
)
,
);
await
tester
.
pump
();
...
...
@@ -997,9 +995,7 @@ void main() {
});
testWidgets
(
'CupertinoNavigationBarBackButton shows an error when manually added outside a route'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
CupertinoNavigationBarBackButton
()
);
await
tester
.
pumpWidget
(
const
CupertinoNavigationBarBackButton
());
final
dynamic
exception
=
tester
.
takeException
();
expect
(
exception
,
isAssertionError
);
...
...
@@ -1217,110 +1213,112 @@ void main() {
testWidgets
(
'CupertinoSliverNavigationBar stretches upon over-scroll and bounces back once over-scroll ends'
,
(
WidgetTester
tester
)
async
{
const
Text
trailingText
=
Text
(
'Bar Button'
);
const
Text
titleText
=
Text
(
'Large Title'
);
const
Text
trailingText
=
Text
(
'Bar Button'
);
const
Text
titleText
=
Text
(
'Large Title'
);
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoPageScaffold
(
child:
CustomScrollView
(
slivers:
<
Widget
>[
const
CupertinoSliverNavigationBar
(
trailing:
trailingText
,
largeTitle:
titleText
,
stretch:
true
,
),
SliverToBoxAdapter
(
child:
Container
(
height:
1200.0
,
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoPageScaffold
(
child:
CustomScrollView
(
slivers:
<
Widget
>[
const
CupertinoSliverNavigationBar
(
trailing:
trailingText
,
largeTitle:
titleText
,
stretch:
true
,
),
),
],
SliverToBoxAdapter
(
child:
Container
(
height:
1200.0
,
),
),
],
),
),
),
),
);
);
final
Finder
trailingTextFinder
=
find
.
byWidget
(
trailingText
).
first
;
final
Finder
titleTextFinder
=
find
.
byWidget
(
titleText
).
first
;
final
Finder
trailingTextFinder
=
find
.
byWidget
(
trailingText
).
first
;
final
Finder
titleTextFinder
=
find
.
byWidget
(
titleText
).
first
;
final
Offset
initialTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
initialTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
// Drag for overscroll
await
tester
.
drag
(
find
.
byType
(
Scrollable
),
const
Offset
(
0.0
,
150.0
));
await
tester
.
pump
();
// Drag for overscroll
await
tester
.
drag
(
find
.
byType
(
Scrollable
),
const
Offset
(
0.0
,
150.0
));
await
tester
.
pump
();
final
Offset
stretchedTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
stretchedTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
expect
(
stretchedTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
greaterThan
(
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
())
);
expect
(
stretchedTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
greaterThan
(
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
()),
);
// Ensure overscroll retracts to original size after releasing gesture
await
tester
.
pumpAndSettle
();
// Ensure overscroll retracts to original size after releasing gesture
await
tester
.
pumpAndSettle
();
final
Offset
finalTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
finalTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
expect
(
finalTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
});
expect
(
finalTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
},
);
testWidgets
(
'CupertinoSliverNavigationBar does not stretch upon over-scroll if stretch parameter is false'
,
(
WidgetTester
tester
)
async
{
const
Text
trailingText
=
Text
(
'Bar Button'
);
const
Text
titleText
=
Text
(
'Large Title'
);
const
Text
trailingText
=
Text
(
'Bar Button'
);
const
Text
titleText
=
Text
(
'Large Title'
);
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoPageScaffold
(
child:
CustomScrollView
(
slivers:
<
Widget
>[
const
CupertinoSliverNavigationBar
(
trailing:
trailingText
,
largeTitle:
titleText
,
stretch:
false
,
),
SliverToBoxAdapter
(
child:
Container
(
height:
1200.0
,
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoPageScaffold
(
child:
CustomScrollView
(
slivers:
<
Widget
>[
const
CupertinoSliverNavigationBar
(
trailing:
trailingText
,
largeTitle:
titleText
,
stretch:
false
,
),
),
],
SliverToBoxAdapter
(
child:
Container
(
height:
1200.0
,
),
),
],
),
),
),
),
);
);
final
Finder
trailingTextFinder
=
find
.
byWidget
(
trailingText
).
first
;
final
Finder
titleTextFinder
=
find
.
byWidget
(
titleText
).
first
;
final
Finder
trailingTextFinder
=
find
.
byWidget
(
trailingText
).
first
;
final
Finder
titleTextFinder
=
find
.
byWidget
(
titleText
).
first
;
final
Offset
initialTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
initialTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
// Drag for overscroll
await
tester
.
drag
(
find
.
byType
(
Scrollable
),
const
Offset
(
0.0
,
150.0
));
await
tester
.
pump
();
// Drag for overscroll
await
tester
.
drag
(
find
.
byType
(
Scrollable
),
const
Offset
(
0.0
,
150.0
));
await
tester
.
pump
();
final
Offset
stretchedTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
stretchedTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
expect
(
stretchedTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
expect
(
stretchedTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
// Ensure overscroll is zero after releasing gesture
await
tester
.
pumpAndSettle
();
// Ensure overscroll is zero after releasing gesture
await
tester
.
pumpAndSettle
();
final
Offset
finalTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
final
Offset
finalTrailingTextToLargeTitleOffset
=
tester
.
getTopLeft
(
trailingTextFinder
)
-
tester
.
getTopLeft
(
titleTextFinder
);
expect
(
finalTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
});
expect
(
finalTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
initialTrailingTextToLargeTitleOffset
.
dy
.
abs
(),
);
},
);
testWidgets
(
'Null NavigationBar border transition'
,
(
WidgetTester
tester
)
async
{
// This is a regression test for https://github.com/flutter/flutter/issues/71389
...
...
@@ -1366,7 +1364,7 @@ void main() {
class
_ExpectStyles
extends
StatelessWidget
{
const
_ExpectStyles
({
required
this
.
color
,
required
this
.
index
required
this
.
index
,
});
final
Color
color
;
...
...
packages/flutter/test/cupertino/nav_bar_transition_test.dart
View file @
80dd6a40
...
...
@@ -179,8 +179,7 @@ void main() {
expect
(
bottomMiddle
.
text
.
style
!.
fontFamily
,
'.SF Pro Text'
);
expect
(
bottomMiddle
.
text
.
style
!.
letterSpacing
,
-
0.41
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'Page 1'
)).
first
,
0.9004602432250977
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'Page 1'
)).
first
,
0.9004602432250977
);
// The top back label is styled exactly the same way. But the opacity tweens
// are flipped.
...
...
@@ -207,8 +206,7 @@ void main() {
expect
(
topBackLabel
.
text
.
style
!.
fontFamily
,
'.SF Pro Text'
);
expect
(
topBackLabel
.
text
.
style
!.
letterSpacing
,
-
0.41
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'Page 1'
)).
last
,
0.7630139589309692
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'Page 1'
)).
last
,
0.7630139589309692
);
});
testWidgets
(
'Font transitions respect themes'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -589,8 +587,7 @@ void main() {
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
final
Finder
backChevron
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
final
Finder
backChevron
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
expect
(
backChevron
,
...
...
@@ -599,13 +596,11 @@ void main() {
);
// Come in from the right and fade in.
checkOpacity
(
tester
,
backChevron
,
0.0
);
expect
(
tester
.
getTopLeft
(
backChevron
),
const
Offset
(
86.734375
,
7.0
));
expect
(
tester
.
getTopLeft
(
backChevron
),
const
Offset
(
86.734375
,
7.0
));
await
tester
.
pump
(
const
Duration
(
milliseconds:
150
));
checkOpacity
(
tester
,
backChevron
,
0.09497911669313908
);
expect
(
tester
.
getTopLeft
(
backChevron
),
const
Offset
(
31.055883467197418
,
7.0
));
expect
(
tester
.
getTopLeft
(
backChevron
),
const
Offset
(
31.055883467197418
,
7.0
));
});
testWidgets
(
'First appearance of back chevron fades in from the left in RTL'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -631,8 +626,7 @@ void main() {
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
final
Finder
backChevron
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
final
Finder
backChevron
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
expect
(
backChevron
,
...
...
@@ -660,8 +654,7 @@ void main() {
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
final
Finder
backChevrons
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
final
Finder
backChevrons
=
flying
(
tester
,
find
.
text
(
String
.
fromCharCode
(
CupertinoIcons
.
back
.
codePoint
)));
expect
(
backChevrons
,
...
...
@@ -887,13 +880,11 @@ void main() {
await
tester
.
pump
(
const
Duration
(
milliseconds:
50
));
expect
(
flying
(
tester
,
find
.
text
(
'A title too long to fit'
)),
findsOneWidget
);
expect
(
flying
(
tester
,
find
.
text
(
'A title too long to fit'
)),
findsOneWidget
);
// Automatically changed to the word 'Back' in the back label.
expect
(
flying
(
tester
,
find
.
text
(
'Back'
)),
findsOneWidget
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'A title too long to fit'
)),
0.8833301812410355
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'A title too long to fit'
)),
0.8833301812410355
);
checkOpacity
(
tester
,
flying
(
tester
,
find
.
text
(
'Back'
)),
0.0
);
expect
(
tester
.
getTopLeft
(
flying
(
tester
,
find
.
text
(
'A title too long to fit'
))),
...
...
packages/flutter/test/cupertino/picker_test.dart
View file @
80dd6a40
...
...
@@ -161,8 +161,7 @@ void main() {
itemExtent:
15.0
,
children:
const
<
Widget
>[
Text
(
'1'
),
Text
(
'1'
)],
onSelectedItemChanged:
(
int
i
)
{},
selectionOverlay:
const
CupertinoPickerDefaultSelectionOverlay
(
background:
Color
(
0x12345678
)),
selectionOverlay:
const
CupertinoPickerDefaultSelectionOverlay
(
background:
Color
(
0x12345678
)),
),
),
),
...
...
@@ -245,7 +244,9 @@ void main() {
arguments:
'HapticFeedbackType.selectionClick'
,
),
);
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
iOS
));
},
variant:
TargetPlatformVariant
.
only
(
TargetPlatform
.
iOS
),
);
testWidgets
(
'do not trigger haptic effects on non-iOS devices'
,
...
...
@@ -279,7 +280,9 @@ void main() {
await
tester
.
drag
(
find
.
text
(
'0'
),
const
Offset
(
0.0
,
-
100.0
),
warnIfMissed:
false
);
// has an IgnorePointer
expect
(
selectedItems
,
<
int
>[
1
]);
expect
(
systemCalls
,
isEmpty
);
},
variant:
TargetPlatformVariant
(
TargetPlatform
.
values
.
where
((
TargetPlatform
platform
)
=>
platform
!=
TargetPlatform
.
iOS
).
toSet
()));
},
variant:
TargetPlatformVariant
(
TargetPlatform
.
values
.
where
((
TargetPlatform
platform
)
=>
platform
!=
TargetPlatform
.
iOS
).
toSet
()),
);
testWidgets
(
'a drag in between items settles back'
,
(
WidgetTester
tester
)
async
{
final
FixedExtentScrollController
controller
=
...
...
packages/flutter/test/cupertino/refresh_test.dart
View file @
80dd6a40
This diff is collapsed.
Click to expand it.
packages/flutter/test/cupertino/route_test.dart
View file @
80dd6a40
...
...
@@ -87,7 +87,7 @@ void main() {
final
RenderParagraph
aParagraph
=
a
.
renderObject
!
as
RenderParagraph
;
final
RenderParagraph
bParagraph
=
b
.
renderObject
!
as
RenderParagraph
;
return
aParagraph
.
text
.
style
!.
fontSize
!.
compareTo
(
bParagraph
.
text
.
style
!.
fontSize
!
bParagraph
.
text
.
style
!.
fontSize
!
,
);
});
...
...
@@ -397,7 +397,7 @@ void main() {
));
},
);
}
}
,
),
),
);
...
...
@@ -501,7 +501,7 @@ void main() {
),
],
);
}
}
,
),
),
);
...
...
@@ -590,7 +590,7 @@ void main() {
),
],
);
}
}
,
),
),
);
...
...
@@ -664,7 +664,7 @@ void main() {
return
const
CupertinoPageScaffold
(
child:
Text
(
'2'
),
);
}
}
,
);
tester
.
state
<
NavigatorState
>(
find
.
byType
(
Navigator
)).
push
(
route2
);
...
...
@@ -716,7 +716,7 @@ void main() {
return
const
CupertinoPageScaffold
(
child:
Text
(
'2'
),
);
}
}
,
);
tester
.
state
<
NavigatorState
>(
find
.
byType
(
Navigator
)).
push
(
route2
);
...
...
@@ -762,7 +762,7 @@ void main() {
return
const
CupertinoPageScaffold
(
child:
Text
(
'2'
),
);
}
}
,
);
tester
.
state
<
NavigatorState
>(
find
.
byType
(
Navigator
)).
push
(
route2
);
...
...
@@ -812,7 +812,7 @@ void main() {
return
const
CupertinoPageScaffold
(
child:
Text
(
'2'
),
);
}
}
,
);
navigatorKey
.
currentState
!.
push
(
route2
);
...
...
@@ -1025,7 +1025,7 @@ void main() {
child:
GestureDetector
(
onTap:
()
{
homeTapCount
+=
1
;
}
}
,
),
),
),
...
...
@@ -1044,7 +1044,7 @@ void main() {
child:
GestureDetector
(
onTap:
()
{
pageTapCount
+=
1
;
}
}
,
),
),
);
...
...
@@ -1118,9 +1118,9 @@ void main() {
child:
Hero
(
tag:
'tag'
,
transitionOnUserGestures:
true
,
child:
SizedBox
(
key:
container
,
height:
150.0
,
width:
150.0
)
child:
SizedBox
(
key:
container
,
height:
150.0
,
width:
150.0
)
,
),
)
)
,
);
},
'/page2'
:
(
BuildContext
context
)
{
...
...
@@ -1131,12 +1131,12 @@ void main() {
child:
Hero
(
tag:
'tag'
,
transitionOnUserGestures:
true
,
child:
SizedBox
(
key:
container
,
height:
150.0
,
width:
150.0
)
)
child:
SizedBox
(
key:
container
,
height:
150.0
,
width:
150.0
)
,
)
,
),
)
)
,
);
}
}
,
},
));
...
...
@@ -1354,8 +1354,7 @@ void main() {
home:
Navigator
(
onGenerateRoute:
(
RouteSettings
settings
)
{
return
PageRouteBuilder
<
dynamic
>(
pageBuilder:
(
BuildContext
context
,
Animation
<
double
>
_
,
Animation
<
double
>
__
)
{
pageBuilder:
(
BuildContext
context
,
Animation
<
double
>
_
,
Animation
<
double
>
__
)
{
return
GestureDetector
(
onTap:
()
async
{
await
showCupertinoModalPopup
<
void
>(
...
...
@@ -1443,9 +1442,10 @@ void main() {
return
GestureDetector
(
onTap:
()
async
{
await
showCupertinoModalPopup
<
void
>(
context:
context
,
builder:
(
BuildContext
context
)
=>
const
SizedBox
(),
barrierColor:
customColor
);
context:
context
,
builder:
(
BuildContext
context
)
=>
const
SizedBox
(),
barrierColor:
customColor
,
);
},
child:
const
Text
(
'tap'
),
);
...
...
@@ -1466,9 +1466,10 @@ void main() {
return
GestureDetector
(
onTap:
()
async
{
await
showCupertinoModalPopup
<
void
>(
context:
context
,
builder:
(
BuildContext
context
)
=>
const
Text
(
'Visible'
),
barrierDismissible:
true
);
context:
context
,
builder:
(
BuildContext
context
)
=>
const
Text
(
'Visible'
),
barrierDismissible:
true
,
);
},
child:
const
Text
(
'tap'
),
);
...
...
@@ -1491,9 +1492,10 @@ void main() {
return
GestureDetector
(
onTap:
()
async
{
await
showCupertinoModalPopup
<
void
>(
context:
context
,
builder:
(
BuildContext
context
)
=>
const
Text
(
'Visible'
),
barrierDismissible:
false
);
context:
context
,
builder:
(
BuildContext
context
)
=>
const
Text
(
'Visible'
),
barrierDismissible:
false
,
);
},
child:
const
Text
(
'tap'
),
);
...
...
@@ -1530,7 +1532,7 @@ void main() {
return
true
;
},
transitionDelegate:
detector
,
)
)
,
);
expect
(
detector
.
hasTransition
,
isFalse
);
...
...
@@ -1556,7 +1558,7 @@ void main() {
return
true
;
},
transitionDelegate:
detector
,
)
)
,
);
// There should be no transition because the page has the same key.
...
...
@@ -1584,7 +1586,7 @@ void main() {
return
true
;
},
transitionDelegate:
detector
,
)
)
,
);
expect
(
detector
.
hasTransition
,
isFalse
);
...
...
@@ -1605,7 +1607,7 @@ void main() {
return
true
;
},
transitionDelegate:
detector
,
)
)
,
);
// There should be no transition because the page has the same key.
expect
(
detector
.
hasTransition
,
isFalse
);
...
...
@@ -1795,7 +1797,7 @@ class TransitionDetector extends DefaultTransitionDelegate<void> {
return
super
.
resolve
(
newPageRouteHistory:
newPageRouteHistory
,
locationToExitingPageRoute:
locationToExitingPageRoute
,
pageRouteToPagelessRoutes:
pageRouteToPagelessRoutes
pageRouteToPagelessRoutes:
pageRouteToPagelessRoutes
,
);
}
}
...
...
@@ -1804,7 +1806,7 @@ Widget buildNavigator({
required
List
<
Page
<
dynamic
>>
pages
,
PopPageCallback
?
onPopPage
,
GlobalKey
<
NavigatorState
>?
key
,
TransitionDelegate
<
dynamic
>?
transitionDelegate
TransitionDelegate
<
dynamic
>?
transitionDelegate
,
})
{
return
MediaQuery
(
data:
MediaQueryData
.
fromWindow
(
WidgetsBinding
.
instance
!.
window
),
...
...
@@ -1812,7 +1814,7 @@ Widget buildNavigator({
locale:
const
Locale
(
'en'
,
'US'
),
delegates:
const
<
LocalizationsDelegate
<
dynamic
>>[
DefaultCupertinoLocalizations
.
delegate
,
DefaultWidgetsLocalizations
.
delegate
DefaultWidgetsLocalizations
.
delegate
,
],
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
...
...
packages/flutter/test/cupertino/scrollbar_paint_test.dart
View file @
80dd6a40
...
...
@@ -67,7 +67,7 @@ void main() {
),
child:
CupertinoScrollbar
(
child:
ListView
(
children:
const
<
Widget
>
[
SizedBox
(
width:
4000
,
height:
4000
)]
children:
const
<
Widget
>
[
SizedBox
(
width:
4000
,
height:
4000
)],
),
),
),
...
...
packages/flutter/test/cupertino/scrollbar_test.dart
View file @
80dd6a40
This diff is collapsed.
Click to expand it.
packages/flutter/test/cupertino/search_field_test.dart
View file @
80dd6a40
...
...
@@ -150,8 +150,7 @@ void main() {
);
Text
placeholder
=
tester
.
widget
(
find
.
text
(
'Search'
));
expect
(
placeholder
.
style
!.
color
!.
value
,
CupertinoColors
.
systemGrey
.
darkColor
.
value
);
expect
(
placeholder
.
style
!.
color
!.
value
,
CupertinoColors
.
systemGrey
.
darkColor
.
value
);
await
tester
.
pumpAndSettle
();
...
...
@@ -165,8 +164,7 @@ void main() {
);
placeholder
=
tester
.
widget
(
find
.
text
(
'Search'
));
expect
(
placeholder
.
style
!.
color
!.
value
,
CupertinoColors
.
systemGrey
.
color
.
value
);
expect
(
placeholder
.
style
!.
color
!.
value
,
CupertinoColors
.
systemGrey
.
color
.
value
);
});
testWidgets
(
...
...
@@ -274,8 +272,7 @@ void main() {
expect
(
find
.
byIcon
(
CupertinoIcons
.
xmark_circle_fill
),
findsOneWidget
);
await
tester
.
enterText
(
find
.
byType
(
CupertinoSearchTextField
),
'text input'
);
await
tester
.
enterText
(
find
.
byType
(
CupertinoSearchTextField
),
'text input'
);
await
tester
.
pump
();
expect
(
find
.
text
(
'text input'
),
findsOneWidget
);
...
...
@@ -300,8 +297,7 @@ void main() {
expect
(
find
.
byIcon
(
CupertinoIcons
.
xmark_circle_fill
),
findsNothing
);
await
tester
.
enterText
(
find
.
byType
(
CupertinoSearchTextField
),
'text input'
);
await
tester
.
enterText
(
find
.
byType
(
CupertinoSearchTextField
),
'text input'
);
await
tester
.
pump
();
expect
(
find
.
byIcon
(
CupertinoIcons
.
xmark_circle_fill
),
findsOneWidget
);
...
...
@@ -443,8 +439,7 @@ void main() {
testWidgets
(
'custom suffix onTap overrides default clearing behavior'
,
(
WidgetTester
tester
)
async
{
final
TextEditingController
controller
=
TextEditingController
(
text:
'Text'
);
final
TextEditingController
controller
=
TextEditingController
(
text:
'Text'
);
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -466,8 +461,7 @@ void main() {
},
);
testWidgets
(
'onTap is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'onTap is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
int
onTapCallCount
=
0
;
// onTap can be null.
...
...
@@ -497,9 +491,7 @@ void main() {
expect
(
onTapCallCount
,
1
);
});
testWidgets
(
'autocorrect is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'autocorrect is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
CupertinoApp
(
home:
Center
(
...
...
@@ -514,9 +506,7 @@ void main() {
expect
(
textField
.
autocorrect
,
false
);
});
testWidgets
(
'enabled is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'enabled is properly forwarded to the inner text field'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
CupertinoApp
(
home:
Center
(
...
...
packages/flutter/test/cupertino/segmented_control_test.dart
View file @
80dd6a40
...
...
@@ -218,8 +218,10 @@ void main() {
),
),
);
fail
(
'Should not be possible to create segmented control in which '
'value is not the key of one of the children widgets'
);
fail
(
'Should not be possible to create segmented control in which '
'value is not the key of one of the children widgets'
,
);
}
on
AssertionError
catch
(
e
)
{
expect
(
e
.
toString
(),
contains
(
'children'
));
}
...
...
@@ -605,8 +607,7 @@ void main() {
),
);
final
RenderBox
buttonBox
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
final
RenderBox
buttonBox
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
expect
(
buttonBox
.
size
.
height
,
400.0
);
});
...
...
@@ -637,8 +638,7 @@ void main() {
),
);
final
RenderBox
segmentedControl
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
final
RenderBox
segmentedControl
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
// Subtract the 16.0px from each side. Remaining width should be allocated
// to each child equally.
...
...
@@ -646,12 +646,9 @@ void main() {
expect
(
childWidth
,
200.0
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
0
].
parentData
.
surroundingRect
.
width
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
1
].
parentData
.
surroundingRect
.
width
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
2
].
parentData
.
surroundingRect
.
width
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
0
].
parentData
.
surroundingRect
.
width
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
1
].
parentData
.
surroundingRect
.
width
);
expect
(
childWidth
,
getRenderSegmentedControl
(
tester
).
getChildrenAsList
()[
2
].
parentData
.
surroundingRect
.
width
);
});
testWidgets
(
'Width is finite in unbounded space'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -677,8 +674,7 @@ void main() {
),
);
final
RenderBox
segmentedControl
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
final
RenderBox
segmentedControl
=
tester
.
renderObject
(
find
.
byKey
(
const
ValueKey
<
String
>(
'Segmented Control'
)));
expect
(
segmentedControl
.
size
.
width
.
isFinite
,
isTrue
);
});
...
...
@@ -700,8 +696,7 @@ void main() {
),
);
expect
(
tester
.
getTopRight
(
find
.
text
(
'Child 1'
)).
dx
>
tester
.
getTopRight
(
find
.
text
(
'Child 2'
)).
dx
,
isTrue
);
expect
(
tester
.
getTopRight
(
find
.
text
(
'Child 1'
)).
dx
>
tester
.
getTopRight
(
find
.
text
(
'Child 2'
)).
dx
,
isTrue
);
});
testWidgets
(
'Correct initial selection and toggling behavior - RTL'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -814,37 +809,38 @@ void main() {
await
tester
.
pump
();
expect
(
semantics
,
hasSemantics
(
TestSemantics
.
root
(
children:
<
TestSemantics
>[
TestSemantics
.
rootChild
(
label:
'Child 1'
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isButton
,
SemanticsFlag
.
isInMutuallyExclusiveGroup
,
],
actions:
<
SemanticsAction
>[
SemanticsAction
.
tap
,
],
),
TestSemantics
.
rootChild
(
label:
'Child 2'
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isButton
,
SemanticsFlag
.
isInMutuallyExclusiveGroup
,
SemanticsFlag
.
isSelected
,
],
actions:
<
SemanticsAction
>[
SemanticsAction
.
tap
,
],
),
],
),
ignoreId:
true
,
ignoreRect:
true
,
ignoreTransform:
true
,
));
semantics
,
hasSemantics
(
TestSemantics
.
root
(
children:
<
TestSemantics
>[
TestSemantics
.
rootChild
(
label:
'Child 1'
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isButton
,
SemanticsFlag
.
isInMutuallyExclusiveGroup
,
],
actions:
<
SemanticsAction
>[
SemanticsAction
.
tap
,
],
),
TestSemantics
.
rootChild
(
label:
'Child 2'
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isButton
,
SemanticsFlag
.
isInMutuallyExclusiveGroup
,
SemanticsFlag
.
isSelected
,
],
actions:
<
SemanticsAction
>[
SemanticsAction
.
tap
,
],
),
],
),
ignoreId:
true
,
ignoreRect:
true
,
ignoreTransform:
true
,
),
);
semantics
.
dispose
();
});
...
...
@@ -967,7 +963,8 @@ void main() {
await
tester
.
tapAt
(
centerOfTwo
+
const
Offset
(
10
,
0
));
expect
(
sharedValue
,
1
);
});
},
);
testWidgets
(
'Animation is correct when the selected segment changes'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
setupSimpleSegmentedControl
());
...
...
packages/flutter/test/cupertino/slider_test.dart
View file @
80dd6a40
...
...
@@ -347,7 +347,7 @@ void main() {
TestSemantics
(
id:
1
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isSlider
],
)
)
,
],
),
ignoreRect:
true
,
...
...
@@ -587,7 +587,7 @@ void main() {
..
rrect
()
..
rrect
()
..
rrect
()
..
rrect
(
color:
CupertinoColors
.
systemPurple
.
color
)
..
rrect
(
color:
CupertinoColors
.
systemPurple
.
color
)
,
);
await
tester
.
pumpWidget
(
...
...
@@ -610,7 +610,7 @@ void main() {
..
rrect
()
..
rrect
()
..
rrect
()
..
rrect
(
color:
CupertinoColors
.
activeOrange
.
color
)
..
rrect
(
color:
CupertinoColors
.
activeOrange
.
color
)
,
);
});
}
packages/flutter/test/cupertino/sliding_segmented_control_test.dart
View file @
80dd6a40
...
...
@@ -573,8 +573,7 @@ void main() {
),
);
expect
(
tester
.
getTopRight
(
find
.
text
(
'Child 1'
)).
dx
>
tester
.
getTopRight
(
find
.
text
(
'Child 2'
)).
dx
,
isTrue
);
expect
(
tester
.
getTopRight
(
find
.
text
(
'Child 1'
)).
dx
>
tester
.
getTopRight
(
find
.
text
(
'Child 2'
)).
dx
,
isTrue
);
});
testWidgets
(
'Correct initial selection and toggling behavior - RTL'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -701,7 +700,8 @@ void main() {
ignoreId:
true
,
ignoreRect:
true
,
ignoreTransform:
true
,
));
),
);
semantics
.
dispose
();
});
...
...
@@ -901,7 +901,8 @@ void main() {
// are to account for the thumb's vertical EdgeInsets.
expect
(
segmentedControlOrigin
.
dx
-
1
,
lessThanOrEqualTo
(
thumbRect
.
left
));
expect
(
segmentedControlOrigin
.
dx
+
renderSegmentedControl
.
size
.
width
+
1
,
greaterThanOrEqualTo
(
thumbRect
.
right
));
});
},
);
testWidgets
(
'Transition is triggered while a transition is already occurring'
,
(
WidgetTester
tester
)
async
{
const
Map
<
int
,
Widget
>
children
=
<
int
,
Widget
>{
...
...
packages/flutter/test/cupertino/tab_scaffold_test.dart
View file @
80dd6a40
...
...
@@ -60,7 +60,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -250,7 +250,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -286,7 +286,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -305,7 +305,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -504,7 +504,7 @@ void main() {
tabBuilder:
(
BuildContext
context
,
int
index
)
{
contentPadding
=
MediaQuery
.
of
(
context
).
padding
;
return
const
Placeholder
();
}
}
,
),
),
),
...
...
@@ -514,7 +514,8 @@ void main() {
expect
(
await
getContentPaddingWithTabBarColor
(
const
Color
(
0xAAFFFFFF
)),
isNot
(
EdgeInsets
.
zero
));
expect
(
await
getContentPaddingWithTabBarColor
(
const
Color
(
0xFFFFFFFF
)),
EdgeInsets
.
zero
);
});
},
);
testWidgets
(
'Tab and page scaffolds do not double stack view insets'
,
(
WidgetTester
tester
)
async
{
late
BuildContext
innerContext
;
...
...
@@ -631,7 +632,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -653,7 +654,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -670,9 +671,10 @@ void main() {
expect
(
tabsPainted
,
const
<
int
>[
0
,
0
,
18
]);
});
testWidgets
(
'If a controller is initially provided then the parent stops doing so for rebuilds, '
'a new instance of CupertinoTabController should be created and used by the widget, '
"while preserving the previous controller's tab index"
,
testWidgets
(
'If a controller is initially provided then the parent stops doing so for rebuilds, '
'a new instance of CupertinoTabController should be created and used by the widget, '
"while preserving the previous controller's tab index"
,
(
WidgetTester
tester
)
async
{
final
List
<
int
>
tabsPainted
=
<
int
>[];
final
CupertinoTabController
oldController
=
CupertinoTabController
(
initialIndex:
0
);
...
...
@@ -688,7 +690,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -710,7 +712,7 @@ void main() {
return
CustomPaint
(
child:
Text
(
'Page
${index + 1}
'
),
painter:
TestCallbackPainter
(
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
onPaint:
()
{
tabsPainted
.
add
(
index
);
}
,
),
);
},
...
...
@@ -731,10 +733,12 @@ void main() {
// Changing [index] of the oldController should not work.
expect
(
tabsPainted
,
const
<
int
>
[
0
,
0
,
1
]);
});
},
);
testWidgets
(
'Do not call dispose on a controller that we do not own '
'but do remove from its listeners when done listening to it'
,
testWidgets
(
'Do not call dispose on a controller that we do not own '
'but do remove from its listeners when done listening to it'
,
(
WidgetTester
tester
)
async
{
final
MockCupertinoTabController
mockController
=
MockCupertinoTabController
(
initialIndex:
0
);
...
...
@@ -767,7 +771,8 @@ void main() {
expect
(
mockController
.
numOfListeners
,
0
);
expect
(
mockController
.
isDisposed
,
isFalse
);
});
},
);
testWidgets
(
'The owner can dispose the old controller'
,
(
WidgetTester
tester
)
async
{
CupertinoTabController
controller
=
CupertinoTabController
(
initialIndex:
2
);
...
...
@@ -827,7 +832,7 @@ void main() {
tabBuilder:
(
BuildContext
context
,
int
index
)
{
return
CustomPaint
(
painter:
TestCallbackPainter
(
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
,
),
);
},
...
...
@@ -840,7 +845,7 @@ void main() {
tabBuilder:
(
BuildContext
context
,
int
index
)
{
return
CustomPaint
(
painter:
TestCallbackPainter
(
onPaint:
()
=>
tabsPainted1
.
add
(
index
)
onPaint:
()
=>
tabsPainted1
.
add
(
index
)
,
),
);
},
...
...
@@ -874,7 +879,7 @@ void main() {
tabBuilder:
(
BuildContext
context
,
int
index
)
{
return
CustomPaint
(
painter:
TestCallbackPainter
(
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
,
),
);
},
...
...
@@ -904,8 +909,8 @@ void main() {
tabBuilder:
(
BuildContext
context
,
int
index
)
{
return
CustomPaint
(
painter:
TestCallbackPainter
(
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
)
onPaint:
()
=>
tabsPainted0
.
add
(
index
)
,
)
,
);
},
),
...
...
@@ -917,7 +922,8 @@ void main() {
expect
(
tabsPainted0
,
const
<
int
>[
2
,
0
,
1
,
2
]);
expect
(
tabsPainted1
,
const
<
int
>[
2
,
0
]);
expect
(
controller
.
numOfListeners
,
1
);
});
},
);
testWidgets
(
'Assert when current tab index >= number of tabs'
,
(
WidgetTester
tester
)
async
{
final
CupertinoTabController
controller
=
CupertinoTabController
(
initialIndex:
2
);
...
...
packages/flutter/test/cupertino/tab_test.dart
View file @
80dd6a40
...
...
@@ -172,8 +172,7 @@ void main() {
expect
(
find
.
text
(
'second route'
),
findsNothing
);
});
testWidgets
(
'Throws FlutterError when onUnknownRoute is null'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Throws FlutterError when onUnknownRoute is null'
,
(
WidgetTester
tester
)
async
{
final
GlobalKey
<
NavigatorState
>
key
=
GlobalKey
();
await
tester
.
pumpWidget
(
CupertinoApp
(
...
...
@@ -191,25 +190,27 @@ void main() {
error
=
e
;
}
expect
(
error
,
isNotNull
);
expect
(
error
.
toStringDeep
(),
equalsIgnoringHashCodes
(
'FlutterError
\n
'
' Could not find a generator for route RouteSettings("/2", null) in
\n
'
' the _CupertinoTabViewState.
\n
'
' Generators for routes are searched for in the following order:
\n
'
' 1. For the "/" route, the "builder" property, if non-null, is
\n
'
' used.
\n
'
' 2. Otherwise, the "routes" table is used, if it has an entry for
\n
'
' the route.
\n
'
' 3. Otherwise, onGenerateRoute is called. It should return a
\n
'
' non-null value for any valid route not handled by "builder" and
\n
'
' "routes".
\n
'
' 4. Finally if all else fails onUnknownRoute is called.
\n
'
' Unfortunately, onUnknownRoute was not set.
\n
'
));
expect
(
error
.
toStringDeep
(),
equalsIgnoringHashCodes
(
'FlutterError
\n
'
' Could not find a generator for route RouteSettings("/2", null) in
\n
'
' the _CupertinoTabViewState.
\n
'
' Generators for routes are searched for in the following order:
\n
'
' 1. For the "/" route, the "builder" property, if non-null, is
\n
'
' used.
\n
'
' 2. Otherwise, the "routes" table is used, if it has an entry for
\n
'
' the route.
\n
'
' 3. Otherwise, onGenerateRoute is called. It should return a
\n
'
' non-null value for any valid route not handled by "builder" and
\n
'
' "routes".
\n
'
' 4. Finally if all else fails onUnknownRoute is called.
\n
'
' Unfortunately, onUnknownRoute was not set.
\n
'
,
),
);
});
testWidgets
(
'Throws FlutterError when onUnknownRoute returns null'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Throws FlutterError when onUnknownRoute returns null'
,
(
WidgetTester
tester
)
async
{
final
GlobalKey
<
NavigatorState
>
key
=
GlobalKey
<
NavigatorState
>();
await
tester
.
pumpWidget
(
CupertinoApp
(
...
...
@@ -227,13 +228,16 @@ void main() {
error
=
e
;
}
expect
(
error
,
isNotNull
);
expect
(
error
.
toStringDeep
(),
equalsIgnoringHashCodes
(
'FlutterError
\n
'
' The onUnknownRoute callback returned null.
\n
'
' When the _CupertinoTabViewState requested the route
\n
'
' RouteSettings("/2", null) from its onUnknownRoute callback, the
\n
'
' callback returned null. Such callbacks must never return null.
\n
'
));
expect
(
error
.
toStringDeep
(),
equalsIgnoringHashCodes
(
'FlutterError
\n
'
' The onUnknownRoute callback returned null.
\n
'
' When the _CupertinoTabViewState requested the route
\n
'
' RouteSettings("/2", null) from its onUnknownRoute callback, the
\n
'
' callback returned null. Such callbacks must never return null.
\n
'
,
),
);
});
testWidgets
(
'Navigator of CupertinoTabView restores state'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -250,7 +254,7 @@ void main() {
),
routes:
<
String
,
WidgetBuilder
>{
'/2'
:
(
BuildContext
context
)
=>
const
Text
(
'second route'
),
}
}
,
),
),
);
...
...
packages/flutter/test/cupertino/text_field_test.dart
View file @
80dd6a40
...
...
@@ -35,8 +35,7 @@ class MockClipboard {
class
MockTextSelectionControls
extends
TextSelectionControls
{
@override
Widget
buildHandle
(
BuildContext
context
,
TextSelectionHandleType
type
,
double
textLineHeight
)
{
Widget
buildHandle
(
BuildContext
context
,
TextSelectionHandleType
type
,
double
textLineHeight
)
{
throw
UnimplementedError
();
}
...
...
@@ -107,7 +106,7 @@ class PathBoundsMatcher extends Matcher {
final
Map
<
Matcher
,
dynamic
>
map
=
matchState
[
'failedMatcher'
]
as
Map
<
Matcher
,
dynamic
>;
final
Iterable
<
String
>
descriptions
=
map
.
entries
.
map
<
String
>(
(
MapEntry
<
Matcher
,
dynamic
>
entry
)
=>
entry
.
key
.
describeMismatch
(
entry
.
value
,
StringDescription
(),
matchState
,
verbose
).
toString
()
(
MapEntry
<
Matcher
,
dynamic
>
entry
)
=>
entry
.
key
.
describeMismatch
(
entry
.
value
,
StringDescription
(),
matchState
,
verbose
).
toString
()
,
);
// description is guaranteed to be non-null.
...
...
@@ -292,7 +291,7 @@ void main() {
final
FocusNode
focusNode
=
FocusNode
();
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoTextField
(
focusNode:
focusNode
)
home:
CupertinoTextField
(
focusNode:
focusNode
)
,
),
);
expect
(
semantics
,
hasSemantics
(
...
...
@@ -312,9 +311,9 @@ void main() {
TestSemantics
(
id:
4
,
flags:
<
SemanticsFlag
>[
SemanticsFlag
.
isTextField
,
SemanticsFlag
.
hasEnabledState
,
SemanticsFlag
.
isEnabled
],
SemanticsFlag
.
hasEnabledState
,
SemanticsFlag
.
isEnabled
,
],
actions:
<
SemanticsAction
>[
SemanticsAction
.
tap
,
SemanticsAction
.
didGainAccessibilityFocus
],
SemanticsAction
.
didGainAccessibilityFocus
,
],
textDirection:
TextDirection
.
ltr
,
),
],
...
...
@@ -1442,7 +1441,7 @@ void main() {
);
await
tester
.
longPressAt
(
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
,
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
200
));
...
...
@@ -1473,7 +1472,7 @@ void main() {
);
await
tester
.
longPressAt
(
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
,
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
200
));
...
...
@@ -1549,7 +1548,7 @@ void main() {
expect
(
tester
.
testTextInput
.
hasAnyClients
,
false
);
await
tester
.
longPressAt
(
tester
.
getTopRight
(
find
.
text
(
'readonly'
))
tester
.
getTopRight
(
find
.
text
(
'readonly'
)),
);
await
tester
.
pump
();
...
...
@@ -1590,7 +1589,7 @@ void main() {
// Tap an area inside the EditableText but with no text.
await
tester
.
longPressAt
(
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
tester
.
getTopRight
(
find
.
text
(
"j'aime la poutine"
))
,
);
await
tester
.
pump
();
await
tester
.
pump
(
const
Duration
(
milliseconds:
200
));
...
...
@@ -2348,7 +2347,7 @@ void main() {
);
final
RenderEditable
renderEditable
=
tester
.
renderObject
<
RenderEditable
>(
find
.
byElementPredicate
((
Element
element
)
=>
element
.
renderObject
is
RenderEditable
)
find
.
byElementPredicate
((
Element
element
)
=>
element
.
renderObject
is
RenderEditable
)
,
);
List
<
TextSelectionPoint
>
lastCharEndpoint
=
renderEditable
.
getEndpointsForSelection
(
...
...
@@ -3024,7 +3023,8 @@ void main() {
expect
(
tapCount
,
2
);
});
testWidgets
(
'onTap does not work when the text field is disabled'
,
testWidgets
(
'onTap does not work when the text field is disabled'
,
(
WidgetTester
tester
)
async
{
int
tapCount
=
0
;
await
tester
.
pumpWidget
(
...
...
@@ -3077,7 +3077,8 @@ void main() {
await
tester
.
tap
(
find
.
byType
(
CupertinoTextField
),
warnIfMissed:
false
);
// disabled
await
tester
.
pump
();
expect
(
tapCount
,
1
);
});
},
);
testWidgets
(
'Focus test when the text field is disabled'
,
(
WidgetTester
tester
)
async
{
final
FocusNode
focusNode
=
FocusNode
();
...
...
@@ -3147,7 +3148,7 @@ void main() {
expect
(
tester
.
renderObject
<
RenderEditable
>(
find
.
byElementPredicate
((
Element
element
)
=>
element
.
renderObject
is
RenderEditable
)
find
.
byElementPredicate
((
Element
element
)
=>
element
.
renderObject
is
RenderEditable
)
,
).
text
!.
style
!.
color
,
isSameColorAs
(
CupertinoColors
.
white
),
);
...
...
@@ -4533,7 +4534,7 @@ void main() {
CupertinoApp
(
home:
Center
(
child:
CupertinoTextField
(
selectionControls:
selectionControl
selectionControls:
selectionControl
,
),
),
),
...
...
@@ -4549,7 +4550,7 @@ void main() {
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
CupertinoTextField
(
maxLength:
5
,
inputFormatters:
formatters
),
)
)
,
);
expect
(
formatters
.
isEmpty
,
isTrue
);
...
...
@@ -4677,8 +4678,7 @@ void main() {
});
});
testWidgets
(
'disabled widget changes background color'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'disabled widget changes background color'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
const
CupertinoApp
(
home:
Center
(
...
...
@@ -4777,5 +4777,6 @@ void main() {
),
).
color
;
expect
(
disabledColor
,
isSameColorAs
(
const
Color
(
0xFFFAFAFA
)));
});
},
);
}
packages/flutter/test/cupertino/text_form_field_row_test.dart
View file @
80dd6a40
...
...
@@ -9,8 +9,7 @@ import 'package:flutter_test/flutter_test.dart';
import
'../rendering/mock_canvas.dart'
;
void
main
(
)
{
testWidgets
(
'Passes textAlign to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes textAlign to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
const
TextAlign
alignment
=
TextAlign
.
center
;
await
tester
.
pumpWidget
(
...
...
@@ -30,8 +29,7 @@ void main() {
expect
(
textFieldWidget
.
textAlign
,
alignment
);
});
testWidgets
(
'Passes scrollPhysics to underlying TextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes scrollPhysics to underlying TextField'
,
(
WidgetTester
tester
)
async
{
const
ScrollPhysics
scrollPhysics
=
ScrollPhysics
();
await
tester
.
pumpWidget
(
...
...
@@ -51,8 +49,7 @@ void main() {
expect
(
textFieldWidget
.
scrollPhysics
,
scrollPhysics
);
});
testWidgets
(
'Passes textAlignVertical to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes textAlignVertical to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
const
TextAlignVertical
textAlignVertical
=
TextAlignVertical
.
bottom
;
await
tester
.
pumpWidget
(
...
...
@@ -72,8 +69,7 @@ void main() {
expect
(
textFieldWidget
.
textAlignVertical
,
textAlignVertical
);
});
testWidgets
(
'Passes textInputAction to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes textInputAction to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -91,8 +87,7 @@ void main() {
expect
(
textFieldWidget
.
textInputAction
,
TextInputAction
.
next
);
});
testWidgets
(
'Passes onEditingComplete to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes onEditingComplete to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
void
onEditingComplete
()
{}
await
tester
.
pumpWidget
(
...
...
@@ -112,8 +107,7 @@ void main() {
expect
(
textFieldWidget
.
onEditingComplete
,
onEditingComplete
);
});
testWidgets
(
'Passes cursor attributes to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Passes cursor attributes to underlying CupertinoTextField'
,
(
WidgetTester
tester
)
async
{
const
double
cursorWidth
=
3.14
;
const
double
cursorHeight
=
6.28
;
const
Radius
cursorRadius
=
Radius
.
circular
(
2
);
...
...
@@ -141,8 +135,7 @@ void main() {
expect
(
textFieldWidget
.
cursorColor
,
cursorColor
);
});
testWidgets
(
'onFieldSubmit callbacks are called'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'onFieldSubmit callbacks are called'
,
(
WidgetTester
tester
)
async
{
bool
_called
=
false
;
await
tester
.
pumpWidget
(
...
...
@@ -183,8 +176,7 @@ void main() {
expect
(
_value
,
'Soup'
);
});
testWidgets
(
'autovalidateMode is passed to super'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'autovalidateMode is passed to super'
,
(
WidgetTester
tester
)
async
{
int
_validateCalled
=
0
;
await
tester
.
pumpWidget
(
...
...
@@ -207,8 +199,7 @@ void main() {
expect
(
_validateCalled
,
2
);
});
testWidgets
(
'validate is called if widget is enabled'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'validate is called if widget is enabled'
,
(
WidgetTester
tester
)
async
{
int
_validateCalled
=
0
;
await
tester
.
pumpWidget
(
...
...
@@ -232,8 +223,7 @@ void main() {
expect
(
_validateCalled
,
2
);
});
testWidgets
(
'readonly text form field will hide cursor by default'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'readonly text form field will hide cursor by default'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -300,8 +290,7 @@ void main() {
});
// Regression test for https://github.com/flutter/flutter/issues/54472.
testWidgets
(
'reset resets the text fields value to the initialValue'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'reset resets the text fields value to the initialValue'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
child:
CupertinoTextFormFieldRow
(
...
...
@@ -310,11 +299,9 @@ void main() {
),
));
await
tester
.
enterText
(
find
.
byType
(
CupertinoTextFormFieldRow
),
'changedValue'
);
await
tester
.
enterText
(
find
.
byType
(
CupertinoTextFormFieldRow
),
'changedValue'
);
final
FormFieldState
<
String
>
state
=
tester
.
state
<
FormFieldState
<
String
>>(
find
.
byType
(
CupertinoTextFormFieldRow
));
final
FormFieldState
<
String
>
state
=
tester
.
state
<
FormFieldState
<
String
>>(
find
.
byType
(
CupertinoTextFormFieldRow
));
state
.
reset
();
expect
(
find
.
text
(
'changedValue'
),
findsNothing
);
...
...
@@ -322,8 +309,7 @@ void main() {
});
// Regression test for https://github.com/flutter/flutter/issues/54472.
testWidgets
(
'didChange changes text fields value'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'didChange changes text fields value'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
child:
CupertinoTextFormFieldRow
(
...
...
@@ -342,8 +328,7 @@ void main() {
expect
(
find
.
text
(
'changedValue'
),
findsOneWidget
);
});
testWidgets
(
'onChanged callbacks value and FormFieldState.value are sync'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'onChanged callbacks value and FormFieldState.value are sync'
,
(
WidgetTester
tester
)
async
{
bool
_called
=
false
;
late
FormFieldState
<
String
>
state
;
...
...
@@ -382,12 +367,10 @@ void main() {
final
CupertinoTextField
widget
=
tester
.
widget
(
find
.
byType
(
CupertinoTextField
));
expect
(
widget
.
autofillHints
,
equals
(
const
<
String
>[
AutofillHints
.
countryName
]));
expect
(
widget
.
autofillHints
,
equals
(
const
<
String
>[
AutofillHints
.
countryName
]));
});
testWidgets
(
'autovalidateMode is passed to super'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'autovalidateMode is passed to super'
,
(
WidgetTester
tester
)
async
{
int
_validateCalled
=
0
;
await
tester
.
pumpWidget
(
...
...
@@ -410,8 +393,7 @@ void main() {
expect
(
_validateCalled
,
1
);
});
testWidgets
(
'AutovalidateMode.always mode shows error from the start'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'AutovalidateMode.always mode shows error from the start'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
CupertinoApp
(
home:
Center
(
...
...
@@ -431,8 +413,7 @@ void main() {
expect
(
errorText
.
data
,
'Error'
);
});
testWidgets
(
'Shows error text upon invalid input'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'Shows error text upon invalid input'
,
(
WidgetTester
tester
)
async
{
final
TextEditingController
controller
=
TextEditingController
(
text:
''
);
await
tester
.
pumpWidget
(
...
...
packages/flutter/test/cupertino/theme_test.dart
View file @
80dd6a40
...
...
@@ -175,7 +175,8 @@ void main() {
expect
(
setEquals
(
description
,
<
String
>{
'brightness'
,
<
String
>{
'brightness'
,
'primaryColor'
,
'primaryContrastingColor'
,
'barBackgroundColor'
,
...
...
@@ -188,7 +189,7 @@ void main() {
'navActionTextStyle'
,
'pickerTextStyle'
,
'dateTimePickerTextStyle'
,
}
}
,
),
isTrue
,
);
...
...
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