@@ -5,10 +5,90 @@ import 'package:integration_test/integration_test.dart';
55void main () {
66 IntegrationTestWidgetsFlutterBinding .ensureInitialized ();
77
8- testWidgets ('Can speak' , (WidgetTester tester) async {
9- final flutterTts = FlutterTts ();
8+ late FlutterTts flutterTts;
9+
10+ setUpAll (() async {
11+ flutterTts = FlutterTts ();
12+ // Give the native TTS engine time to initialize.
1013 await Future <void >.delayed (const Duration (seconds: 2 ));
11- var result = await flutterTts.speak ('Hello, world!' );
12- expect (result, 1 );
14+ });
15+
16+ tearDown (() async {
17+ await flutterTts.stop ();
18+ });
19+
20+ testWidgets ('speak returns 1' , (WidgetTester tester) async {
21+ expect (await flutterTts.speak ('Hello, world!' ), 1 );
22+ });
23+
24+ testWidgets ('stop returns 1' , (WidgetTester tester) async {
25+ expect (await flutterTts.stop (), 1 );
26+ });
27+
28+ testWidgets ('getLanguages returns a non-empty list' , (
29+ WidgetTester tester,
30+ ) async {
31+ final languages = await flutterTts.getLanguages;
32+ expect (languages, isNotNull);
33+ expect (languages, isNotEmpty);
34+ });
35+
36+ testWidgets ('isLanguageAvailable is true for a supported language' , (
37+ WidgetTester tester,
38+ ) async {
39+ final languages = (await flutterTts.getLanguages as List ).cast <String >();
40+ expect (languages, isNotEmpty);
41+ expect (await flutterTts.isLanguageAvailable (languages.first), isTrue);
42+ });
43+
44+ testWidgets ('setLanguage returns 1 for a supported language' , (
45+ WidgetTester tester,
46+ ) async {
47+ final languages = (await flutterTts.getLanguages as List ).cast <String >();
48+ expect (languages, isNotEmpty);
49+ expect (await flutterTts.setLanguage (languages.first), 1 );
50+ });
51+
52+ testWidgets ('getVoices returns a non-empty list' , (
53+ WidgetTester tester,
54+ ) async {
55+ final voices = await flutterTts.getVoices;
56+ expect (voices, isNotNull);
57+ expect (voices, isNotEmpty);
58+ });
59+
60+ testWidgets ('getDefaultVoice returns a voice' , (WidgetTester tester) async {
61+ expect (await flutterTts.getDefaultVoice, isNotNull);
62+ });
63+
64+ testWidgets ('setVoice returns 1' , (WidgetTester tester) async {
65+ final voices = (await flutterTts.getVoices as List ).cast <Map >();
66+ expect (voices, isNotEmpty);
67+ final voice = voices.first;
68+ expect (
69+ await flutterTts.setVoice (< String , String > {
70+ 'name' : voice['name' ].toString (),
71+ 'locale' : voice['locale' ].toString (),
72+ }),
73+ 1 ,
74+ );
75+ });
76+
77+ testWidgets ('setSpeechRate returns 1' , (WidgetTester tester) async {
78+ expect (await flutterTts.setSpeechRate (0.5 ), 1 );
79+ });
80+
81+ testWidgets ('setVolume returns 1' , (WidgetTester tester) async {
82+ expect (await flutterTts.setVolume (1 ), 1 );
83+ });
84+
85+ testWidgets ('getMaxSpeechInputLength is positive' , (
86+ WidgetTester tester,
87+ ) async {
88+ // tts_get_max_text_size requires the ready state; stop() ensures it.
89+ await flutterTts.stop ();
90+ final maxLength = await flutterTts.getMaxSpeechInputLength;
91+ expect (maxLength, isNotNull);
92+ expect (maxLength, greaterThan (0 ));
1393 });
1494}
0 commit comments