mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Spelling (#15229)
* spelling: accommodate * spelling: allotted * spelling: anonymous * spelling: artificial * spelling: associated * spelling: asset * spelling: button * spelling: canvas * spelling: compatibility * spelling: coverage * spelling: condition * spelling: decoration * spelling: deferring * spelling: diameter * spelling: direction * spelling: displacement * spelling: dropdown * spelling: needing * spelling: environment * spelling: exited * spelling: expansion * spelling: explore * spelling: families * spelling: horizontal * spelling: increment * spelling: indices * spelling: internationalization * spelling: labrador * spelling: localizations * spelling: midflight * spelling: milliseconds * spelling: minimum * spelling: multiple * spelling: multiplication * spelling: navigator * spelling: overridden * spelling: package * spelling: performance * spelling: platform * spelling: porsche * spelling: position * spelling: preceded * spelling: precede * spelling: precedence * spelling: print * spelling: property * spelling: readily * spelling: reproducibility * spelling: rounded * spelling: scroll * spelling: separate * spelling: separator * spelling: services * spelling: specific * spelling: specify * spelling: synchronously * spelling: through * spelling: timeout * spelling: triangle * spelling: trivial * spelling: unusual * spelling: then * spelling: vertically * spelling: visible * spelling: visited * spelling: voice
This commit is contained in:
parent
d0cbbd5394
commit
c5a5945e92
@ -44,7 +44,7 @@ public class MainActivity extends FlutterActivity {
|
||||
}
|
||||
|
||||
// Outgoing ByteBuffer messages must be direct-allocated and payload placed between
|
||||
// positon 0 and current position.
|
||||
// position 0 and current position.
|
||||
@SuppressWarnings("unchecked")
|
||||
private <T> T echo(T message) {
|
||||
if (message instanceof ByteBuffer) {
|
||||
|
@ -124,7 +124,7 @@ class _FuzzerState extends State<Fuzzer> with SingleTickerProviderStateMixin {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducability
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducibility
|
||||
_ticker = createTicker(_updateTextSpan)..start();
|
||||
_updateTextSpan(null);
|
||||
}
|
||||
@ -798,7 +798,7 @@ class _ZalgoState extends State<Zalgo> with SingleTickerProviderStateMixin {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducability
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducibility
|
||||
_ticker = createTicker(_update)..start();
|
||||
_update(null);
|
||||
}
|
||||
@ -865,7 +865,7 @@ class _ZalgoState extends State<Zalgo> with SingleTickerProviderStateMixin {
|
||||
onChanged: (bool value) {
|
||||
setState(() {
|
||||
_allowSpacing = value;
|
||||
_random = new math.Random(widget.seed); // reset for reproducability
|
||||
_random = new math.Random(widget.seed); // reset for reproducibility
|
||||
});
|
||||
},
|
||||
),
|
||||
@ -875,7 +875,7 @@ class _ZalgoState extends State<Zalgo> with SingleTickerProviderStateMixin {
|
||||
onChanged: (bool value) {
|
||||
setState(() {
|
||||
_varyBase = value;
|
||||
_random = new math.Random(widget.seed); // reset for reproducability
|
||||
_random = new math.Random(widget.seed); // reset for reproducibility
|
||||
});
|
||||
},
|
||||
),
|
||||
@ -905,7 +905,7 @@ class _PaintingState extends State<Painting> with SingleTickerProviderStateMixin
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducability
|
||||
_random = new math.Random(widget.seed); // providing a seed is important for reproducibility
|
||||
_ticker = createTicker(_update)..start();
|
||||
_update(null);
|
||||
}
|
||||
@ -1027,7 +1027,7 @@ class _PaintingState extends State<Painting> with SingleTickerProviderStateMixin
|
||||
onChanged: (bool value) {
|
||||
setState(() {
|
||||
_ellipsize = value;
|
||||
_random = new math.Random(widget.seed); // reset for reproducability
|
||||
_random = new math.Random(widget.seed); // reset for reproducibility
|
||||
if (!_ticker.isActive)
|
||||
_update(null);
|
||||
});
|
||||
|
@ -5,7 +5,7 @@
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('Trival test', () {
|
||||
test('Trivial test', () {
|
||||
expect(42, 42);
|
||||
});
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ Future<Null> main(List<String> arguments) async {
|
||||
'--exclude-packages',
|
||||
'analyzer,args,barback,cli_util,csslib,front_end,glob,html,http_multi_server,io,isolate,js,kernel,logging,mime,mockito,node_preamble,plugin,shelf,shelf_packages_handler,shelf_static,shelf_web_socket,utf,watcher,yaml',
|
||||
'--exclude',
|
||||
'package:Flutter/temp_doc.dart,package:http/browser_client.dart,package:intl/intl_browser.dart,package:matcher/mirror_matchers.dart,package:quiver/mirrors.dart,pacakge:quiver/io.dart,package:vm_service_client/vm_service_client.dart,package:web_socket_channel/html.dart',
|
||||
'package:Flutter/temp_doc.dart,package:http/browser_client.dart,package:intl/intl_browser.dart,package:matcher/mirror_matchers.dart,package:quiver/mirrors.dart,package:quiver/io.dart,package:vm_service_client/vm_service_client.dart,package:web_socket_channel/html.dart',
|
||||
'--favicon=favicon.ico',
|
||||
'--use-categories',
|
||||
'--category-order', 'flutter,Dart Core,flutter_test,flutter_driver',
|
||||
|
@ -192,7 +192,7 @@ ProcessResult _runGit(String command) {
|
||||
|
||||
void _reportGitFailureAndExit(ProcessResult result, String explanation) {
|
||||
if (result.exitCode != 0) {
|
||||
print('Failed to $explanation. Git exitted with error code ${result.exitCode}.');
|
||||
print('Failed to $explanation. Git exited with error code ${result.exitCode}.');
|
||||
} else {
|
||||
print('Failed to $explanation.');
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ Summary: A basic AppBar with a title, actions, and an overflow dropdown menu.
|
||||
Description:
|
||||
An app that displays one of a half dozen choices with an icon and a title.
|
||||
The two most common choices are available as action buttons and the remaining
|
||||
choices are included in the overflow dropdow menu.
|
||||
choices are included in the overflow dropdown menu.
|
||||
|
||||
Classes: AppBar, IconButton, PopupMenuButton, Scaffold
|
||||
|
||||
|
@ -19,7 +19,7 @@ void main() {
|
||||
app_bar_bottom_sample.main();
|
||||
await tester.pump();
|
||||
|
||||
// Cycle throught the choices using the forward and backwards arrows.
|
||||
// Cycle through the choices using the forward and backwards arrows.
|
||||
|
||||
final Finder nextChoice = find.byTooltip('Next choice');
|
||||
for (int i = 0; i < choiceCount; i += 1) {
|
||||
|
@ -4,7 +4,7 @@
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
||||
def parse_KV_file(file,seperator='=')
|
||||
def parse_KV_file(file,separator='=')
|
||||
file_abs_path = File.expand_path(file)
|
||||
if !File.exists? file_abs_path
|
||||
return [];
|
||||
@ -13,7 +13,7 @@ def parse_KV_file(file,seperator='=')
|
||||
skip_line_start_symbols = ["#", "/"]
|
||||
File.foreach(file_abs_path) { |line|
|
||||
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
|
||||
plugin = line.split(pattern=seperator)
|
||||
plugin = line.split(pattern=separator)
|
||||
if plugin.length == 2
|
||||
podname = plugin[0].strip()
|
||||
path = plugin[1].strip()
|
||||
|
@ -284,7 +284,7 @@ class CalcExpression {
|
||||
final List<ExpressionToken> list = _list.toList();
|
||||
// We obey order-of-operations by computing the sum of the 'terms',
|
||||
// where a "term" is defined to be a sequence of numbers separated by
|
||||
// multiplcation or division symbols.
|
||||
// multiplication or division symbols.
|
||||
num currentTermValue = removeNextTerm(list);
|
||||
while (list.isNotEmpty) {
|
||||
final OperationToken opToken = list.removeAt(0);
|
||||
|
@ -24,7 +24,7 @@ const List<Color> coolColors = const <Color>[
|
||||
const List<String> coolColorNames = const <String>[
|
||||
'Sarcoline', 'Coquelicot', 'Smaragdine', 'Mikado', 'Glaucous', 'Wenge',
|
||||
'Fulvous', 'Xanadu', 'Falu', 'Eburnean', 'Amaranth', 'Australien',
|
||||
'Banan', 'Falu', 'Gingerline', 'Incarnadine', 'Labrabor', 'Nattier',
|
||||
'Banan', 'Falu', 'Gingerline', 'Incarnadine', 'Labrador', 'Nattier',
|
||||
'Pervenche', 'Sinoper', 'Verditer', 'Watchet', 'Zaffre',
|
||||
];
|
||||
|
||||
@ -678,7 +678,7 @@ List<Widget> buildTab2Conversation() {
|
||||
text: 'SJ',
|
||||
color: const Color(0xFF34CAD6),
|
||||
),
|
||||
text: "We'll send you our\nnewest Labrabor too!",
|
||||
text: "We'll send you our\nnewest Labrador too!",
|
||||
),
|
||||
const Tab2ConversationRow(
|
||||
text: 'Yay',
|
||||
|
@ -97,7 +97,7 @@ class TravelDestinationItem extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
// description and share/expore buttons
|
||||
// description and share/explore buttons
|
||||
new Expanded(
|
||||
child: new Padding(
|
||||
padding: const EdgeInsets.fromLTRB(16.0, 16.0, 16.0, 0.0),
|
||||
|
@ -16,7 +16,7 @@ enum DialogDemoAction {
|
||||
const String _alertWithoutTitleText = 'Discard draft?';
|
||||
|
||||
const String _alertWithTitleText =
|
||||
'Let Google help apps determine location. This means sending anyonmous location '
|
||||
'Let Google help apps determine location. This means sending anonymous location '
|
||||
'data to Google, even when no apps are running.';
|
||||
|
||||
class DialogDemoItem extends StatelessWidget {
|
||||
|
@ -172,14 +172,14 @@ class DemoItem<T> {
|
||||
Widget build() => builder(this);
|
||||
}
|
||||
|
||||
class ExpasionPanelsDemo extends StatefulWidget {
|
||||
class ExpansionPanelsDemo extends StatefulWidget {
|
||||
static const String routeName = '/material/expansion_panels';
|
||||
|
||||
@override
|
||||
_ExpansionPanelsDemoState createState() => new _ExpansionPanelsDemoState();
|
||||
}
|
||||
|
||||
class _ExpansionPanelsDemoState extends State<ExpasionPanelsDemo> {
|
||||
class _ExpansionPanelsDemoState extends State<ExpansionPanelsDemo> {
|
||||
List<DemoItem<dynamic>> _demoItems;
|
||||
|
||||
@override
|
||||
|
@ -147,7 +147,7 @@ class LeaveBehindDemoState extends State<LeaveBehindDemo> {
|
||||
new CheckedPopupMenuItem<LeaveBehindDemoAction>(
|
||||
value: LeaveBehindDemoAction.horizontalSwipe,
|
||||
checked: _dismissDirection == DismissDirection.horizontal,
|
||||
child: const Text('Hoizontal swipe')
|
||||
child: const Text('Horizontal swipe')
|
||||
),
|
||||
new CheckedPopupMenuItem<LeaveBehindDemoAction>(
|
||||
value: LeaveBehindDemoAction.leftSwipe,
|
||||
|
@ -279,7 +279,7 @@ const List<Product> _allProducts = const <Product> [
|
||||
vendor: _stella,
|
||||
description:
|
||||
'Who says you can’t walk on water? With Surfboard, by Surfboard Supply, '
|
||||
'you can fly on water. This beast is fast and handles like a porsche. '
|
||||
'you can fly on water. This beast is fast and handles like a Porsche. '
|
||||
'Hang Ten Bro!'
|
||||
)
|
||||
];
|
||||
|
@ -148,8 +148,8 @@ List<GalleryItem> _buildGalleryItems() {
|
||||
title: 'Expansion panels',
|
||||
subtitle: 'List of expanding panels',
|
||||
category: 'Material Components',
|
||||
routeName: ExpasionPanelsDemo.routeName,
|
||||
buildRoute: (BuildContext context) => new ExpasionPanelsDemo(),
|
||||
routeName: ExpansionPanelsDemo.routeName,
|
||||
buildRoute: (BuildContext context) => new ExpansionPanelsDemo(),
|
||||
),
|
||||
new GalleryItem(
|
||||
title: 'Floating action button',
|
||||
|
@ -30,7 +30,7 @@ void main() {
|
||||
await driver.tap(find.text('Components'));
|
||||
await driver.tap(find.text('Style'));
|
||||
|
||||
// TODO(eseidel): These are very artifical scrolls, we should use better
|
||||
// TODO(eseidel): These are very artificial scrolls, we should use better
|
||||
// https://github.com/flutter/flutter/issues/3316
|
||||
// Scroll down
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
@ -90,7 +90,7 @@
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NLS-lx-anZ" userLabel="Top">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="264"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Flutter button tapped 0 times." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJ2-AA-Riy" userLabel="IncremetLabel">
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Flutter button tapped 0 times." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PJ2-AA-Riy" userLabel="IncrementLabel">
|
||||
<rect key="frame" x="73" y="122" width="229" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
|
@ -86,7 +86,7 @@ class RenderDots extends RenderBox {
|
||||
void paint(PaintingContext context, Offset offset) {
|
||||
final Canvas canvas = context.canvas;
|
||||
// The "size" property indicates the size of that this render box was
|
||||
// alotted during layout. Here we paint our bounds white. Notice that we're
|
||||
// allotted during layout. Here we paint our bounds white. Notice that we're
|
||||
// located at "offset" from the origin of the canvas' coordinate system.
|
||||
// Passing offset during the render tree's paint walk is an optimization to
|
||||
// avoid having to change the origin of the canvas's coordinate system too
|
||||
|
@ -20,7 +20,7 @@ the [Flutter Setup](https://flutter.io/setup/) guide.
|
||||
|
||||
The `flutter run --release` command both builds and installs the Flutter app.
|
||||
|
||||
## Interationalization
|
||||
## Internationalization
|
||||
|
||||
This app has been internationalized (just enough to show how it's
|
||||
done). It's an example of how one can do so with the
|
||||
@ -30,7 +30,7 @@ The [Flutter Internationalization Tutorial](https://flutter.io/tutorials/interna
|
||||
covers Flutter app internationalization in general.
|
||||
|
||||
See [regenerate.md](lib/i18n/regenerate.md) for an explanation
|
||||
of how the Dart interationalization tools, like
|
||||
of how the Dart internationalization tools, like
|
||||
`intl_translation:generate_from_arb`, were used to generate
|
||||
localizations for this app.
|
||||
|
||||
|
@ -92,7 +92,7 @@ class AnimatedIcon extends StatelessWidget {
|
||||
///
|
||||
/// If this is null, the ambient [Directionality] is used instead.
|
||||
///
|
||||
/// If the text diection is [TextDirection.rtl], the icon will be mirrored
|
||||
/// If the text direction is [TextDirection.rtl], the icon will be mirrored
|
||||
/// horizontally (e.g back arrow will point right).
|
||||
final TextDirection textDirection;
|
||||
|
||||
|
@ -29,7 +29,7 @@ enum ButtonTextTheme {
|
||||
/// Used with [ButtonThemeData] to configure the color and geometry of buttons.
|
||||
///
|
||||
/// A button theme can be specified as part of the overall Material theme
|
||||
/// using [ThemeData.buttomTheme]. The Material theme's button theme data
|
||||
/// using [ThemeData.buttonTheme]. The Material theme's button theme data
|
||||
/// can be overridden with [ButtonTheme].
|
||||
///
|
||||
/// The actual appearance of buttons depends on the button theme, the
|
||||
@ -139,7 +139,7 @@ class ButtonTheme extends InheritedWidget {
|
||||
/// Used with [ButtonTheme] to configure the color and geometry of buttons.
|
||||
///
|
||||
/// A button theme can be specified as part of the overall Material theme
|
||||
/// using [ThemeData.buttomTheme]. The Material theme's button theme data
|
||||
/// using [ThemeData.buttonTheme]. The Material theme's button theme data
|
||||
/// can be overridden with [ButtonTheme].
|
||||
class ButtonThemeData extends Diagnosticable {
|
||||
/// Create a button theme object that can be used with [ButtonTheme]
|
||||
|
@ -99,7 +99,7 @@ import 'material.dart';
|
||||
/// See also:
|
||||
///
|
||||
/// * [Container], a more generic form of this widget which paints itself,
|
||||
/// rather that defering to the nearest [Material] widget.
|
||||
/// rather that deferring to the nearest [Material] widget.
|
||||
/// * [InkDecoration], the [InkFeature] subclass used by this widget to paint
|
||||
/// on [Material] widgets.
|
||||
/// * [InkWell] and [InkResponse], which also draw on [Material] widgets.
|
||||
|
@ -141,7 +141,7 @@ class InkRipple extends InteractiveInkFeature {
|
||||
_radiusController = new AnimationController(duration: _kUnconfirmedRippleDuration, vsync: controller.vsync)
|
||||
..addListener(controller.markNeedsPaint)
|
||||
..forward();
|
||||
// Initial splash diamater is 60% of the target diameter, final
|
||||
// Initial splash diameter is 60% of the target diameter, final
|
||||
// diameter is 10dps larger than the target diameter.
|
||||
_radius = new Tween<double>(
|
||||
begin: _targetRadius * 0.30,
|
||||
@ -190,7 +190,7 @@ class InkRipple extends InteractiveInkFeature {
|
||||
_radiusController
|
||||
..duration = _kRadiusDuration
|
||||
..forward();
|
||||
// This confirm may have been preceeded by a cancel.
|
||||
// This confirm may have been preceded by a cancel.
|
||||
_fadeInController.forward();
|
||||
_fadeOutController
|
||||
..animateTo(1.0, duration: _kFadeOutDuration);
|
||||
|
@ -315,13 +315,13 @@ class _MaterialState extends State<Material> with TickerProviderStateMixin {
|
||||
)
|
||||
);
|
||||
|
||||
// PhysicalModel has a temporary workaround for a perfomance issue that
|
||||
// PhysicalModel has a temporary workaround for a performance issue that
|
||||
// speeds up rectangular non transparent material (the workaround is to
|
||||
// skip the call to ui.Canvas.saveLayer if the border radius is 0).
|
||||
// Until the saveLayer perfomance issue is resolved, we're keeping this
|
||||
// Until the saveLayer performance issue is resolved, we're keeping this
|
||||
// special case here for canvas material type that is using the default
|
||||
// shape (rectangle). We could go down this fast path for explicitly
|
||||
// specified rectangles (e.g shape RoundeRectangleBorder with radius 0, but
|
||||
// specified rectangles (e.g shape RoundedRectangleBorder with radius 0, but
|
||||
// we choose not to as we want the change from the fast-path to the
|
||||
// slow-path to be noticeable in the construction site of Material.
|
||||
if (widget.type == MaterialType.canvas && widget.shape == null && widget.borderRadius == null) {
|
||||
|
@ -30,7 +30,7 @@ import 'typography.dart';
|
||||
// same directory), including a best guess as to the translation, e.g.
|
||||
// obtained by optimistic use of Google Translate
|
||||
// (https://translate.google.com/). After that you have to re-generate
|
||||
// lib/src/l10n/localizaions.dart by running
|
||||
// lib/src/l10n/localizations.dart by running
|
||||
// `dart dev/tools/gen_localizations.dart --overwrite`. There is a README
|
||||
// file with further information in the lib/src/l10n/ directory.
|
||||
//
|
||||
@ -137,7 +137,7 @@ abstract class MaterialLocalizations {
|
||||
/// [showTimePicker] is set to the minute picker mode.
|
||||
String get timePickerMinuteModeAnnouncement;
|
||||
|
||||
/// Label read out by accessibility tools (TalkBack or VocieOver) for a modal
|
||||
/// Label read out by accessibility tools (TalkBack or VoiceOver) for a modal
|
||||
/// barrier to indicate that a tap dismisses the barrier.
|
||||
///
|
||||
/// A modal barrier can for example be found behind a alert or popup to block
|
||||
|
@ -238,7 +238,7 @@ class _LinearProgressIndicatorState extends State<LinearProgressIndicator> with
|
||||
class _CircularProgressIndicatorPainter extends CustomPainter {
|
||||
static const double _kTwoPI = math.PI * 2.0;
|
||||
static const double _kEpsilon = .001;
|
||||
// Canavs.drawArc(r, 0, 2*PI) doesn't draw anything, so just get close.
|
||||
// Canvas.drawArc(r, 0, 2*PI) doesn't draw anything, so just get close.
|
||||
static const double _kSweep = _kTwoPI - _kEpsilon;
|
||||
static const double _kStartAngle = -math.PI / 2.0;
|
||||
|
||||
@ -521,7 +521,7 @@ class _RefreshProgressIndicatorState extends _CircularProgressIndicatorState {
|
||||
return new Container(
|
||||
width: _kIndicatorSize,
|
||||
height: _kIndicatorSize,
|
||||
margin: const EdgeInsets.all(4.0), // acommodate the shadow
|
||||
margin: const EdgeInsets.all(4.0), // accommodate the shadow
|
||||
child: new Material(
|
||||
type: MaterialType.circle,
|
||||
color: widget.backgroundColor ?? Theme.of(context).canvasColor,
|
||||
|
@ -20,7 +20,7 @@ const double _kDragContainerExtentPercentage = 0.25;
|
||||
const double _kDragSizeFactorLimit = 1.5;
|
||||
|
||||
// When the scroll ends, the duration of the refresh indicator's animation
|
||||
// to the RefreshIndicator's displacment.
|
||||
// to the RefreshIndicator's displacement.
|
||||
const Duration _kIndicatorSnapDuration = const Duration(milliseconds: 150);
|
||||
|
||||
// The duration of the ScaleTransition that starts when the refresh action
|
||||
|
@ -769,7 +769,7 @@ class Scaffold extends StatefulWidget {
|
||||
/// callback should then be invoked from [State.deactivate].
|
||||
///
|
||||
/// If there was a previously set [ScaffoldGeometry.floatingActionButtonNotch]
|
||||
/// it will be overriden.
|
||||
/// it will be overridden.
|
||||
static VoidCallback setFloatingActionButtonNotchFor(BuildContext context, ComputeNotch computeNotch) {
|
||||
final _ScaffoldScope scaffoldScope = context.inheritFromWidgetOfExactType(_ScaffoldScope);
|
||||
if (scaffoldScope == null)
|
||||
|
@ -65,7 +65,7 @@ const Color _kCircleActiveDark = Colors.black87;
|
||||
const Color _kDisabledLight = Colors.black38;
|
||||
const Color _kDisabledDark = Colors.white30;
|
||||
const double _kStepSize = 24.0;
|
||||
const double _kTriangleHeight = _kStepSize * 0.866025; // Traingle height. sqrt(3.0) / 2.0
|
||||
const double _kTriangleHeight = _kStepSize * 0.866025; // Triangle height. sqrt(3.0) / 2.0
|
||||
|
||||
/// A material step used in [Stepper]. The step can have a title and subtitle,
|
||||
/// an icon within its circle, some content and a state that governs its
|
||||
|
@ -360,7 +360,7 @@ class ThemeData extends Diagnosticable {
|
||||
|
||||
/// The default color of the [BottomAppBar].
|
||||
///
|
||||
/// This can be overriden by specifying [BottomAppBar.color].
|
||||
/// This can be overridden by specifying [BottomAppBar.color].
|
||||
final Color bottomAppBarColor;
|
||||
|
||||
/// The color of [Material] when it is used as a [Card].
|
||||
|
@ -71,7 +71,7 @@ AxisDirection applyGrowthDirectionToAxisDirection(AxisDirection axisDirection, G
|
||||
/// This function is useful in [RenderSliver] subclasses that are given both an
|
||||
/// [ScrollDirection] and a [GrowthDirection] and wish to compute the
|
||||
/// [ScrollDirection] in which growth will occur.
|
||||
ScrollDirection applyGrowthDirecitonToScrollDirection(ScrollDirection scrollDirection, GrowthDirection growthDirection) {
|
||||
ScrollDirection applyGrowthDirectionToScrollDirection(ScrollDirection scrollDirection, GrowthDirection growthDirection) {
|
||||
assert(scrollDirection != null);
|
||||
assert(growthDirection != null);
|
||||
switch (growthDirection) {
|
||||
|
@ -277,7 +277,7 @@ abstract class RenderViewportBase<ParentDataClass extends ContainerParentDataMix
|
||||
assert(scrollOffset >= 0.0);
|
||||
final double initialLayoutOffset = layoutOffset;
|
||||
final ScrollDirection adjustedUserScrollDirection =
|
||||
applyGrowthDirecitonToScrollDirection(offset.userScrollDirection, growthDirection);
|
||||
applyGrowthDirectionToScrollDirection(offset.userScrollDirection, growthDirection);
|
||||
assert(adjustedUserScrollDirection != null);
|
||||
double maxPaintOffset = layoutOffset + overlap;
|
||||
while (child != null) {
|
||||
@ -833,7 +833,7 @@ class RenderViewport extends RenderViewportBase<SliverPhysicalContainerParentDat
|
||||
'If this widget is always nested in a scrollable widget there '
|
||||
'is no need to use a viewport because there will always be enough '
|
||||
'vertical space for the children. In this case, consider using a '
|
||||
'Column instead. Otherwise, consider using the "shrinkWrap" propery '
|
||||
'Column instead. Otherwise, consider using the "shrinkWrap" property '
|
||||
'(or a ShrinkWrappingViewport) to size the height of the viewport '
|
||||
'to the sum of the heights of its children.'
|
||||
);
|
||||
@ -859,7 +859,7 @@ class RenderViewport extends RenderViewportBase<SliverPhysicalContainerParentDat
|
||||
'If this widget is always nested in a scrollable widget there '
|
||||
'is no need to use a viewport because there will always be enough '
|
||||
'horizontal space for the children. In this case, consider using a '
|
||||
'Row instead. Otherwise, consider using the "shrinkWrap" propery '
|
||||
'Row instead. Otherwise, consider using the "shrinkWrap" property '
|
||||
'(or a ShrinkWrappingViewport) to size the width of the viewport '
|
||||
'to the sum of the widths of its children.'
|
||||
);
|
||||
|
@ -186,7 +186,7 @@ class SemanticsData extends Diagnosticable {
|
||||
/// * [ScrollPosition.maxScrollExtent], from where this value is usually taken.
|
||||
final double scrollExtentMax;
|
||||
|
||||
/// Indicates the mimimum in-range value for [scrollPosition] if the node is
|
||||
/// Indicates the minimum in-range value for [scrollPosition] if the node is
|
||||
/// scrollable.
|
||||
///
|
||||
/// This value may be infinity if the scroll is unbound.
|
||||
@ -1147,7 +1147,7 @@ class SemanticsNode extends AbstractNode with DiagnosticableTreeMixin {
|
||||
double get scrollExtentMax => _scrollExtentMax;
|
||||
double _scrollExtentMax;
|
||||
|
||||
/// Indicates the mimimum in-range value for [scrollPosition] if the node is
|
||||
/// Indicates the minimum in-range value for [scrollPosition] if the node is
|
||||
/// scrollable.
|
||||
///
|
||||
/// This value may be infinity if the scroll is unbound.
|
||||
|
@ -467,7 +467,7 @@ typedef void _OnDragEnd(Velocity velocity, Offset offset, bool wasAccepted);
|
||||
// The lifetime of this object is a little dubious right now. Specifically, it
|
||||
// lives as long as the pointer is down. Arguably it should self-immolate if the
|
||||
// overlay goes away. _DraggableState has some delicate logic to continue
|
||||
// eeding this object pointer events even after it has been disposed.
|
||||
// needing this object pointer events even after it has been disposed.
|
||||
class _DragAvatar<T> extends Drag {
|
||||
_DragAvatar({
|
||||
@required this.overlayState,
|
||||
|
@ -3102,7 +3102,7 @@ abstract class Element extends DiagnosticableTree implements BuildContext {
|
||||
throw new FlutterError(
|
||||
'Cannot get size without a render object.\n'
|
||||
'In order for an element to have a valid size, the element must have '
|
||||
'an assoicated render object. This element does not have an associated '
|
||||
'an associated render object. This element does not have an associated '
|
||||
'render object, which typically means that the size getter was called '
|
||||
'too early in the pipeline (e.g., during the build phase) before the '
|
||||
'framework has created the render tree.\n'
|
||||
|
@ -433,7 +433,7 @@ typedef bool RoutePredicate(Route<dynamic> route);
|
||||
///
|
||||
/// There are also widgets which create popup routes, like [PopupMenuButton] and
|
||||
/// [DropdownButton]. These widgets create internal subclasses of PopupRoute
|
||||
/// and use the Naviagator's push and pop methods to show and dismiss them.
|
||||
/// and use the Navigator's push and pop methods to show and dismiss them.
|
||||
///
|
||||
/// ### Custom routes
|
||||
///
|
||||
|
@ -45,7 +45,7 @@ class OrientationBuilder extends StatelessWidget {
|
||||
Widget _buildWithConstraints(BuildContext context, BoxConstraints constraints) {
|
||||
// If the constraints are fully unbounded (i.e., maxWidth and maxHeight are
|
||||
// both infinite), we prefer Orientation.portrait because its more common to
|
||||
// scroll vertially than horizontally.
|
||||
// scroll vertically then horizontally.
|
||||
final Orientation orientation = constraints.maxWidth > constraints.maxHeight ? Orientation.landscape : Orientation.portrait;
|
||||
return builder(context, orientation);
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ class ClampingScrollSimulation extends Simulation {
|
||||
//
|
||||
// Algebra courtesy of Wolfram Alpha.
|
||||
//
|
||||
// f(x) = scrollOffset, x is time in millseconds
|
||||
// f(x) = scrollOffset, x is time in milliseconds
|
||||
// f(x) = 3.60882×10^-6 x^3 - 0.00668009 x^2 + 4.29427 x - 3.15307
|
||||
// f(x) = 3.60882×10^-6 x^3 - 0.00668009 x^2 + 4.29427 x, so f(0) is 0
|
||||
// f(686ms) = 961 pixels
|
||||
|
@ -247,7 +247,7 @@ void main() {
|
||||
});
|
||||
|
||||
expect(opacities, <double> [
|
||||
1.0, // Smaller font title now visiblee
|
||||
1.0, // Smaller font title now visible
|
||||
0.0, // Larger font title invisible.
|
||||
]);
|
||||
|
||||
@ -260,7 +260,7 @@ void main() {
|
||||
expect(tester.getSize(find.widgetWithText(OverflowBox, 'Title')).height, 0.0);
|
||||
});
|
||||
|
||||
testWidgets('Small title can be overriden', (WidgetTester tester) async {
|
||||
testWidgets('Small title can be overridden', (WidgetTester tester) async {
|
||||
final ScrollController scrollController = new ScrollController();
|
||||
await tester.pumpWidget(
|
||||
new WidgetsApp(
|
||||
|
@ -23,7 +23,7 @@ void main() {
|
||||
|
||||
final List<String> log = <String>[];
|
||||
|
||||
horizontalDrag.onStart = (DragStartDetails details) { log.add('hoizontal-drag-start'); };
|
||||
horizontalDrag.onStart = (DragStartDetails details) { log.add('horizontal-drag-start'); };
|
||||
verticalDrag.onStart = (DragStartDetails details) { log.add('vertical-drag-start'); };
|
||||
tap.onTap = () { log.add('tap'); };
|
||||
|
||||
|
@ -450,7 +450,7 @@ void main() {
|
||||
|
||||
testWidgets('Dropdown menus must fit within the screen', (WidgetTester tester) async {
|
||||
|
||||
// The dropdown menu isn't readaily accessible. To find it we're assuming that it
|
||||
// The dropdown menu isn't readily accessible. To find it we're assuming that it
|
||||
// contains a ListView and that it's an instance of _DropdownMenu.
|
||||
Rect getMenuRect() {
|
||||
Rect menuRect;
|
||||
|
@ -381,7 +381,7 @@ void main() {
|
||||
matches(getBorderRadius(tester, 1), RadiusType.Round, RadiusType.Round);
|
||||
});
|
||||
|
||||
testWidgets('MergeableMaterial separate merge seaparate', (WidgetTester tester) async {
|
||||
testWidgets('MergeableMaterial separate merge separate', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(
|
||||
new MaterialApp(
|
||||
home: new Scaffold(
|
||||
|
@ -179,8 +179,8 @@ void main() {
|
||||
final TestGesture gesture1 = await tester.startGesture(tester.getCenter(find.text('label1')));
|
||||
|
||||
// Splashes start on tapDown.
|
||||
// If the timeout is less than kPressTimout the recognizer will just trigger
|
||||
// the onTapCancel callback. If the timeout is greater or equal to kPressTimout
|
||||
// If the timeout is less than kPressTimeout the recognizer will just trigger
|
||||
// the onTapCancel callback. If the timeout is greater or equal to kPressTimeout
|
||||
// and less than kLongPressTimeout then onTapDown, onCancel will be called.
|
||||
await tester.pump(kPressTimeout);
|
||||
|
||||
|
@ -182,11 +182,11 @@ void main() {
|
||||
expect(onChangedCalled, isTrue);
|
||||
boxPainter.paint(canvas, Offset.zero, imageConfiguration);
|
||||
|
||||
// We expect a clip to preceed the drawImageRect call.
|
||||
// We expect a clip to precede the drawImageRect call.
|
||||
final List<Invocation> commands = canvas.invocations.where((Invocation invocation) {
|
||||
return invocation.memberName == #clipPath || invocation.memberName == #drawImageRect;
|
||||
}).toList();
|
||||
if (expectClip) { // We expect a clip to preceed the drawImageRect call.
|
||||
if (expectClip) { // We expect a clip to precede the drawImageRect call.
|
||||
expect(commands.length, 2);
|
||||
expect(commands[0].memberName, equals(#clipPath));
|
||||
expect(commands[1].memberName, equals(#drawImageRect));
|
||||
|
@ -67,15 +67,15 @@ void main() {
|
||||
children: <RenderBox>[child1, child2, child3],
|
||||
);
|
||||
|
||||
final List<RenderObject> vistedChildren = <RenderObject>[];
|
||||
final List<RenderObject> visitedChildren = <RenderObject>[];
|
||||
final RenderObjectVisitor visitor = (RenderObject child) {
|
||||
vistedChildren.add(child);
|
||||
visitedChildren.add(child);
|
||||
};
|
||||
|
||||
stack.visitChildrenForSemantics(visitor);
|
||||
|
||||
expect(vistedChildren, hasLength(1));
|
||||
expect(vistedChildren.first, child2);
|
||||
expect(visitedChildren, hasLength(1));
|
||||
expect(visitedChildren.first, child2);
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -123,7 +123,7 @@ Future<Null> flingElement(WidgetTester tester, Finder finder, { @required AxisDi
|
||||
Future<Null> flingElementFromZero(WidgetTester tester, Finder finder, { @required AxisDirection gestureDirection }) async {
|
||||
// This is a special case where we drag in one direction, then fling back so
|
||||
// that at the point of release, we're at exactly the point at which we
|
||||
// started, but with velocity. This is needed to check a boundary coundition
|
||||
// started, but with velocity. This is needed to check a boundary condition
|
||||
// in the flinging behavior.
|
||||
await flingElement(tester, finder, gestureDirection: gestureDirection, initialOffsetFactor: -1.0);
|
||||
}
|
||||
|
@ -66,8 +66,8 @@ Widget buildListView(Axis scrollDirection, { bool reverse: false, bool shrinkWra
|
||||
|
||||
void main() {
|
||||
|
||||
group('SingleChildScollView', () {
|
||||
testWidgets('SingleChildScollView ensureVisible Axis.vertical', (WidgetTester tester) async {
|
||||
group('SingleChildScrollView', () {
|
||||
testWidgets('SingleChildScrollView ensureVisible Axis.vertical', (WidgetTester tester) async {
|
||||
BuildContext findContext(int i) => tester.element(findKey(i));
|
||||
|
||||
await tester.pumpWidget(buildSingleChildScrollView(Axis.vertical));
|
||||
@ -94,7 +94,7 @@ void main() {
|
||||
expect(tester.getTopLeft(findKey(3)).dy, equals(100.0));
|
||||
});
|
||||
|
||||
testWidgets('SingleChildScollView ensureVisible Axis.horizontal', (WidgetTester tester) async {
|
||||
testWidgets('SingleChildScrollView ensureVisible Axis.horizontal', (WidgetTester tester) async {
|
||||
BuildContext findContext(int i) => tester.element(findKey(i));
|
||||
|
||||
await tester.pumpWidget(buildSingleChildScrollView(Axis.horizontal));
|
||||
@ -121,7 +121,7 @@ void main() {
|
||||
expect(tester.getTopLeft(findKey(3)).dx, equals(100.0));
|
||||
});
|
||||
|
||||
testWidgets('SingleChildScollView ensureVisible Axis.vertical reverse', (WidgetTester tester) async {
|
||||
testWidgets('SingleChildScrollView ensureVisible Axis.vertical reverse', (WidgetTester tester) async {
|
||||
BuildContext findContext(int i) => tester.element(findKey(i));
|
||||
|
||||
await tester.pumpWidget(buildSingleChildScrollView(Axis.vertical, reverse: true));
|
||||
@ -148,7 +148,7 @@ void main() {
|
||||
expect(tester.getBottomRight(findKey(3)).dy, equals(500.0));
|
||||
});
|
||||
|
||||
testWidgets('SingleChildScollView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async {
|
||||
testWidgets('SingleChildScrollView ensureVisible Axis.horizontal reverse', (WidgetTester tester) async {
|
||||
BuildContext findContext(int i) => tester.element(findKey(i));
|
||||
|
||||
await tester.pumpWidget(buildSingleChildScrollView(Axis.horizontal, reverse: true));
|
||||
@ -175,7 +175,7 @@ void main() {
|
||||
expect(tester.getBottomRight(findKey(3)).dx, equals(700.0));
|
||||
});
|
||||
|
||||
testWidgets('SingleChildScollView ensureVisible rotated child', (WidgetTester tester) async {
|
||||
testWidgets('SingleChildScrollView ensureVisible rotated child', (WidgetTester tester) async {
|
||||
BuildContext findContext(int i) => tester.element(findKey(i));
|
||||
|
||||
await tester.pumpWidget(
|
||||
|
@ -288,7 +288,7 @@ void main() {
|
||||
// called; onTap should never be called.
|
||||
Future<Null> dragOut(Duration timeout) async {
|
||||
final TestGesture gesture = await tester.startGesture(const Offset(400.0, 50.0));
|
||||
// If the timeout is less than kPressTimout the recognizer will just trigger
|
||||
// If the timeout is less than kPressTimeout the recognizer will just trigger
|
||||
// the onTapCancel callback. If the timeout is greater than kLongPressTimeout
|
||||
// then onTapDown, onLongPress, and onCancel will be called.
|
||||
await tester.pump(timeout);
|
||||
|
@ -677,7 +677,7 @@ void main() {
|
||||
expect(midflightHeight, lessThan(finalHeight));
|
||||
expect(midflightHeight, greaterThan(100.0));
|
||||
|
||||
// Remove the destination hero midlfight
|
||||
// Remove the destination hero midflight
|
||||
heroCardSetState(() {
|
||||
routeIncludesHero = false;
|
||||
});
|
||||
|
@ -40,7 +40,7 @@ void main() {
|
||||
package: 'test_package',
|
||||
);
|
||||
assert(imageWidget.image is ExactAssetImage);
|
||||
final ExactAssetImage asssetImage = imageWidget.image;
|
||||
expect(asssetImage.keyName, 'packages/test_package/assets/image.png');
|
||||
final ExactAssetImage assetImage = imageWidget.image;
|
||||
expect(assetImage.keyName, 'packages/test_package/assets/image.png');
|
||||
});
|
||||
}
|
||||
|
@ -221,7 +221,7 @@ void main() {
|
||||
expect(find.text('19'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('didFinishLayout has correct indicies', (WidgetTester tester) async {
|
||||
testWidgets('didFinishLayout has correct indices', (WidgetTester tester) async {
|
||||
final TestSliverChildListDelegate delegate = new TestSliverChildListDelegate(
|
||||
new List<Widget>.generate(20, (int i) {
|
||||
return new Container(
|
||||
|
@ -235,8 +235,8 @@ void main() {
|
||||
);
|
||||
|
||||
DecoratedBox widget = tester.firstWidget(find.byType(DecoratedBox));
|
||||
BoxDecoration decoraton = widget.decoration;
|
||||
expect(decoraton.color, equals(Colors.blue[500]));
|
||||
BoxDecoration decoration = widget.decoration;
|
||||
expect(decoration.color, equals(Colors.blue[500]));
|
||||
|
||||
setState(() {
|
||||
themeData = new ThemeData(primarySwatch: Colors.green);
|
||||
@ -245,8 +245,8 @@ void main() {
|
||||
await tester.pump();
|
||||
|
||||
widget = tester.firstWidget(find.byType(DecoratedBox));
|
||||
decoraton = widget.decoration;
|
||||
expect(decoraton.color, equals(Colors.green[500]));
|
||||
decoration = widget.decoration;
|
||||
expect(decoration.color, equals(Colors.green[500]));
|
||||
});
|
||||
|
||||
testWidgets('ListView padding', (WidgetTester tester) async {
|
||||
|
@ -158,7 +158,7 @@ class FlutterDriver {
|
||||
);
|
||||
}
|
||||
|
||||
// Connect to Dart VM servcies
|
||||
// Connect to Dart VM services
|
||||
_log.info('Connecting to Flutter application at $dartVmServiceUrl');
|
||||
final VMServiceClientConnection connection = await vmServiceConnectFunction(dartVmServiceUrl);
|
||||
final VMServiceClient client = connection.client;
|
||||
|
@ -31,7 +31,7 @@ regional translations have names that include the locale's regional
|
||||
suffix. For example `material_en_GB.arb` contains additional English
|
||||
translations that are specific to Great Britain.
|
||||
|
||||
There is one language-specifc .arb file for each supported locale. If
|
||||
There is one language-specific .arb file for each supported locale. If
|
||||
an additional file with a regional suffix is present, the regional
|
||||
localizations are automatically merged with the language-specific ones.
|
||||
|
||||
@ -187,7 +187,7 @@ If you have feedback about the translations please
|
||||
### See Also
|
||||
|
||||
The [Internationalizing Flutter Apps](https://flutter.io/tutorials/internationalization/)
|
||||
tutorial describes how to use the internationlization APIs in an
|
||||
tutorial describes how to use the internationalization APIs in an
|
||||
ordinary Flutter app.
|
||||
|
||||
[Application Resource Bundle](https://code.google.com/p/arb/wiki/ApplicationResourceBundleSpecification)
|
||||
|
@ -178,7 +178,7 @@ void main() {
|
||||
await tester.tap(find.text('CANCEL'));
|
||||
});
|
||||
|
||||
testWidgets('textDirection parameter takes precendence over locale parameter', (WidgetTester tester) async {
|
||||
testWidgets('textDirection parameter takes precedence over locale parameter', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(new MaterialApp(
|
||||
locale: const Locale('en', 'US'),
|
||||
supportedLocales: const <Locale>[
|
||||
|
@ -302,7 +302,7 @@ void main() {
|
||||
)
|
||||
);
|
||||
|
||||
// All localizations were loaded synchonously
|
||||
// All localizations were loaded synchronously
|
||||
expect(find.text('A: en_US'), findsOneWidget);
|
||||
expect(find.text('B: en_US'), findsOneWidget);
|
||||
});
|
||||
@ -337,7 +337,7 @@ void main() {
|
||||
expect(find.text('B: en_US'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('Muliple Localizations', (WidgetTester tester) async {
|
||||
testWidgets('Multiple Localizations', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(
|
||||
buildFrame(
|
||||
delegates: <LocalizationsDelegate<dynamic>>[
|
||||
|
@ -244,7 +244,7 @@ ThinAppFrameworks() {
|
||||
# TODO(cbracken) improve error handling, then enable set -e
|
||||
|
||||
if [[ $# == 0 ]]; then
|
||||
# Backwards-comptibility: if no args are provided, build.
|
||||
# Backwards-compatibility: if no args are provided, build.
|
||||
BuildApp
|
||||
else
|
||||
case $1 in
|
||||
|
@ -1,5 +1,5 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="plaform_view" type="FlutterRunConfigurationType" factoryName="Flutter">
|
||||
<configuration default="false" name="platform_view" type="FlutterRunConfigurationType" factoryName="Flutter">
|
||||
<option name="filePath" value="$PROJECT_DIR$/examples/platform_view/lib/main.dart" />
|
||||
<method />
|
||||
</configuration>
|
||||
|
@ -25,7 +25,7 @@ class ConfigCommand extends FlutterCommand {
|
||||
argParser.addFlag('machine',
|
||||
negatable: false,
|
||||
hide: !verboseHelp,
|
||||
help: 'Pring config values as json.');
|
||||
help: 'Print config values as json.');
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -50,7 +50,7 @@ class FuchsiaReloadCommand extends FlutterCommand {
|
||||
help: 'On-device name of the application binary.');
|
||||
argParser.addOption('isolate-number',
|
||||
abbr: 'i',
|
||||
help: 'To reload only one instance, speficy the isolate number, e.g. '
|
||||
help: 'To reload only one instance, specify the isolate number, e.g. '
|
||||
'the number in foo\$main-###### given by --list.');
|
||||
argParser.addOption('target',
|
||||
abbr: 't',
|
||||
|
@ -51,7 +51,7 @@ class TestCommand extends FlutterCommand {
|
||||
argParser.addFlag('merge-coverage',
|
||||
defaultsTo: false,
|
||||
negatable: false,
|
||||
help: 'Whether to merge converage data with "coverage/lcov.base.info".\n'
|
||||
help: 'Whether to merge coverage data with "coverage/lcov.base.info".\n'
|
||||
'Implies collecting coverage data. (Requires lcov)'
|
||||
);
|
||||
argParser.addFlag('ipv6',
|
||||
|
@ -31,7 +31,7 @@ void main() {
|
||||
final MockProcessManager processMock = context.getVariable(ProcessManager);
|
||||
|
||||
new FakeAsync().run((FakeAsync time) {
|
||||
expect(processMock.lastPubEnvironmment, isNull);
|
||||
expect(processMock.lastPubEnvironment, isNull);
|
||||
expect(testLogger.statusText, '');
|
||||
pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
|
||||
error = 'test completed unexpectedly';
|
||||
@ -43,7 +43,7 @@ void main() {
|
||||
'Running "flutter packages get" in /...\n'
|
||||
'pub get failed (69) -- attempting retry 1 in 1 second...\n'
|
||||
);
|
||||
expect(processMock.lastPubEnvironmment, contains('flutter_cli:flutter_tests'));
|
||||
expect(processMock.lastPubEnvironment, contains('flutter_cli:flutter_tests'));
|
||||
expect(processMock.lastPubCache, isNull);
|
||||
time.elapse(const Duration(milliseconds: 500));
|
||||
expect(testLogger.statusText,
|
||||
@ -101,7 +101,7 @@ void main() {
|
||||
|
||||
new FakeAsync().run((FakeAsync time) {
|
||||
MockDirectory.findCache = true;
|
||||
expect(processMock.lastPubEnvironmment, isNull);
|
||||
expect(processMock.lastPubEnvironment, isNull);
|
||||
expect(processMock.lastPubCache, isNull);
|
||||
pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
|
||||
error = 'test completed unexpectedly';
|
||||
@ -127,7 +127,7 @@ void main() {
|
||||
|
||||
new FakeAsync().run((FakeAsync time) {
|
||||
MockDirectory.findCache = true;
|
||||
expect(processMock.lastPubEnvironmment, isNull);
|
||||
expect(processMock.lastPubEnvironment, isNull);
|
||||
expect(processMock.lastPubCache, isNull);
|
||||
pubGet(context: PubContext.flutterTests, checkLastModified: false).then((Null value) {
|
||||
error = 'test completed unexpectedly';
|
||||
@ -154,7 +154,7 @@ class MockProcessManager implements ProcessManager {
|
||||
|
||||
final int fakeExitCode;
|
||||
|
||||
String lastPubEnvironmment;
|
||||
String lastPubEnvironment;
|
||||
String lastPubCache;
|
||||
|
||||
@override
|
||||
@ -166,7 +166,7 @@ class MockProcessManager implements ProcessManager {
|
||||
bool runInShell: false,
|
||||
ProcessStartMode mode: ProcessStartMode.NORMAL,
|
||||
}) {
|
||||
lastPubEnvironmment = environment['PUB_ENVIRONMENT'];
|
||||
lastPubEnvironment = environment['PUB_ENVIRONMENT'];
|
||||
lastPubCache = environment['PUB_CACHE'];
|
||||
return new Future<Process>.value(new MockProcess(fakeExitCode));
|
||||
}
|
||||
|
@ -123,9 +123,9 @@ void main() {
|
||||
FileSystem: () => fs,
|
||||
});
|
||||
|
||||
testUsingContext('add new file to local file system and preserve unusal file name casing', () async {
|
||||
final String filePathWithUnusalCasing = fs.path.join('FooBar', 'TEST.txt');
|
||||
final File file = fs.file(fs.path.join(basePath, filePathWithUnusalCasing));
|
||||
testUsingContext('add new file to local file system and preserve unusual file name casing', () async {
|
||||
final String filePathWithUnusualCasing = fs.path.join('FooBar', 'TEST.txt');
|
||||
final File file = fs.file(fs.path.join(basePath, filePathWithUnusualCasing));
|
||||
await file.parent.create(recursive: true);
|
||||
file.writeAsBytesSync(<int>[1, 2, 3, 4, 5, 6, 7]);
|
||||
final int bytes = await devFS.update();
|
||||
|
@ -240,7 +240,7 @@ flutter:
|
||||
expect(barFontAsset1.style, 'italic');
|
||||
});
|
||||
|
||||
testUsingContext('has only one of two font familes when one declaration is missing the "family" option', () async {
|
||||
testUsingContext('has only one of two font families when one declaration is missing the "family" option', () async {
|
||||
const String manifest = '''
|
||||
name: test
|
||||
dependencies:
|
||||
@ -285,7 +285,7 @@ flutter:
|
||||
expect(fooFontAsset1.style, 'italic');
|
||||
});
|
||||
|
||||
testUsingContext('has only one of two font familes when one declaration is missing the "fonts" option', () async {
|
||||
testUsingContext('has only one of two font families when one declaration is missing the "fonts" option', () async {
|
||||
const String manifest = '''
|
||||
name: test
|
||||
dependencies:
|
||||
|
Loading…
Reference in New Issue
Block a user