blob: 256a52196deff972552ac0e232d8d5bbd9518849 [file] [log] [blame]
// 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>[
const LicenseEntryWithLineBreaks(const <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 {
LicenseRegistry.addLicense(() {
return new Stream<LicenseEntry>.fromIterable(<LicenseEntry>[
const LicenseEntryWithLineBreaks(const <String>['AAA'], 'BBB')
]);
});
LicenseRegistry.addLicense(() {
return new Stream<LicenseEntry>.fromIterable(<LicenseEntry>[
const LicenseEntryWithLineBreaks(const <String>['Another package'], 'Another license')
]);
});
await tester.pumpWidget(
new MaterialApp(
home: const Center(
child: const LicensePage(),
),
),
);
expect(find.text('AAA'), findsNothing);
expect(find.text('BBB'), findsNothing);
expect(find.text('Another package'), findsNothing);
expect(find.text('Another license'), findsNothing);
await tester.pumpAndSettle();
expect(find.text('AAA'), findsOneWidget);
expect(find.text('BBB'), findsOneWidget);
expect(find.text('Another package'), findsOneWidget);
expect(find.text('Another license'), findsOneWidget);
});
}