mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
77 lines
2.3 KiB
Dart
77 lines
2.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'widget_tester.dart';
|
|
|
|
int selectedIndex = 2;
|
|
|
|
Widget buildFrame({ List<String> tabs, bool isScrollable: false }) {
|
|
return new TabBar(
|
|
labels: tabs.map((String tab) => new TabLabel(text: tab)).toList(),
|
|
selectedIndex: selectedIndex,
|
|
isScrollable: isScrollable,
|
|
onChanged: (int tabIndex) {
|
|
selectedIndex = tabIndex;
|
|
}
|
|
);
|
|
}
|
|
|
|
void main() {
|
|
test('TabBar tap selects tab', () {
|
|
testWidgets((WidgetTester tester) {
|
|
List<String> tabs = <String>['A', 'B', 'C'];
|
|
selectedIndex = 2;
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: false));
|
|
expect(tester.findText('A'), isNotNull);
|
|
expect(tester.findText('B'), isNotNull);
|
|
expect(tester.findText('C'), isNotNull);
|
|
expect(selectedIndex, equals(2));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: false));
|
|
tester.tap(tester.findText('B'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(1));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: false));
|
|
tester.tap(tester.findText('C'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(2));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: false));
|
|
tester.tap(tester.findText('A'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(0));
|
|
});
|
|
});
|
|
|
|
test('Scrollable TabBar tap selects tab', () {
|
|
testWidgets((WidgetTester tester) {
|
|
List<String> tabs = <String>['A', 'B', 'C'];
|
|
selectedIndex = 2;
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: true));
|
|
expect(tester.findText('A'), isNotNull);
|
|
expect(tester.findText('B'), isNotNull);
|
|
expect(tester.findText('C'), isNotNull);
|
|
expect(selectedIndex, equals(2));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: true));
|
|
tester.tap(tester.findText('B'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(1));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: true));
|
|
tester.tap(tester.findText('C'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(2));
|
|
|
|
tester.pumpWidget(buildFrame(tabs: tabs, isScrollable: true));
|
|
tester.tap(tester.findText('A'));
|
|
tester.pump();
|
|
expect(selectedIndex, equals(0));
|
|
});
|
|
});
|
|
}
|