Fix typos (#82589)
This commit is contained in:
parent
660ec207e6
commit
80a2b6b015
@ -164,7 +164,7 @@ class SampleCheckerException implements Exception {
|
||||
class SampleChecker {
|
||||
/// Creates a [SampleChecker].
|
||||
///
|
||||
/// The positional argument is the path to the the package directory for the
|
||||
/// The positional argument is the path to the package directory for the
|
||||
/// flutter package within the Flutter root dir.
|
||||
///
|
||||
/// The optional `tempDirectory` argument supplies the location for the
|
||||
|
@ -29,7 +29,7 @@ typedef ProcessRunSync = ProcessResult Function(
|
||||
/// Class for test runner to interact with Flutter's infrastructure service, Cocoon.
|
||||
///
|
||||
/// Cocoon assigns bots to run these devicelab tasks on real devices.
|
||||
/// To retrieve these results, the test runner needs to send results back so so the database can be updated.
|
||||
/// To retrieve these results, the test runner needs to send results back so the database can be updated.
|
||||
class Cocoon {
|
||||
Cocoon({
|
||||
String serviceAccountTokenPath,
|
||||
|
@ -288,7 +288,7 @@ class _AllSectionsView extends AnimatedWidget {
|
||||
Widget _build(BuildContext context, BoxConstraints constraints) {
|
||||
final Size size = constraints.biggest;
|
||||
|
||||
// The layout's progress from from a column to a row. Its value is
|
||||
// The layout's progress from a column to a row. Its value is
|
||||
// 0.0 when size.height equals the maxHeight, 1.0 when the size.height
|
||||
// equals the midHeight.
|
||||
final double tColumnToRow =
|
||||
@ -296,7 +296,7 @@ class _AllSectionsView extends AnimatedWidget {
|
||||
(maxHeight! - midHeight!)).clamp(0.0, 1.0);
|
||||
|
||||
|
||||
// The layout's progress from from the midHeight row layout to
|
||||
// The layout's progress from the midHeight row layout to
|
||||
// a minHeight row layout. Its value is 0.0 when size.height equals
|
||||
// midHeight and 1.0 when size.height equals minHeight.
|
||||
final double tCollapsed =
|
||||
|
@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
|
||||
/// As an example, if you wanted to implement an app where the "Q" key "quit"
|
||||
/// something, you'd want to look at the logical key to detect this, since you
|
||||
/// would like to have it match the key with "Q" on it, instead of always
|
||||
/// looking for "the key next next to the TAB key", since on a French keyboard,
|
||||
/// looking for "the key next to the TAB key", since on a French keyboard,
|
||||
/// the key next to the TAB key has an "A" on it.
|
||||
///
|
||||
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
|
||||
@ -393,7 +393,7 @@ class LogicalKeyboardKey extends KeyboardKey {
|
||||
/// Conversely, if you wanted to implement an app where the "Q" key "quit"
|
||||
/// something, you'd want to look at the logical key to detect this, since you
|
||||
/// would like to have it match the key with "Q" on it, instead of always
|
||||
/// looking for "the key next next to the TAB key", since on a French keyboard,
|
||||
/// looking for "the key next to the TAB key", since on a French keyboard,
|
||||
/// the key next to the TAB key has an "A" on it.
|
||||
///
|
||||
/// {@tool dartpad --template=stateful_widget_scaffold}
|
||||
|
@ -87,7 +87,7 @@ class PhysicalKeyData {
|
||||
/// # key 101 "KEY_LINEFEED"
|
||||
/// key 477 F12 FUNCTION
|
||||
///
|
||||
/// We parse the commented out lines as well as the non-commented lines, so so
|
||||
/// We parse the commented out lines as well as the non-commented lines, so
|
||||
/// that we can get names for all of the available scan codes, not just ones
|
||||
/// defined for the generic profile.
|
||||
///
|
||||
|
@ -1442,7 +1442,7 @@ class Curves {
|
||||
/// {@animation 464 192 https://flutter.github.io/assets-for-api-docs/assets/animation/curve_ease_in.mp4}
|
||||
static const Cubic easeIn = Cubic(0.42, 0.0, 1.0, 1.0);
|
||||
|
||||
/// A cubic animation curve that starts starts slowly and ends linearly.
|
||||
/// A cubic animation curve that starts slowly and ends linearly.
|
||||
///
|
||||
/// The symmetric animation to [linearToEaseOut].
|
||||
///
|
||||
|
@ -766,7 +766,7 @@ class CupertinoIcons {
|
||||
/// * [time_solid], which is similar, but without dots on the clock face.
|
||||
static const IconData clock_solid = IconData(0xf4bf, fontFamily: iconFont, fontPackage: iconFontPackage);
|
||||
|
||||
/// <i class='cupertino-icons md-36'>clock</i> — Cupertino icon for a circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
|
||||
/// <i class='cupertino-icons md-36'>clock</i> — Cupertino icon for a circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
|
||||
/// This is the same icon as [clock] in cupertino_icons 1.0.0+.
|
||||
///
|
||||
/// See also:
|
||||
@ -776,7 +776,7 @@ class CupertinoIcons {
|
||||
/// * [clock_solid], which is similar, but filled in and with dots on the clock face.
|
||||
static const IconData time = IconData(0xf402, fontFamily: iconFont, fontPackage: iconFontPackage);
|
||||
|
||||
/// <i class='cupertino-icons md-36'>clock_fill</i> — Cupertino icon for a filled in circle with with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
|
||||
/// <i class='cupertino-icons md-36'>clock_fill</i> — Cupertino icon for a filled in circle with a 90 degree angle shape in the center, resembling a clock with hands showing 09:00.
|
||||
/// This is the same icon as [clock_fill] and [clock_solid] in cupertino_icons 1.0.0+.
|
||||
///
|
||||
/// See also:
|
||||
|
@ -32,7 +32,7 @@ enum DiagnosticLevel {
|
||||
/// the diagnostics to be formatted consistently with other diagnostics and
|
||||
/// they should expect them to sometimes be misleading. For example,
|
||||
/// [FlagProperty] and [ObjectFlagProperty] have uglier formatting when the
|
||||
/// property `value` does does not match a value with a custom flag
|
||||
/// property `value` does not match a value with a custom flag
|
||||
/// description. An example of a misleading diagnostic is a diagnostic for
|
||||
/// a property that has no effect because some other property of the object is
|
||||
/// set in a way that causes the hidden property to have no effect.
|
||||
|
@ -237,7 +237,7 @@ class ElevatedButton extends ButtonStyleButton {
|
||||
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
|
||||
/// scheme values like "onSurface(0.38)" are shorthand for
|
||||
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
|
||||
/// properties that are not followed by by a sublist have the same
|
||||
/// properties that are not followed by a sublist have the same
|
||||
/// value for all states, otherwise the values are as specified for
|
||||
/// each state, and "others" means all other states.
|
||||
///
|
||||
|
@ -448,7 +448,7 @@ abstract class MaterialLocalizations {
|
||||
/// Tooltip used to put the time picker into [TimePickerEntryMode.input].
|
||||
String get inputTimeModeButtonLabel;
|
||||
|
||||
/// The semantics label used to indicate which account is signed in in the
|
||||
/// The semantics label used to indicate which account is signed in the
|
||||
/// [UserAccountsDrawerHeader] widget.
|
||||
String get signedInLabel;
|
||||
|
||||
|
@ -112,7 +112,7 @@ class NavigationRail extends StatefulWidget {
|
||||
/// [minWidth].
|
||||
///
|
||||
/// The argument [extended] must not be null. [extended] can only be set to
|
||||
/// true when when the [labelType] is null or [NavigationRailLabelType.none].
|
||||
/// true when the [labelType] is null or [NavigationRailLabelType.none].
|
||||
///
|
||||
/// If [backgroundColor], [elevation], [groupAlignment], [labelType],
|
||||
/// [unselectedLabelTextStyle], [selectedLabelTextStyle],
|
||||
|
@ -218,7 +218,7 @@ class OutlinedButton extends ButtonStyleButton {
|
||||
/// "Theme.foo" is shorthand for `Theme.of(context).foo`. Color
|
||||
/// scheme values like "onSurface(0.38)" are shorthand for
|
||||
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
|
||||
/// properties that are not followed by by a sublist have the same
|
||||
/// properties that are not followed by a sublist have the same
|
||||
/// value for all states, otherwise the values are as specified for
|
||||
/// each state and "others" means all other states.
|
||||
///
|
||||
|
@ -26,7 +26,7 @@ import 'theme.dart';
|
||||
/// A paginated data table shows [rowsPerPage] rows of data per page and
|
||||
/// provides controls for showing other pages.
|
||||
///
|
||||
/// Data is read lazily from from a [DataTableSource]. The widget is presented
|
||||
/// Data is read lazily from a [DataTableSource]. The widget is presented
|
||||
/// as a [Card].
|
||||
///
|
||||
/// See also:
|
||||
|
@ -1505,7 +1505,7 @@ class Scaffold extends StatefulWidget {
|
||||
/// This property is often useful when the [bottomNavigationBar] has
|
||||
/// a non-rectangular shape, like [CircularNotchedRectangle], which
|
||||
/// adds a [FloatingActionButton] sized notch to the top edge of the bar.
|
||||
/// In this case specifying `extendBody: true` ensures that that scaffold's
|
||||
/// In this case specifying `extendBody: true` ensures that scaffold's
|
||||
/// body will be visible through the bottom navigation bar's notch.
|
||||
///
|
||||
/// See also:
|
||||
|
@ -2004,7 +2004,7 @@ class RoundedRectRangeSliderTrackShape extends RangeSliderTrackShape {
|
||||
/// [SliderThemeData.disabledActiveTrackColor],
|
||||
/// [SliderThemeData.disabledInactiveTrackColor].
|
||||
///
|
||||
/// ![A slider widget, consisting of 5 divisions and showing the round slider slider tick mark shape.]
|
||||
/// ![A slider widget, consisting of 5 divisions and showing the round slider tick mark shape.]
|
||||
/// (https://flutter.github.io/assets-for-api-docs/assets/material/rounded_slider_tick_mark_shape.png)
|
||||
///
|
||||
/// See also:
|
||||
|
@ -262,7 +262,7 @@ class TextButton extends ButtonStyleButton {
|
||||
/// `Theme.of(context).foo`. Color scheme values like
|
||||
/// "onSurface(0.38)" are shorthand for
|
||||
/// `onSurface.withOpacity(0.38)`. [MaterialStateProperty] valued
|
||||
/// properties that are not followed by by a sublist have the same
|
||||
/// properties that are not followed by a sublist have the same
|
||||
/// value for all states, otherwise the values are as specified for
|
||||
/// each state and "others" means all other states.
|
||||
///
|
||||
|
@ -158,7 +158,7 @@ abstract class EdgeInsetsGeometry {
|
||||
);
|
||||
}
|
||||
|
||||
/// Returns the a new [EdgeInsetsGeometry] object with all values greater than
|
||||
/// Returns a new [EdgeInsetsGeometry] object with all values greater than
|
||||
/// or equal to `min`, and less than or equal to `max`.
|
||||
EdgeInsetsGeometry clamp(EdgeInsetsGeometry min, EdgeInsetsGeometry max) {
|
||||
return _MixedEdgeInsets.fromLRSETB(
|
||||
|
@ -1860,7 +1860,7 @@ abstract class RenderBox extends RenderObject {
|
||||
///
|
||||
/// In such cases, it may be impossible (or at least impractical) to actually
|
||||
/// return a valid answer. In such cases, the function should call
|
||||
/// [debugCannotComputeDryLayout] from within an assert and and return a dummy
|
||||
/// [debugCannotComputeDryLayout] from within an assert and return a dummy
|
||||
/// value of `const Size(0, 0)`.
|
||||
@protected
|
||||
Size computeDryLayout(BoxConstraints constraints) {
|
||||
|
@ -70,7 +70,7 @@ abstract class FlowDelegate {
|
||||
/// respecting the constraints.
|
||||
///
|
||||
/// If this function depends on information other than the given constraints,
|
||||
/// override [shouldRelayout] to indicate when when the container should
|
||||
/// override [shouldRelayout] to indicate when the container should
|
||||
/// relayout.
|
||||
Size getSize(BoxConstraints constraints) => constraints.biggest;
|
||||
|
||||
@ -85,7 +85,7 @@ abstract class FlowDelegate {
|
||||
/// let them be larger or smaller than 100.0 by 100.0.
|
||||
///
|
||||
/// If this function depends on information other than the given constraints,
|
||||
/// override [shouldRelayout] to indicate when when the container should
|
||||
/// override [shouldRelayout] to indicate when the container should
|
||||
/// relayout.
|
||||
BoxConstraints getConstraintsForChild(int i, BoxConstraints constraints) => constraints;
|
||||
|
||||
@ -103,7 +103,7 @@ abstract class FlowDelegate {
|
||||
/// matrices for the children.
|
||||
///
|
||||
/// If this function depends on information other than the given context,
|
||||
/// override [shouldRepaint] to indicate when when the container should
|
||||
/// override [shouldRepaint] to indicate when the container should
|
||||
/// relayout.
|
||||
void paintChildren(FlowPaintingContext context);
|
||||
|
||||
|
@ -2439,7 +2439,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im
|
||||
/// or just after the trailing edge. These nodes have to be included in the
|
||||
/// semantics tree to implement implicit accessibility scrolling on iOS where
|
||||
/// the viewport scrolls implicitly when moving the accessibility focus from
|
||||
/// a the last visible node in the viewport to the first hidden one.
|
||||
/// the last visible node in the viewport to the first hidden one.
|
||||
///
|
||||
/// See also:
|
||||
///
|
||||
|
@ -919,7 +919,7 @@ class SliverHitTestEntry extends HitTestEntry {
|
||||
class SliverLogicalParentData extends ParentData {
|
||||
/// The position of the child relative to the zero scroll offset.
|
||||
///
|
||||
/// The number of pixels from from the zero scroll offset of the parent sliver
|
||||
/// The number of pixels from the zero scroll offset of the parent sliver
|
||||
/// (the line at which its [SliverConstraints.scrollOffset] is zero) to the
|
||||
/// side of the child closest to that offset. A [layoutOffset] can be null
|
||||
/// when it cannot be determined. The value will be set after layout.
|
||||
|
@ -38,7 +38,7 @@ abstract class KeyboardKey with Diagnosticable {
|
||||
/// As an example, if you wanted to implement an app where the "Q" key "quit"
|
||||
/// something, you'd want to look at the logical key to detect this, since you
|
||||
/// would like to have it match the key with "Q" on it, instead of always
|
||||
/// looking for "the key next next to the TAB key", since on a French keyboard,
|
||||
/// looking for "the key next to the TAB key", since on a French keyboard,
|
||||
/// the key next to the TAB key has an "A" on it.
|
||||
///
|
||||
/// Conversely, if you wanted a game where the key next to the CAPS LOCK (the
|
||||
@ -3524,7 +3524,7 @@ class LogicalKeyboardKey extends KeyboardKey {
|
||||
/// Conversely, if you wanted to implement an app where the "Q" key "quit"
|
||||
/// something, you'd want to look at the logical key to detect this, since you
|
||||
/// would like to have it match the key with "Q" on it, instead of always
|
||||
/// looking for "the key next next to the TAB key", since on a French keyboard,
|
||||
/// looking for "the key next to the TAB key", since on a French keyboard,
|
||||
/// the key next to the TAB key has an "A" on it.
|
||||
///
|
||||
/// {@tool dartpad --template=stateful_widget_scaffold}
|
||||
|
@ -345,7 +345,7 @@ class _SystemMouseCursorSession extends MouseCursorSession {
|
||||
/// I-beam, etc.
|
||||
///
|
||||
/// An instance of [SystemMouseCursor] refers to one cursor from each platform
|
||||
/// that represents the same concept, such as being text text, being clickable,
|
||||
/// that represents the same concept, such as being text, being clickable,
|
||||
/// or being a forbidden operation. Since the set of system cursors supported by
|
||||
/// each platform varies, multiple instances can correspond to the same system
|
||||
/// cursor.
|
||||
|
@ -155,7 +155,7 @@ abstract class KeyHelper {
|
||||
/// The numpad key from the specific key code mapping.
|
||||
LogicalKeyboardKey? numpadKey(int keyCode);
|
||||
|
||||
/// The logical key key from the specific key code mapping.
|
||||
/// The logical key from the specific key code mapping.
|
||||
LogicalKeyboardKey? logicalKey(int keyCode);
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ typedef _BucketVisitor = void Function(RestorationBucket bucket);
|
||||
/// to the notification, listeners must stop using the old bucket and restore
|
||||
/// their state from the information in the new [rootBucket].
|
||||
///
|
||||
/// Same platforms restrict the size of the restoration data. Therefore, the
|
||||
/// Some platforms restrict the size of the restoration data. Therefore, the
|
||||
/// data stored in the buckets should be as small as possible while still
|
||||
/// allowing the app to restore its current state from it. Data that can be
|
||||
/// retrieved from other services (e.g. a database or a web server) should not
|
||||
|
@ -823,14 +823,14 @@ class WidgetsApp extends StatefulWidget {
|
||||
/// [localeListResolutionCallback]. If the callback or result is null, it will
|
||||
/// fallback to trying the [localeResolutionCallback]. If both
|
||||
/// [localeResolutionCallback] and [localeListResolutionCallback] are left
|
||||
/// null or fail to resolve (return null), the a basic fallback algorithm will
|
||||
/// null or fail to resolve (return null), basic fallback algorithm will
|
||||
/// be used.
|
||||
///
|
||||
/// The priority of each available fallback is:
|
||||
///
|
||||
/// 1. [localeListResolutionCallback] is attempted first.
|
||||
/// 1. [localeResolutionCallback] is attempted second.
|
||||
/// 1. Flutter's basic resolution algorithm, as described in
|
||||
/// 1. [localeListResolutionCallback] is attempted.
|
||||
/// 2. [localeResolutionCallback] is attempted.
|
||||
/// 3. Flutter's basic resolution algorithm, as described in
|
||||
/// [supportedLocales], is attempted last.
|
||||
///
|
||||
/// Properly localized projects should provide a more advanced algorithm than
|
||||
|
@ -6165,7 +6165,7 @@ class RawImage extends LeafRenderObjectWidget {
|
||||
/// See also:
|
||||
///
|
||||
/// * [AssetBundle], the interface for asset bundles.
|
||||
/// * [rootBundle], the default default asset bundle.
|
||||
/// * [rootBundle], the default asset bundle.
|
||||
class DefaultAssetBundle extends InheritedWidget {
|
||||
/// Creates a widget that determines the default asset bundle for its descendants.
|
||||
///
|
||||
|
@ -228,8 +228,8 @@ class TextEditingController extends ValueNotifier<TextEditingValue> {
|
||||
/// in a separate statement. To change both the [text] and the [selection]
|
||||
/// change the controller's [value].
|
||||
///
|
||||
/// If the new selection if of non-zero length, or is outside the composing
|
||||
/// range, the composing composing range is cleared.
|
||||
/// If the new selection is of non-zero length, or is outside the composing
|
||||
/// range, the composing range is cleared.
|
||||
set selection(TextSelection newSelection) {
|
||||
if (!isSelectionWithinTextBounds(newSelection))
|
||||
throw FlutterError('invalid text selection: $newSelection');
|
||||
|
@ -44,7 +44,7 @@ import 'framework.dart';
|
||||
/// final NavigatorState navigator = Navigator.of(context);
|
||||
/// // This InheritedTheme.capture() saves references to themes that are
|
||||
/// // found above the context provided to this widget's build method
|
||||
/// // excluding themes are are found above the navigator. Those themes do
|
||||
/// // excluding themes are found above the navigator. Those themes do
|
||||
/// // not have to be captured, because they will already be visible from
|
||||
/// // the new route pushed onto said navigator.
|
||||
/// // Themes are captured outside of the route's builder because when the
|
||||
|
@ -377,7 +377,7 @@ abstract class TransitionRoute<T> extends OverlayRoute<T> {
|
||||
///
|
||||
/// If false, this route's [ModalRoute.buildTransitions] `secondaryAnimation` parameter
|
||||
/// value will be [kAlwaysDismissedAnimation]. In other words, this route
|
||||
/// will not animate when when [nextRoute] is pushed on top of it or when
|
||||
/// will not animate when [nextRoute] is pushed on top of it or when
|
||||
/// [nextRoute] is popped off of it.
|
||||
///
|
||||
/// Returns true by default.
|
||||
@ -577,7 +577,7 @@ mixin LocalHistoryRoute<T> on Route<T> {
|
||||
/// child: const Text('< Back'),
|
||||
/// onPressed: () {
|
||||
/// // Pop a route. If this is pressed while the red rectangle is
|
||||
/// // visible then it will will pop our local history entry, which
|
||||
/// // visible then it will pop our local history entry, which
|
||||
/// // will hide the red rectangle. Otherwise, the SecondPage will
|
||||
/// // navigate back to the HomePage.
|
||||
/// Navigator.of(context).pop();
|
||||
|
@ -433,7 +433,7 @@ class ScrollDragController implements Drag {
|
||||
String toString() => describeIdentity(this);
|
||||
}
|
||||
|
||||
/// The activity a scroll view performs when a the user drags their finger
|
||||
/// The activity a scroll view performs when the user drags their finger
|
||||
/// across the screen.
|
||||
///
|
||||
/// See also:
|
||||
|
@ -86,7 +86,7 @@ class BouncingScrollSimulation extends Simulation {
|
||||
/// model to a spring model which causes [x] to "spring" back to [trailingExtent].
|
||||
final double trailingExtent;
|
||||
|
||||
/// The spring used used to return [x] to either [leadingExtent] or [trailingExtent].
|
||||
/// The spring used to return [x] to either [leadingExtent] or [trailingExtent].
|
||||
final SpringDescription spring;
|
||||
|
||||
late FrictionSimulation _frictionSimulation;
|
||||
|
@ -88,7 +88,7 @@ abstract class SliverPersistentHeaderDelegate {
|
||||
/// Defaults to null.
|
||||
OverScrollHeaderStretchConfiguration? get stretchConfiguration => null;
|
||||
|
||||
/// Specifies how floating headers and pinned pinned headers should behave in
|
||||
/// Specifies how floating headers and pinned headers should behave in
|
||||
/// response to [RenderObject.showOnScreen] calls.
|
||||
///
|
||||
/// Defaults to null.
|
||||
|
@ -227,7 +227,7 @@ void main() {
|
||||
await tester.pump(); // start gesture
|
||||
await tester.pump(const Duration(milliseconds: 200)); // wait for splash to be well under way
|
||||
final RenderBox box = Material.of(tester.element(find.byType(InkWell)))! as RenderBox;
|
||||
// paints above above material
|
||||
// paints above material
|
||||
expect(box, paints..circle(x: 44.0, y: 0.0, color: splashColor));
|
||||
await gesture.up();
|
||||
});
|
||||
|
@ -6849,7 +6849,7 @@ void main() {
|
||||
defaultTargetPlatform == TargetPlatform.linux ||
|
||||
defaultTargetPlatform == TargetPlatform.fuchsia
|
||||
) {
|
||||
// `newValue` will will not be truncated on couple platforms.
|
||||
// `newValue` will not be truncated on couple platforms.
|
||||
expect(state.currentTextEditingValue.text, '你好啊朋友们');
|
||||
expect(state.currentTextEditingValue.composing, const TextRange(start: 3, end: 6));
|
||||
} else {
|
||||
|
@ -24,7 +24,7 @@ class Timeline {
|
||||
/// This is parsed from "traceEvents" data within [json] and sorted by
|
||||
/// timestamp. Anything without a valid timestamp is put in the beginning.
|
||||
///
|
||||
/// This will be null if there are are no "traceEvents" in the [json].
|
||||
/// This will be null if there are no "traceEvents" in the [json].
|
||||
final List<TimelineEvent>? events;
|
||||
}
|
||||
|
||||
|
@ -763,7 +763,7 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker
|
||||
Duration additionalTime = const Duration(milliseconds: 1000),
|
||||
}) => binding.runAsync<T?>(callback, additionalTime: additionalTime);
|
||||
|
||||
/// Whether there are any any transient callbacks scheduled.
|
||||
/// Whether there are any transient callbacks scheduled.
|
||||
///
|
||||
/// This essentially checks whether all animations have completed.
|
||||
///
|
||||
|
@ -120,7 +120,7 @@ class AndroidValidator extends DoctorValidator {
|
||||
|
||||
/// `java -version` response is not only a number, but also includes other
|
||||
/// information eg. `openjdk version "1.7.0_212"`.
|
||||
/// This method extracts only the semantic version from from that response.
|
||||
/// This method extracts only the semantic version from that response.
|
||||
static String? _extractJavaVersion(String? text) {
|
||||
if (text == null || text.isEmpty) {
|
||||
return null;
|
||||
|
@ -254,7 +254,7 @@ class TestCommand extends FlutterCommand with DeviceBasedDevelopmentArtifacts {
|
||||
_testFiles = argResults.rest.map<String>(globals.fs.path.absolute).toList();
|
||||
if (_testFiles.isEmpty) {
|
||||
// We don't scan the entire package, only the test/ subdirectory, so that
|
||||
// files with names like like "hit_test.dart" don't get run.
|
||||
// files with names like "hit_test.dart" don't get run.
|
||||
final Directory testDir = globals.fs.directory('test');
|
||||
if (!testDir.existsSync()) {
|
||||
throwToolExit('Test directory "${testDir.path}" not found.');
|
||||
|
@ -23,7 +23,7 @@ import '../src/common.dart';
|
||||
import '../src/context.dart';
|
||||
|
||||
void main() {
|
||||
testUsingContext('Exits with code 2 when when HttpException is thrown '
|
||||
testUsingContext('Exits with code 2 when HttpException is thrown '
|
||||
'during VM service connection', () async {
|
||||
final FakeResidentCompiler residentCompiler = FakeResidentCompiler();
|
||||
final FakeDevice device = FakeDevice()
|
||||
|
@ -186,7 +186,7 @@ void main() {
|
||||
device = createDevice(enableObservatory: true);
|
||||
});
|
||||
|
||||
testUsingContext('skips setting observatory port and uses the input port for for DDS instead', () async {
|
||||
testUsingContext('skips setting observatory port and uses the input port for DDS instead', () async {
|
||||
await device.start('example.dill');
|
||||
await device.observatoryUri;
|
||||
|
||||
|
@ -237,7 +237,7 @@ void main() {
|
||||
fileSystem = MemoryFileSystem.test();
|
||||
});
|
||||
|
||||
testUsingContext('Exits with code 2 when when HttpException is thrown '
|
||||
testUsingContext('Exits with code 2 when HttpException is thrown '
|
||||
'during VM service connection', () async {
|
||||
fileSystem.file('.packages')
|
||||
..createSync(recursive: true)
|
||||
|
@ -985,7 +985,7 @@ void main() {
|
||||
expect(response.statusCode, 404);
|
||||
}));
|
||||
|
||||
test('WebAssetServer strips leading base href off off asset requests', () => testbed.run(() async {
|
||||
test('WebAssetServer strips leading base href off of asset requests', () => testbed.run(() async {
|
||||
const String htmlContent = '<html><head><base href="/foo/"></head><body id="test"></body></html>';
|
||||
globals.fs.currentDirectory
|
||||
.childDirectory('web')
|
||||
|
@ -23,7 +23,7 @@ String testOutputsDirectory =
|
||||
/// succeeds.
|
||||
typedef ResponseDataCallback = FutureOr<void> Function(Map<String, dynamic>?);
|
||||
|
||||
/// Writes a json-serializable json data to
|
||||
/// Writes a json-serializable data to
|
||||
/// [testOutputsDirectory]/`testOutputFilename.json`.
|
||||
///
|
||||
/// This is the default `responseDataCallback` in [integrationDriver].
|
||||
|
Loading…
x
Reference in New Issue
Block a user