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
c5a81d1b
Unverified
Commit
c5a81d1b
authored
Jun 12, 2023
by
Hans Muller
Committed by
GitHub
Jun 12, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update button tests for Material 3 by default (#128628)
parent
353b8bc8
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
698 additions
and
761 deletions
+698
-761
elevated_button_test.dart
packages/flutter/test/material/elevated_button_test.dart
+17
-18
filled_button_test.dart
packages/flutter/test/material/filled_button_test.dart
+20
-22
floating_action_button_location_test.dart
...r/test/material/floating_action_button_location_test.dart
+8
-8
floating_action_button_test.dart
...es/flutter/test/material/floating_action_button_test.dart
+4
-3
material_button_test.dart
packages/flutter/test/material/material_button_test.dart
+44
-24
outlined_button_test.dart
packages/flutter/test/material/outlined_button_test.dart
+25
-27
raw_material_button_test.dart
packages/flutter/test/material/raw_material_button_test.dart
+53
-40
text_button_test.dart
packages/flutter/test/material/text_button_test.dart
+11
-16
toggle_buttons_test.dart
packages/flutter/test/material/toggle_buttons_test.dart
+516
-603
No files found.
packages/flutter/test/material/elevated_button_test.dart
View file @
c5a81d1b
...
...
@@ -738,7 +738,9 @@ void main() {
testWidgets
(
'Does ElevatedButton contribute semantics'
,
(
WidgetTester
tester
)
async
{
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
ElevatedButton
(
...
...
@@ -753,6 +755,7 @@ void main() {
),
),
),
),
);
expect
(
semantics
,
hasSemantics
(
...
...
@@ -790,7 +793,7 @@ void main() {
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Theme
(
data:
ThemeData
(
materialTapTargetSize:
tapTargetSize
),
data:
ThemeData
(
useMaterial3:
false
,
materialTapTargetSize:
tapTargetSize
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
...
...
@@ -838,9 +841,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
// Test was setup using fonts from Material 2, so make sure we always
// test against englishLike2014.
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
@@ -1033,10 +1034,8 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
false
,
colorScheme:
const
ColorScheme
.
light
(),
// Force Material 2 defaults for the typography and size
// default values as the test was designed against these settings.
textTheme:
Typography
.
englishLike2014
,
elevatedButtonTheme:
ElevatedButtonThemeData
(
style:
ElevatedButton
.
styleFrom
(
minimumSize:
const
Size
(
64
,
36
)),
),
...
...
packages/flutter/test/material/filled_button_test.dart
View file @
c5a81d1b
...
...
@@ -14,7 +14,7 @@ import '../widgets/semantics_tester.dart';
void
main
(
)
{
testWidgets
(
'FilledButton, FilledButton.icon defaults'
,
(
WidgetTester
tester
)
async
{
const
ColorScheme
colorScheme
=
ColorScheme
.
light
();
final
ThemeData
theme
=
ThemeData
.
from
(
colorScheme:
colorScheme
);
final
ThemeData
theme
=
ThemeData
.
from
(
useMaterial3:
false
,
colorScheme:
colorScheme
);
// Enabled FilledButton
await
tester
.
pumpWidget
(
...
...
@@ -884,7 +884,9 @@ void main() {
testWidgets
(
'Does FilledButton contribute semantics'
,
(
WidgetTester
tester
)
async
{
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
FilledButton
(
...
...
@@ -899,6 +901,7 @@ void main() {
),
),
),
),
);
expect
(
semantics
,
hasSemantics
(
...
...
@@ -936,7 +939,7 @@ void main() {
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Theme
(
data:
ThemeData
(
materialTapTargetSize:
tapTargetSize
),
data:
ThemeData
(
useMaterial3:
false
,
materialTapTargetSize:
tapTargetSize
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
...
...
@@ -984,9 +987,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
// Test was setup using fonts from Material 2, so make sure we always
// test against englishLike2014.
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
@@ -1179,10 +1180,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
colorScheme:
const
ColorScheme
.
light
(),
// Force Material 2 defaults for the typography and size
// default values as the test was designed against these settings.
textTheme:
Typography
.
englishLike2014
,
useMaterial3:
false
,
filledButtonTheme:
FilledButtonThemeData
(
style:
FilledButton
.
styleFrom
(
minimumSize:
const
Size
(
64
,
36
)),
),
...
...
@@ -1410,7 +1408,7 @@ void main() {
const
Color
borderColor
=
Color
(
0xff4caf50
);
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
colorScheme:
const
ColorScheme
.
light
(),
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Center
(
child:
FilledButton
(
style:
FilledButton
.
styleFrom
(
...
...
@@ -1599,7 +1597,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Scaffold
(
body:
Center
(
child:
Column
(
...
...
packages/flutter/test/material/floating_action_button_location_test.dart
View file @
c5a81d1b
...
...
@@ -693,6 +693,7 @@ void main() {
bool
resizeToAvoidBottomInset
=
true
,
})
{
return
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
false
),
home:
MediaQuery
(
data:
data
,
child:
Scaffold
(
...
...
@@ -1640,15 +1641,14 @@ const double _dockedOffsetY = 544.0;
const
double
_containedOffsetY
=
544.0
+
56.0
/
2
;
const
double
_miniFloatOffsetY
=
_floatOffsetY
+
kMiniButtonOffsetAdjustment
;
Widget
_singleFabScaffold
(
FloatingActionButtonLocation
location
,
{
Widget
_singleFabScaffold
(
FloatingActionButtonLocation
location
,
{
bool
useMaterial3
=
false
,
FloatingActionButtonAnimator
?
animator
,
bool
mini
=
false
,
TextDirection
textDirection
=
TextDirection
.
ltr
,
}
)
{
})
{
return
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
useMaterial3
),
home:
Directionality
(
textDirection:
textDirection
,
child:
Scaffold
(
...
...
packages/flutter/test/material/floating_action_button_test.dart
View file @
c5a81d1b
...
...
@@ -19,9 +19,8 @@ import '../widgets/semantics_tester.dart';
import
'feedback_tester.dart'
;
void
main
(
)
{
final
ThemeData
material3Theme
=
ThemeData
.
light
().
copyWith
(
useMaterial3:
true
);
final
ThemeData
material2Theme
=
ThemeData
.
light
().
copyWith
(
useMaterial3:
false
);
final
ThemeData
material3Theme
=
ThemeData
(
useMaterial3:
true
);
final
ThemeData
material2Theme
=
ThemeData
(
useMaterial3:
false
);
testWidgets
(
'Floating Action Button control test'
,
(
WidgetTester
tester
)
async
{
bool
didPressButton
=
false
;
...
...
@@ -950,6 +949,7 @@ void main() {
const
Color
splashColor
=
Color
(
0xcafefeed
);
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
material2Theme
,
home:
FloatingActionButton
(
onPressed:
()
{},
splashColor:
splashColor
,
...
...
@@ -1051,6 +1051,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
material2Theme
,
home:
Scaffold
(
floatingActionButton:
FloatingActionButton
.
extended
(
label:
const
Text
(
''
,
key:
labelKey
),
...
...
packages/flutter/test/material/material_button_test.dart
View file @
c5a81d1b
...
...
@@ -23,13 +23,16 @@ void main() {
// Enabled MaterialButton
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MaterialButton
(
onPressed:
()
{
},
child:
const
Text
(
'button'
),
),
),
),
);
Material
material
=
tester
.
widget
<
Material
>(
rawButtonMaterial
);
expect
(
material
.
animationDuration
,
const
Duration
(
milliseconds:
200
));
...
...
@@ -68,13 +71,16 @@ void main() {
// Disabled MaterialButton
await
tester
.
pumpWidget
(
const
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
const
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MaterialButton
(
onPressed:
null
,
child:
Text
(
'button'
),
),
),
),
);
material
=
tester
.
widget
<
Material
>(
rawButtonMaterial
);
expect
(
material
.
animationDuration
,
const
Duration
(
milliseconds:
200
));
...
...
@@ -442,6 +448,7 @@ void main() {
textDirection:
TextDirection
.
ltr
,
child:
Theme
(
data:
ThemeData
(
useMaterial3:
false
,
materialTapTargetSize:
MaterialTapTargetSize
.
shrinkWrap
,
),
child:
buttonWidget
,
...
...
@@ -488,6 +495,7 @@ void main() {
textDirection:
TextDirection
.
ltr
,
child:
Theme
(
data:
ThemeData
(
useMaterial3:
false
,
highlightColor:
themeHighlightColor1
,
splashColor:
themeSplashColor1
,
materialTapTargetSize:
MaterialTapTargetSize
.
shrinkWrap
,
...
...
@@ -516,6 +524,7 @@ void main() {
textDirection:
TextDirection
.
ltr
,
child:
Theme
(
data:
ThemeData
(
useMaterial3:
false
,
highlightColor:
themeHighlightColor2
,
splashColor:
themeSplashColor2
,
materialTapTargetSize:
MaterialTapTargetSize
.
shrinkWrap
,
...
...
@@ -574,7 +583,10 @@ void main() {
);
// enabled button
await
tester
.
pumpWidget
(
Directionality
(
await
tester
.
pumpWidget
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
MaterialButton
(
...
...
@@ -582,7 +594,9 @@ void main() {
onPressed:
()
{
/* to make sure the button is enabled */
},
),
),
));
),
),
);
expect
(
semantics
,
hasSemantics
(
TestSemantics
.
root
(
...
...
@@ -607,7 +621,10 @@ void main() {
));
// disabled button
await
tester
.
pumpWidget
(
const
Directionality
(
await
tester
.
pumpWidget
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
const
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
MaterialButton
(
...
...
@@ -615,7 +632,9 @@ void main() {
child:
Text
(
'Button'
),
),
),
));
),
),
);
expect
(
semantics
,
hasSemantics
(
TestSemantics
.
root
(
...
...
@@ -773,6 +792,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
packages/flutter/test/material/outlined_button_test.dart
View file @
c5a81d1b
...
...
@@ -42,7 +42,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
StadiumBorder
(
side:
BorderSide
(
color:
colorScheme
.
outline
))
...
...
@@ -82,7 +82,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
StadiumBorder
(
side:
BorderSide
(
color:
colorScheme
.
outline
))
...
...
@@ -125,7 +125,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
StadiumBorder
(
side:
BorderSide
(
color:
colorScheme
.
outline
))
...
...
@@ -160,7 +160,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
StadiumBorder
(
side:
BorderSide
(
color:
colorScheme
.
onSurface
.
withOpacity
(
0.12
)))
...
...
@@ -966,7 +966,9 @@ void main() {
testWidgets
(
'OutlinedButton contributes semantics'
,
(
WidgetTester
tester
)
async
{
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
OutlinedButton
(
...
...
@@ -981,6 +983,7 @@ void main() {
),
),
),
),
);
expect
(
semantics
,
hasSemantics
(
...
...
@@ -1011,8 +1014,7 @@ void main() {
testWidgets
(
'OutlinedButton scales textScaleFactor'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -1041,7 +1043,7 @@ void main() {
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -1072,8 +1074,7 @@ void main() {
// Set text scale large enough to expand text and button.
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -1131,7 +1132,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
@@ -1261,10 +1262,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
colorScheme:
const
ColorScheme
.
light
(),
// Force Material 2 defaults for the typography and size
// default values as the test was designed against these settings.
textTheme:
Typography
.
englishLike2014
,
useMaterial3:
false
,
outlinedButtonTheme:
OutlinedButtonThemeData
(
style:
OutlinedButton
.
styleFrom
(
minimumSize:
const
Size
(
64
,
36
)),
),
...
...
@@ -1407,7 +1405,7 @@ void main() {
testWidgets
(
'Override OutlinedButton default padding'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
.
from
(
colorScheme:
const
ColorScheme
.
light
()
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Builder
(
builder:
(
BuildContext
context
)
{
return
MediaQuery
(
...
...
@@ -1677,7 +1675,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Scaffold
(
body:
Center
(
child:
Column
(
...
...
packages/flutter/test/material/raw_material_button_test.dart
View file @
c5a81d1b
...
...
@@ -17,7 +17,9 @@ void main() {
bool
pressed
=
false
;
const
Color
splashColor
=
Color
(
0xff00ff00
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
RawMaterialButton
(
...
...
@@ -27,6 +29,7 @@ void main() {
),
),
),
),
);
await
tester
.
tap
(
find
.
text
(
'BUTTON'
));
...
...
@@ -45,7 +48,9 @@ void main() {
final
FocusNode
focusNode
=
FocusNode
(
debugLabel:
'Test Button'
);
const
Color
splashColor
=
Color
(
0xff00ff00
);
await
tester
.
pumpWidget
(
Shortcuts
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Shortcuts
(
shortcuts:
const
<
ShortcutActivator
,
Intent
>{
SingleActivator
(
LogicalKeyboardKey
.
enter
):
ActivateIntent
(),
SingleActivator
(
LogicalKeyboardKey
.
space
):
ActivateIntent
(),
...
...
@@ -62,6 +67,7 @@ void main() {
),
),
),
),
);
focusNode
.
requestFocus
();
...
...
@@ -175,7 +181,9 @@ void main() {
const
Color
fillColor
=
Color
(
0xFFEF5350
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
RawMaterialButton
(
...
...
@@ -188,6 +196,7 @@ void main() {
),
),
),
),
);
final
Offset
center
=
tester
.
getCenter
(
find
.
byType
(
InkWell
));
...
...
@@ -207,7 +216,9 @@ void main() {
const
Color
fillColor
=
Color
(
0xFFEF5350
);
await
tester
.
pumpWidget
(
Directionality
(
Theme
(
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
RawMaterialButton
(
...
...
@@ -220,6 +231,7 @@ void main() {
),
),
),
),
);
final
Offset
top
=
tester
.
getRect
(
find
.
byType
(
InkWell
)).
topCenter
;
...
...
@@ -520,6 +532,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
packages/flutter/test/material/text_button_test.dart
View file @
c5a81d1b
...
...
@@ -42,7 +42,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
const
StadiumBorder
()
:
const
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
4
))));
...
...
@@ -77,7 +77,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
const
StadiumBorder
()
:
const
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
4
))));
...
...
@@ -115,7 +115,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
const
StadiumBorder
()
:
const
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
4
))));
...
...
@@ -145,7 +145,7 @@ void main() {
expect
(
material
.
clipBehavior
,
Clip
.
none
);
expect
(
material
.
color
,
Colors
.
transparent
);
expect
(
material
.
elevation
,
0.0
);
expect
(
material
.
shadowColor
,
material3
?
null
:
const
Color
(
0xff000000
));
expect
(
material
.
shadowColor
,
material3
?
Colors
.
transparent
:
const
Color
(
0xff000000
));
expect
(
material
.
shape
,
material3
?
const
StadiumBorder
()
:
const
RoundedRectangleBorder
(
borderRadius:
BorderRadius
.
all
(
Radius
.
circular
(
4
))));
...
...
@@ -580,8 +580,7 @@ void main() {
testWidgets
(
'Does TextButton scale with font scale changes'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -603,8 +602,7 @@ void main() {
// textScaleFactor expands text, but not button.
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -632,8 +630,7 @@ void main() {
// Set text scale large enough to expand text and button.
await
tester
.
pumpWidget
(
Theme
(
// Force Material 2 typography.
data:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
data:
ThemeData
(
useMaterial3:
false
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
MediaQuery
(
...
...
@@ -656,7 +653,7 @@ void main() {
testWidgets
(
'TextButton size is configurable by ThemeData.materialTapTargetSize'
,
(
WidgetTester
tester
)
async
{
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Theme
(
data:
ThemeData
(
materialTapTargetSize:
tapTargetSize
),
data:
ThemeData
(
useMaterial3:
false
,
materialTapTargetSize:
tapTargetSize
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
...
...
@@ -925,7 +922,7 @@ void main() {
Future
<
void
>
buildTest
(
VisualDensity
visualDensity
,
{
bool
useText
=
false
})
async
{
return
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Directionality
(
textDirection:
TextDirection
.
rtl
,
child:
Center
(
...
...
@@ -1065,10 +1062,8 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
useMaterial3:
false
,
colorScheme:
const
ColorScheme
.
light
(),
// Force Material 2 defaults for the typography and size
// default values as the test was designed against these settings.
textTheme:
Typography
.
englishLike2014
,
textButtonTheme:
TextButtonThemeData
(
style:
TextButton
.
styleFrom
(
minimumSize:
const
Size
(
64
,
36
)),
),
...
...
@@ -1484,7 +1479,7 @@ void main() {
await
tester
.
pumpWidget
(
MaterialApp
(
theme:
ThemeData
(
textTheme:
Typography
.
englishLike2014
),
theme:
ThemeData
(
useMaterial3:
false
),
home:
Scaffold
(
body:
Center
(
child:
Column
(
...
...
packages/flutter/test/material/toggle_buttons_test.dart
View file @
c5a81d1b
...
...
@@ -17,10 +17,22 @@ import '../widgets/semantics_tester.dart';
const
double
_defaultBorderWidth
=
1.0
;
Widget
boilerplate
(
{
required
Widget
child
})
{
return
Directionality
(
Widget
boilerplate
(
{
bool
?
useMaterial3
,
MaterialTapTargetSize
?
tapTargetSize
,
required
Widget
child
,
})
{
return
Theme
(
data:
ThemeData
(
useMaterial3:
useMaterial3
,
materialTapTargetSize:
tapTargetSize
,
),
child:
Directionality
(
textDirection:
TextDirection
.
ltr
,
child:
Center
(
child:
child
),
child:
Center
(
child:
Material
(
child:
child
),
),
),
);
}
...
...
@@ -34,8 +46,7 @@ void main() {
}
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
onPressed:
(
int
index
)
{},
isSelected:
const
<
bool
>[
false
,
true
],
...
...
@@ -45,7 +56,6 @@ void main() {
],
),
),
),
);
expect
(
...
...
@@ -70,8 +80,7 @@ void main() {
final
List
<
bool
>
isSelected
=
<
bool
>[
false
,
true
];
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
StatefulBuilder
(
StatefulBuilder
(
builder:
(
BuildContext
context
,
StateSetter
setState
)
{
return
boilerplate
(
child:
ToggleButtons
(
...
...
@@ -89,7 +98,6 @@ void main() {
);
},
),
),
);
expect
(
isSelected
[
0
],
isFalse
);
...
...
@@ -132,8 +140,7 @@ void main() {
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
isSelected
,
children:
const
<
Widget
>[
...
...
@@ -142,7 +149,6 @@ void main() {
],
),
),
),
);
expect
(
isSelected
[
0
],
isFalse
);
...
...
@@ -178,8 +184,7 @@ void main() {
(
WidgetTester
tester
)
async
{
await
expectLater
(
()
=>
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
children:
const
<
Widget
>[
...
...
@@ -189,7 +194,6 @@ void main() {
),
),
),
),
throwsA
(
isAssertionError
.
having
(
(
AssertionError
error
)
=>
error
.
toString
(),
'.toString()'
,
...
...
@@ -205,8 +209,7 @@ void main() {
testWidgets
(
'Default text style is applied'
,
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -216,7 +219,6 @@ void main() {
],
),
),
),
);
TextStyle
textStyle
;
...
...
@@ -237,8 +239,7 @@ void main() {
testWidgets
(
'Custom text style except color is applied'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -253,7 +254,6 @@ void main() {
],
),
),
),
);
TextStyle
textStyle
;
...
...
@@ -276,8 +276,7 @@ void main() {
testWidgets
(
'Default BoxConstraints'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
false
,
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -288,7 +287,6 @@ void main() {
],
),
),
),
);
final
Rect
firstRect
=
tester
.
getRect
(
find
.
byType
(
TextButton
).
at
(
0
));
...
...
@@ -305,8 +303,7 @@ void main() {
testWidgets
(
'Custom BoxConstraints'
,
(
WidgetTester
tester
)
async
{
// Test for minimum constraints
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
constraints:
const
BoxConstraints
(
minWidth:
50.0
,
...
...
@@ -321,7 +318,6 @@ void main() {
],
),
),
),
);
Rect
firstRect
=
tester
.
getRect
(
find
.
byType
(
TextButton
).
at
(
0
));
...
...
@@ -336,8 +332,7 @@ void main() {
// Test for maximum constraints
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
tapTargetSize:
MaterialTapTargetSize
.
shrinkWrap
,
constraints:
const
BoxConstraints
(
...
...
@@ -353,7 +348,6 @@ void main() {
],
),
),
),
);
firstRect
=
tester
.
getRect
(
find
.
byType
(
TextButton
).
at
(
0
));
...
...
@@ -384,8 +378,7 @@ void main() {
}
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -397,7 +390,6 @@ void main() {
],
),
),
),
);
// Default enabled color
...
...
@@ -411,8 +403,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -424,7 +415,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
// Default selected color
...
...
@@ -438,8 +428,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
children:
const
<
Widget
>[
...
...
@@ -450,7 +439,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
// Default disabled color
...
...
@@ -491,8 +479,7 @@ void main() {
expect
(
theme
.
colorScheme
.
onSurface
.
withOpacity
(
0.38
),
isNot
(
disabledColor
));
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
color:
enabledColor
,
isSelected:
const
<
bool
>[
false
],
...
...
@@ -505,7 +492,6 @@ void main() {
],
),
),
),
);
// Custom enabled color
...
...
@@ -513,8 +499,7 @@ void main() {
expect
(
iconTheme
(
Icons
.
check
).
data
.
color
,
enabledColor
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
selectedColor:
selectedColor
,
isSelected:
const
<
bool
>[
true
],
...
...
@@ -527,7 +512,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
// Custom selected color
...
...
@@ -535,8 +519,7 @@ void main() {
expect
(
iconTheme
(
Icons
.
check
).
data
.
color
,
selectedColor
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
disabledColor:
disabledColor
,
isSelected:
const
<
bool
>[
true
],
...
...
@@ -548,7 +531,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
// Custom disabled color
...
...
@@ -560,8 +542,7 @@ void main() {
testWidgets
(
'Default button fillColor - unselected'
,
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -572,7 +553,6 @@ void main() {
],
),
),
),
);
final
Material
material
=
tester
.
widget
<
Material
>(
find
.
descendant
(
...
...
@@ -589,8 +569,7 @@ void main() {
testWidgets
(
'Default button fillColor - selected'
,
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -601,7 +580,6 @@ void main() {
],
),
),
),
);
final
Material
material
=
tester
.
widget
<
Material
>(
find
.
descendant
(
...
...
@@ -618,8 +596,7 @@ void main() {
testWidgets
(
'Default button fillColor - disabled'
,
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
children:
const
<
Widget
>[
...
...
@@ -629,7 +606,6 @@ void main() {
],
),
),
),
);
final
Material
material
=
tester
.
widget
<
Material
>(
find
.
descendant
(
...
...
@@ -646,8 +622,7 @@ void main() {
testWidgets
(
'Custom button fillColor'
,
(
WidgetTester
tester
)
async
{
const
Color
customFillColor
=
Colors
.
green
;
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
fillColor:
customFillColor
,
isSelected:
const
<
bool
>[
true
],
...
...
@@ -659,7 +634,6 @@ void main() {
],
),
),
),
);
final
Material
material
=
tester
.
widget
<
Material
>(
find
.
descendant
(
...
...
@@ -684,8 +658,7 @@ void main() {
const
Color
selectedFillColor
=
Colors
.
yellow
;
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
fillColor:
selectedFillColor
,
isSelected:
const
<
bool
>[
false
,
true
],
...
...
@@ -696,7 +669,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
...
...
@@ -705,8 +677,7 @@ void main() {
expect
(
buttonColor
(
'Second child'
).
color
,
selectedFillColor
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
fillColor:
selectedFillColor
,
isSelected:
const
<
bool
>[
false
,
true
],
...
...
@@ -716,7 +687,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
...
...
@@ -746,8 +716,7 @@ void main() {
}
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
fillColor:
MaterialStateColor
.
resolveWith
(
getFillColor
),
isSelected:
const
<
bool
>[
false
,
true
],
...
...
@@ -758,7 +727,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
...
...
@@ -768,8 +736,7 @@ void main() {
// disabled
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
fillColor:
MaterialStateColor
.
resolveWith
(
getFillColor
),
isSelected:
const
<
bool
>[
false
,
true
],
...
...
@@ -779,7 +746,6 @@ void main() {
],
),
),
),
);
await
tester
.
pumpAndSettle
();
...
...
@@ -792,8 +758,7 @@ void main() {
final
ThemeData
theme
=
ThemeData
();
final
FocusNode
focusNode
=
FocusNode
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -803,7 +768,6 @@ void main() {
],
),
),
),
);
final
Offset
center
=
tester
.
getCenter
(
find
.
text
(
'First child'
));
...
...
@@ -859,8 +823,7 @@ void main() {
final
ThemeData
theme
=
ThemeData
();
final
FocusNode
focusNode
=
FocusNode
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -870,7 +833,6 @@ void main() {
],
),
),
),
);
final
Offset
center
=
tester
.
getCenter
(
find
.
text
(
'First child'
));
...
...
@@ -930,8 +892,7 @@ void main() {
final
FocusNode
focusNode
=
FocusNode
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
splashColor:
splashColor
,
highlightColor:
highlightColor
,
...
...
@@ -945,7 +906,6 @@ void main() {
],
),
),
),
);
final
Offset
center
=
tester
.
getCenter
(
find
.
text
(
'First child'
));
...
...
@@ -999,8 +959,7 @@ void main() {
final
ThemeData
theme
=
ThemeData
();
const
double
defaultBorderWidth
=
1.0
;
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -1009,7 +968,6 @@ void main() {
],
),
),
),
);
RenderObject
toggleButtonRenderObject
;
...
...
@@ -1029,8 +987,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -1039,7 +996,6 @@ void main() {
],
),
),
),
);
toggleButtonRenderObject
=
tester
.
allRenderObjects
.
firstWhere
((
RenderObject
object
)
{
...
...
@@ -1058,8 +1014,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
],
children:
const
<
Widget
>[
...
...
@@ -1067,7 +1022,6 @@ void main() {
],
),
),
),
);
toggleButtonRenderObject
=
tester
.
allRenderObjects
.
firstWhere
((
RenderObject
object
)
{
...
...
@@ -1096,8 +1050,7 @@ void main() {
const
double
customWidth
=
2.0
;
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
borderColor:
borderColor
,
borderWidth:
customWidth
,
...
...
@@ -1108,7 +1061,6 @@ void main() {
],
),
),
),
);
RenderObject
toggleButtonRenderObject
;
...
...
@@ -1128,8 +1080,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
selectedBorderColor:
selectedBorderColor
,
borderWidth:
customWidth
,
...
...
@@ -1140,7 +1091,6 @@ void main() {
],
),
),
),
);
toggleButtonRenderObject
=
tester
.
allRenderObjects
.
firstWhere
((
RenderObject
object
)
{
...
...
@@ -1159,8 +1109,7 @@ void main() {
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
disabledBorderColor:
disabledBorderColor
,
borderWidth:
customWidth
,
...
...
@@ -1170,7 +1119,6 @@ void main() {
],
),
),
),
);
toggleButtonRenderObject
=
tester
.
allRenderObjects
.
firstWhere
((
RenderObject
object
)
{
...
...
@@ -1204,14 +1152,12 @@ void main() {
];
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
,
false
],
children:
children
,
),
),
),
);
final
List
<
Widget
>
toggleButtons
=
tester
.
allWidgets
.
where
((
Widget
widget
)
{
...
...
@@ -1247,14 +1193,12 @@ void main() {
];
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
,
false
],
children:
children
,
),
),
),
);
List
<
Widget
>
toggleButtons
;
...
...
@@ -1299,15 +1243,13 @@ void main() {
// Update border width and widget sized to verify layout updates correctly
const
double
customBorderWidth
=
5.0
;
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
borderWidth:
customBorderWidth
,
isSelected:
const
<
bool
>[
false
,
true
,
false
],
children:
childrenRebuilt
,
),
),
),
);
toggleButtons
=
tester
.
allWidgets
.
where
((
Widget
widget
)
{
...
...
@@ -1331,8 +1273,8 @@ void main() {
// The point size of the fonts must be a multiple of 4 until
// https://github.com/flutter/flutter/issues/122066 is resolved.
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
useMaterial3:
false
,
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
baseline
,
textBaseline:
TextBaseline
.
alphabetic
,
...
...
@@ -1357,7 +1299,6 @@ void main() {
],
),
),
),
);
// The test font extends 0.25 * fontSize below the baseline.
...
...
@@ -1431,8 +1372,7 @@ void main() {
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
,
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -1443,7 +1383,6 @@ void main() {
],
),
),
),
);
final
List
<
RenderObject
>
toggleButtonRenderObject
=
tester
.
allRenderObjects
.
where
((
RenderObject
object
)
{
...
...
@@ -1513,8 +1452,7 @@ void main() {
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
direction:
Axis
.
vertical
,
isSelected:
const
<
bool
>[
false
,
true
,
false
],
...
...
@@ -1526,7 +1464,6 @@ void main() {
],
),
),
),
);
// The children should be laid out along vertical and the first child at top.
...
...
@@ -1601,8 +1538,7 @@ void main() {
'VerticalDirection test when direction is vertical.'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
direction:
Axis
.
vertical
,
verticalDirection:
VerticalDirection
.
up
,
...
...
@@ -1615,7 +1551,6 @@ void main() {
],
),
),
),
);
// The children should be laid out along vertical and the last child at top.
...
...
@@ -1627,10 +1562,9 @@ void main() {
testWidgets
(
'Tap target size is configurable by ThemeData.materialTapTargetSize'
,
(
WidgetTester
tester
)
async
{
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Theme
(
data:
ThemeData
(
materialTapTargetSize:
tapTargetSize
),
child:
Material
(
child:
boilerplate
(
return
boilerplate
(
useMaterial3:
false
,
tapTargetSize:
tapTargetSize
,
child:
ToggleButtons
(
key:
key
,
constraints:
const
BoxConstraints
(
minWidth:
32.0
,
minHeight:
32.0
),
...
...
@@ -1642,8 +1576,6 @@ void main() {
Text
(
'Third'
),
],
),
),
),
);
}
...
...
@@ -1658,8 +1590,8 @@ void main() {
testWidgets
(
'Tap target size is configurable'
,
(
WidgetTester
tester
)
async
{
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Material
(
child:
boilerplate
(
return
boilerplate
(
useMaterial3:
false
,
child:
ToggleButtons
(
key:
key
,
tapTargetSize:
tapTargetSize
,
...
...
@@ -1672,7 +1604,6 @@ void main() {
Text
(
'Third'
),
],
),
),
);
}
...
...
@@ -1687,8 +1618,7 @@ void main() {
testWidgets
(
'Tap target size is configurable for vertical axis'
,
(
WidgetTester
tester
)
async
{
Widget
buildFrame
(
MaterialTapTargetSize
tapTargetSize
,
Key
key
)
{
return
Material
(
child:
boilerplate
(
return
boilerplate
(
child:
ToggleButtons
(
key:
key
,
tapTargetSize:
tapTargetSize
,
...
...
@@ -1702,7 +1632,6 @@ void main() {
Text
(
'3'
),
],
),
),
);
}
...
...
@@ -1717,10 +1646,10 @@ void main() {
// Regression test for https://github.com/flutter/flutter/issues/73725
testWidgets
(
'Border radius paint test when there is only one button'
,
(
WidgetTester
tester
)
async
{
final
ThemeData
theme
=
ThemeData
();
final
ThemeData
theme
=
ThemeData
(
useMaterial3:
false
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
useMaterial3:
false
,
child:
RepaintBoundary
(
child:
ToggleButtons
(
borderRadius:
const
BorderRadius
.
all
(
Radius
.
circular
(
7.0
)),
...
...
@@ -1732,7 +1661,6 @@ void main() {
),
),
),
),
);
// The only button should be laid out at the center of the screen.
...
...
@@ -1764,8 +1692,8 @@ void main() {
testWidgets
(
'Border radius paint test when Radius.x or Radius.y equal 0.0'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
useMaterial3:
false
,
child:
RepaintBoundary
(
child:
ToggleButtons
(
borderRadius:
const
BorderRadius
.
only
(
...
...
@@ -1782,7 +1710,6 @@ void main() {
),
),
),
),
);
await
expectLater
(
...
...
@@ -1831,8 +1758,7 @@ void main() {
testWidgets
(
'ToggleButtons changes mouse cursor when the button is hovered'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
MouseRegion
(
cursor:
SystemMouseCursors
.
forbidden
,
child:
ToggleButtons
(
...
...
@@ -1846,7 +1772,6 @@ void main() {
),
),
),
),
);
final
TestGesture
gesture
=
await
tester
.
createGesture
(
kind:
PointerDeviceKind
.
mouse
,
pointer:
1
);
...
...
@@ -1858,8 +1783,7 @@ void main() {
// Test default cursor
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
MouseRegion
(
cursor:
SystemMouseCursors
.
forbidden
,
child:
ToggleButtons
(
...
...
@@ -1872,15 +1796,13 @@ void main() {
),
),
),
),
);
expect
(
RendererBinding
.
instance
.
mouseTracker
.
debugDeviceActiveCursor
(
1
),
SystemMouseCursors
.
click
);
// Test default cursor when disabled
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
MouseRegion
(
cursor:
SystemMouseCursors
.
forbidden
,
child:
ToggleButtons
(
...
...
@@ -1892,7 +1814,6 @@ void main() {
),
),
),
),
);
expect
(
RendererBinding
.
instance
.
mouseTracker
.
debugDeviceActiveCursor
(
1
),
SystemMouseCursors
.
basic
);
...
...
@@ -1901,8 +1822,7 @@ void main() {
testWidgets
(
'ToggleButtons focus, hover, and highlight elevations are 0'
,
(
WidgetTester
tester
)
async
{
final
List
<
FocusNode
>
focusNodes
=
<
FocusNode
>[
FocusNode
(),
FocusNode
()];
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
true
,
false
],
onPressed:
(
int
index
)
{
},
...
...
@@ -1910,7 +1830,6 @@ void main() {
children:
const
<
Widget
>[
Text
(
'one'
),
Text
(
'two'
)],
),
),
),
);
double
toggleButtonElevation
(
String
text
)
{
...
...
@@ -1948,8 +1867,7 @@ void main() {
testWidgets
(
'Toggle buttons height matches MaterialTapTargetSize.padded height'
,
(
WidgetTester
tester
)
async
{
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
false
,
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -1960,7 +1878,6 @@ void main() {
],
),
),
),
);
final
Rect
firstRect
=
tester
.
getRect
(
find
.
byType
(
TextButton
).
at
(
0
));
...
...
@@ -1976,8 +1893,7 @@ void main() {
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
false
,
false
],
onPressed:
(
int
index
)
{},
...
...
@@ -1992,7 +1908,6 @@ void main() {
],
),
),
),
);
// Button's height is constrained to `32.0`.
...
...
@@ -2064,8 +1979,7 @@ void main() {
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
Material
(
child:
boilerplate
(
boilerplate
(
child:
ToggleButtons
(
isSelected:
const
<
bool
>[
false
,
true
],
onPressed:
(
int
index
)
{},
...
...
@@ -2075,7 +1989,6 @@ void main() {
],
),
),
),
);
expect
(
...
...
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