1
0
mirror of https://github.com/flutter/samples.git synced 2026-03-31 08:44:26 +00:00

Split CI testing based on flutter channels (#651)

This commit is contained in:
Brett Morgan
2021-01-27 18:42:33 +11:00
committed by GitHub
parent e7d70288d9
commit 9b631a2184
14 changed files with 184 additions and 31 deletions

View File

@@ -3,7 +3,6 @@
// found in the LICENSE file.
import 'dart:io';
import 'dart:typed_data';
import 'package:file_selector/file_selector.dart';
import 'package:flutter/foundation.dart';

View File

@@ -2,6 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// ignore_for_file: unused_local_variable
import 'package:flutter/material.dart';
import 'services.dart';

View File

@@ -0,0 +1,15 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Rendering the page throws an exception',
(WidgetTester tester) async {
// Do nothing, running the app throws an exception on widget render.
});
}

View File

@@ -23,7 +23,8 @@ class VeggieCategorySettingsScreen extends StatelessWidget {
static Route<void> _routeBuilder(BuildContext context, Object argument) {
return CupertinoPageRoute(
builder: (context) => VeggieCategorySettingsScreen(restorationId: 'category'),
builder: (context) =>
VeggieCategorySettingsScreen(restorationId: 'category'),
title: 'Preferred Categories',
);
}
@@ -136,9 +137,10 @@ class CalorieSettingsScreen extends StatelessWidget {
label: cals.toString(),
icon: SettingsIcon(
icon: Styles.checkIcon,
foregroundColor: snapshot.hasData && snapshot.data == cals
? CupertinoColors.activeBlue
: Styles.transparentColor,
foregroundColor:
snapshot.hasData && snapshot.data == cals
? CupertinoColors.activeBlue
: Styles.transparentColor,
backgroundColor: Styles.transparentColor,
),
onPress: snapshot.hasData
@@ -219,7 +221,8 @@ class SettingsScreen extends StatelessWidget {
restorationId: restorationId,
child: CupertinoPageScaffold(
child: Container(
color: Styles.scaffoldBackground(CupertinoTheme.brightnessOf(context)),
color:
Styles.scaffoldBackground(CupertinoTheme.brightnessOf(context)),
child: CustomScrollView(
restorationId: 'list',
slivers: <Widget>[

View File

@@ -43,27 +43,32 @@ void main() {
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isFalse);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isFalse);
await tester.tap(find.byType(CupertinoSwitch));
await tester.pumpAndSettle();
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isTrue);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isTrue);
// Current details page is restored.
await tester.restartAndRestore();
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value, isTrue);
expect(tester.widget<CupertinoSwitch>(find.byType(CupertinoSwitch)).value,
isTrue);
await tester.tap(find.text('Trivia'));
await tester.pumpAndSettle();
expect(find.text('Serving info'), findsNothing);
expect(find.text("Which of these isn't a variety of figs?"), findsOneWidget);
expect(
find.text("Which of these isn't a variety of figs?"), findsOneWidget);
// Restores to trivia page.
await tester.restartAndRestore();
expect(find.text('Serving info'), findsNothing);
expect(find.text("Which of these isn't a variety of figs?"), findsOneWidget);
expect(
find.text("Which of these isn't a variety of figs?"), findsOneWidget);
await tester.tap(find.text('Brown Turkey'));
await tester.pumpAndSettle();
@@ -92,13 +97,15 @@ void main() {
await tester.tap(find.text('My Garden'));
await tester.pumpAndSettle();
expect(find.text('My Garden'), findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('My Garden'),
findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
// Restores the current selected tab.
await tester.restartAndRestore();
expect(find.text('My Garden'), findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('My Garden'),
findsNWidgets(2)); // Name of the tap & title of page.
expect(find.text('Grapes'), findsNothing);
expect(find.text('Figs'), findsOneWidget);
expect(find.text('Apples'), findsNothing);
@@ -109,7 +116,8 @@ void main() {
expect(find.text('Apples'), findsOneWidget);
expect(find.text('Tangelo'), findsNothing);
await tester.enterText(find.byType(CupertinoTextField).hitTestable(), 'Tan');
await tester.enterText(
find.byType(CupertinoTextField).hitTestable(), 'Tan');
await tester.pumpAndSettle();
expect(find.text('Apples'), findsNothing);
expect(find.text('Tangelo'), findsOneWidget);
@@ -129,7 +137,7 @@ void main() {
expect(find.text('Tangelo'), findsOneWidget);
expect(find.text('Serving info'), findsOneWidget);
// Restores details page
await tester.restartAndRestore();
expect(find.text('Tangelo'), findsOneWidget);

View File

@@ -54,4 +54,3 @@ class _FirebaseUser implements User {
_FirebaseUser(this.uid);
}

View File

@@ -13,7 +13,7 @@ class MockAuthService implements Auth {
Future<User> signIn() async {
// Sign in will randomly fail 25% of the time.
var random = Random();
if (random.nextInt(4) == 0) {
if (random.nextInt(4) == 0) {
throw SignInException();
}
return MockUser();

View File

@@ -95,7 +95,7 @@ class _SignInButtonState extends State<SignInButton> {
}
void _showError() {
Scaffold.of(context).showSnackBar(
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Unable to sign in.'),
),

View File

@@ -26,7 +26,8 @@ void runWeb() {
@Task()
void runFirebase() {
run('flutter',
arguments: 'run -d web --web-port=5000 lib/main_firebase.dart '.split(' '));
arguments:
'run -d web --web-port=5000 lib/main_firebase.dart '.split(' '));
}
@Task()