Use exact Ahem and exact dimensions for Cupertino button test (#8561)

* Use exact Ahem and exact dimensions for test

* use ‘px’ everywhere
This commit is contained in:
xster
2017-03-03 14:30:33 -08:00
committed by GitHub
parent 54d9541638
commit f894edebff
2 changed files with 23 additions and 13 deletions

View File

@@ -24,7 +24,7 @@ final TextStyle _kBackgroundButtonTextStyle = _kButtonTextStyle.copyWith(
const EdgeInsets _kButtonPadding = const EdgeInsets.all(16.0);
const EdgeInsets _kBackgroundButtonPadding =
const EdgeInsets.symmetric(vertical: 16.0, horizontal: 64.0);
const EdgeInsets.symmetric(vertical: 16.0, horizontal: 64.0);
/// An iOS style button.
///

View File

@@ -7,56 +7,66 @@ import 'package:flutter/scheduler.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
const TextStyle testStyle = const TextStyle(
fontFamily: 'Ahem',
fontSize: 10.0,
);
void main() {
testWidgets('Layout minimum size', (WidgetTester tester) async {
await tester.pumpWidget(
new Center(child: new CupertinoButton(child: new Text(' '), onPressed: null))
new Center(child: new CupertinoButton(
child: new Text('X', style: testStyle),
onPressed: null,
))
);
RenderBox buttonBox = tester.renderObject(find.byType(CupertinoButton));
expect(
buttonBox.size,
greaterThanOrEqualTo(const Size.square(48.0)),
);
expect(
buttonBox.size,
lessThan(const Size.square(100.0)),
// 1 10px character + 16px * 2 is smaller than the 48px minimum.
const Size.square(48.0),
);
});
testWidgets('Size grows with text', (WidgetTester tester) async {
await tester.pumpWidget(
new Center(child: new CupertinoButton(child: new Text('blah blah blah'), onPressed: null))
new Center(child: new CupertinoButton(
child: new Text('XXXX', style: testStyle),
onPressed: null,
))
);
RenderBox buttonBox = tester.renderObject(find.byType(CupertinoButton));
expect(
buttonBox.size.width,
greaterThan(48.0),
// 4 10px character + 16px * 2 = 72.
72.0,
);
});
testWidgets('Button with background is wider', (WidgetTester tester) async {
await tester.pumpWidget(new Center(child: new CupertinoButton(
child: new Text(' '),
child: new Text('X', style: testStyle),
onPressed: null,
color: new Color(0xFFFFFFFF),
)));
RenderBox buttonBox = tester.renderObject(find.byType(CupertinoButton));
expect(
buttonBox.size.width,
greaterThan(120.0),
// 1 10px character + 64 * 2 = 138 for buttons with background.
138.0,
);
});
testWidgets('Custom padding', (WidgetTester tester) async {
await tester.pumpWidget(new Center(child: new CupertinoButton(
child: new Text(' '),
child: new Text(' ', style: testStyle),
onPressed: null,
padding: new EdgeInsets.all(100.0),
)));
RenderBox buttonBox = tester.renderObject(find.byType(CupertinoButton));
expect(
buttonBox.size,
greaterThan(const Size.square(100.0)),
const Size.square(210.0),
);
});