112 lines
3.4 KiB
Dart
112 lines
3.4 KiB
Dart
// Copyright 2016 The Chromium 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 'dart:async';
|
|
|
|
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
testWidgets('AboutListTile control test', (WidgetTester tester) async {
|
|
await tester.pumpWidget(
|
|
new MaterialApp(
|
|
title: 'Pirate app',
|
|
home: new Scaffold(
|
|
appBar: new AppBar(
|
|
title: const Text('Home'),
|
|
),
|
|
drawer: new Drawer(
|
|
child: new ListView(
|
|
children: const <Widget>[
|
|
const AboutListTile(
|
|
applicationVersion: '0.1.2',
|
|
applicationIcon: const FlutterLogo(),
|
|
applicationLegalese: 'I am the very model of a modern major general.',
|
|
aboutBoxChildren: const <Widget>[
|
|
const Text('About box'),
|
|
]
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
expect(find.text('About Pirate app'), findsNothing);
|
|
expect(find.text('0.1.2'), findsNothing);
|
|
expect(find.text('About box'), findsNothing);
|
|
|
|
await tester.tap(find.byType(IconButton));
|
|
await tester.pumpAndSettle(const Duration(milliseconds: 100));
|
|
|
|
expect(find.text('About Pirate app'), findsOneWidget);
|
|
expect(find.text('0.1.2'), findsNothing);
|
|
expect(find.text('About box'), findsNothing);
|
|
|
|
await tester.tap(find.text('About Pirate app'));
|
|
await tester.pumpAndSettle(const Duration(milliseconds: 100));
|
|
|
|
expect(find.text('About Pirate app'), findsOneWidget);
|
|
expect(find.text('0.1.2'), findsOneWidget);
|
|
expect(find.text('About box'), findsOneWidget);
|
|
|
|
LicenseRegistry.addLicense(() {
|
|
return new Stream<LicenseEntry>.fromIterable(<LicenseEntry>[
|
|
new LicenseEntryWithLineBreaks(<String>[ 'Pirate package '], 'Pirate license')
|
|
]);
|
|
});
|
|
|
|
await tester.tap(find.text('VIEW LICENSES'));
|
|
await tester.pumpAndSettle(const Duration(milliseconds: 100));
|
|
|
|
expect(find.text('Pirate license'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('About box logic defaults to executable name for app name', (WidgetTester tester) async {
|
|
await tester.pumpWidget(
|
|
new MaterialApp(
|
|
title: 'flutter_tester',
|
|
home: const Material(child: const AboutListTile()),
|
|
),
|
|
);
|
|
expect(find.text('About flutter_tester'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('AboutListTile control test', (WidgetTester tester) async {
|
|
final List<String> log = <String>[];
|
|
|
|
Future<Null> licenseFuture;
|
|
LicenseRegistry.addLicense(() {
|
|
log.add('license1');
|
|
licenseFuture = tester.pumpWidget(new Container());
|
|
return new Stream<LicenseEntry>.fromIterable(<LicenseEntry>[]);
|
|
});
|
|
|
|
LicenseRegistry.addLicense(() {
|
|
log.add('license2');
|
|
return new Stream<LicenseEntry>.fromIterable(<LicenseEntry>[
|
|
new LicenseEntryWithLineBreaks(<String>[ 'Another package '], 'Another license')
|
|
]);
|
|
});
|
|
|
|
await tester.pumpWidget(
|
|
new MaterialApp(
|
|
home: const Center(
|
|
child: const LicensePage()
|
|
),
|
|
),
|
|
);
|
|
|
|
expect(licenseFuture, isNotNull);
|
|
await licenseFuture;
|
|
|
|
// We should not hit an exception here.
|
|
await tester.idle();
|
|
|
|
expect(log, equals(<String>['license1', 'license2']));
|
|
});
|
|
}
|