blob: c84cb862084841535c86062ec5f01e7126cad278 [file] [log] [blame]
// 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/widgets/shared_app_data/shared_app_data.0.dart'
as example;
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Verify correct labels are displayed', (WidgetTester tester) async {
await tester.pumpWidget(
const example.SharedAppDataExampleApp(),
);
expect(find.text('SharedAppData Sample'), findsOneWidget);
expect(find.text('foo: initial'), findsOneWidget);
expect(find.text('bar: initial'), findsOneWidget);
expect(find.text('change foo'), findsOneWidget);
expect(find.text('change bar'), findsOneWidget);
});
testWidgets('foo value can be updated', (WidgetTester tester) async {
await tester.pumpWidget(
const example.SharedAppDataExampleApp(),
);
int counter = 0;
while (counter < 10) {
counter++;
await tester.tap(find.ancestor(
of: find.text('change foo'),
matching: find.byType(ElevatedButton),
));
await tester.pump();
expect(find.text('foo: FOO $counter'), findsOneWidget);
}
});
testWidgets('bar value can be updated', (WidgetTester tester) async {
await tester.pumpWidget(
const example.SharedAppDataExampleApp(),
);
int counter = 0;
while (counter < 10) {
counter++;
await tester.tap(find.ancestor(
of: find.text('change bar'),
matching: find.byType(ElevatedButton),
));
await tester.pump();
expect(find.text('bar: BAR $counter'), findsOneWidget);
}
});
testWidgets('foo and bar values update independently of one another', (WidgetTester tester) async {
await tester.pumpWidget(
const example.SharedAppDataExampleApp(),
);
int fooCounter = 0;
int barCounter = 0;
for (int i = 0; i < 20; i++) {
if (i.isEven) {
fooCounter++;
} else {
barCounter++;
}
await tester.tap(
find.ancestor(
of: i.isEven ? find.text('change foo') : find.text('change bar'),
matching: find.byType(ElevatedButton),
),
);
await tester.pump();
expect(
find.text(
'foo: ${fooCounter == 0 ? 'initial' : 'FOO $fooCounter'}',
),
findsOneWidget,
);
expect(
find.text(
'bar: ${barCounter == 0 ? 'initial' : 'BAR $barCounter'}',
),
findsOneWidget,
);
}
});
}