-
Notifications
You must be signed in to change notification settings - Fork 26.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test material text field example (#147864)
Adds simple tests to the last two [TextField](https://api.flutter.dev/flutter/material/TextField-class.html) examples as part of fixing #130459.
- Loading branch information
1 parent
7d92700
commit 4ecc1b0
Showing
3 changed files
with
73 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
examples/api/test/material/text_field/text_field.1_test.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Copyright 2014 The Flutter Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_api_samples/material/text_field/text_field.1.dart' as example; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
|
||
void main() { | ||
testWidgets('Dialog shows submitted TextField value', (WidgetTester tester) async { | ||
// This example is also used to illustrate special character counting. | ||
const String sampleText = 'Some sample text 👨👩👦'; | ||
await tester.pumpWidget(const example.TextFieldExampleApp()); | ||
|
||
expect(find.byType(TextField), findsOneWidget); | ||
expect(find.byType(AlertDialog), findsNothing); | ||
expect(find.text('Thanks!'), findsNothing); | ||
expect(find.widgetWithText(TextButton, 'OK'), findsNothing); | ||
expect(find.text('You typed "$sampleText", which has the length ${sampleText.length}.'), findsNothing); | ||
|
||
await tester.enterText(find.byType(TextField), sampleText); | ||
await tester.testTextInput.receiveAction(TextInputAction.done); | ||
await tester.pumpAndSettle(); | ||
expect(find.byType(AlertDialog), findsOneWidget); | ||
expect(find.text('Thanks!'), findsOneWidget); | ||
expect(find.widgetWithText(TextButton, 'OK'), findsOneWidget); | ||
expect(find.text('You typed "$sampleText", which has length ${sampleText.characters.length}.'), findsOneWidget); | ||
}); | ||
} |
44 changes: 44 additions & 0 deletions
44
examples/api/test/material/text_field/text_field.2_test.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
// Copyright 2014 The Flutter Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
import 'package:flutter/material.dart'; | ||
import 'package:flutter_api_samples/material/text_field/text_field.2.dart' as example; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
|
||
void main() { | ||
testWidgets('Creates styled text fields', (WidgetTester tester) async { | ||
await tester.pumpWidget(const example.TextFieldExamplesApp()); | ||
|
||
expect(find.text('TextField Examples'), findsOneWidget); | ||
expect(find.byType(TextField), findsNWidgets(2)); | ||
expect(find.byType(example.FilledTextFieldExample), findsOneWidget); | ||
expect(find.byType(example.OutlinedTextFieldExample), findsOneWidget); | ||
|
||
final TextField filled = tester.widget<TextField>(find.descendant( | ||
of: find.byType(example.FilledTextFieldExample), | ||
matching: find.byType(TextField), | ||
)); | ||
expect(filled.decoration!.prefixIcon, isA<Icon>() | ||
.having((Icon icon) => icon.icon, 'icon', Icons.search)); | ||
expect(filled.decoration!.suffixIcon, isA<Icon>() | ||
.having((Icon icon) => icon.icon, 'icon', Icons.clear)); | ||
expect(filled.decoration!.labelText, 'Filled'); | ||
expect(filled.decoration!.hintText, 'hint text'); | ||
expect(filled.decoration!.helperText, 'supporting text'); | ||
expect(filled.decoration!.filled, true); | ||
|
||
final TextField outlined = tester.widget<TextField>(find.descendant( | ||
of: find.byType(example.OutlinedTextFieldExample), | ||
matching: find.byType(TextField), | ||
)); | ||
expect(outlined.decoration!.prefixIcon, isA<Icon>() | ||
.having((Icon icon) => icon.icon, 'icon', Icons.search)); | ||
expect(outlined.decoration!.suffixIcon, isA<Icon>() | ||
.having((Icon icon) => icon.icon, 'icon', Icons.clear)); | ||
expect(outlined.decoration!.labelText, 'Outlined'); | ||
expect(outlined.decoration!.hintText, 'hint text'); | ||
expect(outlined.decoration!.helperText, 'supporting text'); | ||
expect(outlined.decoration!.border, isA<OutlineInputBorder>()); | ||
}); | ||
} |