diff --git a/test/markdown_text_input_test.dart b/test/markdown_text_input_test.dart index b2f8795..759b717 100644 --- a/test/markdown_text_input_test.dart +++ b/test/markdown_text_input_test.dart @@ -1,11 +1,24 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:markdown_editable_textinput/format_markdown.dart'; import 'package:markdown_editable_textinput/markdown_text_input.dart'; void main() { + Widget component(String initialValue, Function updateValue) => MaterialApp( + home: Scaffold( + body: MarkdownTextInput( + updateValue, + initialValue, + actions: MarkdownType.values, + insertLinksByDialog: false, + ), + ), + ); + testWidgets('MarkdownTextInput has all buttons', (WidgetTester tester) async { - await tester.pumpWidget(MaterialApp(home: Scaffold(body: MarkdownTextInput(print, 'initial value')))); + await tester.pumpWidget(component('initial value', () => null)); + final boldKey = const Key('bold_button'); final italicKey = const Key('italic_button'); final strikethroughKey = const Key('strikethrough_button'); @@ -41,11 +54,7 @@ void main() { testWidgets('MarkdownTextInput make bold from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -58,11 +67,7 @@ void main() { testWidgets('MarkdownTextInput make italic from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -75,11 +80,7 @@ void main() { testWidgets('MarkdownTextInput make strikethrough from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -92,11 +93,7 @@ void main() { testWidgets('MarkdownTextInput make code from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -109,11 +106,7 @@ void main() { testWidgets('MarkdownTextInput make link from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -126,11 +119,7 @@ void main() { testWidgets('MarkdownTextInput make list from selection', (WidgetTester tester) async { var initialValue = 'initial\nvalue'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -143,11 +132,7 @@ void main() { testWidgets('MarkdownTextInput make blockquote from selection', (WidgetTester tester) async { var initialValue = 'initial\nvalue'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -160,11 +145,7 @@ void main() { testWidgets('MarkdownTextInput make separator from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length); @@ -177,11 +158,7 @@ void main() { testWidgets('MarkdownTextInput make image link from selection', (WidgetTester tester) async { var initialValue = 'initial value'; - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: MarkdownTextInput((String value) { - initialValue = value; - }, initialValue)))); + await tester.pumpWidget(component(initialValue, (String value) => initialValue = value)); final formfield = tester.widget(find.text(initialValue)); formfield.controller.selection = TextSelection(baseOffset: 0, extentOffset: initialValue.length);