mirror of
https://github.com/flutter/samples.git
synced 2026-03-31 16:55:34 +00:00
Split CI testing based on flutter channels (#651)
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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.
|
||||
});
|
||||
}
|
||||
@@ -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>[
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -54,4 +54,3 @@ class _FirebaseUser implements User {
|
||||
|
||||
_FirebaseUser(this.uid);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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.'),
|
||||
),
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user