
Mainly, this adds documentation to members that were previously lacking documentation. It also adds a big block of documentation about improving performance of widgets. This also removes some references to package:collection and adds global setEquals and listEquals methods in foundation that we can use. (setEquals in particular should be much faster than the package:collection equivalent, though both should be faster as they avoid allocating new objects.) All remaining references now qualify the import so we know what our remaining dependencies are. Also lots of code reordering in Flutter driver to make the code consistent and apply the style guide more thoroughly.
116 lines
3.5 KiB
Dart
116 lines
3.5 KiB
Dart
// 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 'find.dart';
|
|
import 'message.dart';
|
|
|
|
/// A Flutter Driver command that taps on a target widget located by [finder].
|
|
class Tap extends CommandWithTarget {
|
|
/// Creates a tap command to tap on a widget located by [finder].
|
|
Tap(SerializableFinder finder, { Duration timeout }) : super(finder, timeout: timeout);
|
|
|
|
/// Deserializes this command from the value generated by [serialize].
|
|
Tap.deserialize(Map<String, String> json) : super.deserialize(json);
|
|
|
|
@override
|
|
final String kind = 'tap';
|
|
}
|
|
|
|
/// The result of a [Tap] command.
|
|
class TapResult extends Result {
|
|
/// Deserializes this result from JSON.
|
|
static TapResult fromJson(Map<String, dynamic> json) {
|
|
return new TapResult();
|
|
}
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() => <String, dynamic>{};
|
|
}
|
|
|
|
|
|
/// A Flutter Driver command that commands the driver to perform a scrolling action.
|
|
class Scroll extends CommandWithTarget {
|
|
/// Creates a scroll command that will attempt to scroll a scrollable view by
|
|
/// dragging a widget located by the given [finder].
|
|
Scroll(
|
|
SerializableFinder finder,
|
|
this.dx,
|
|
this.dy,
|
|
this.duration,
|
|
this.frequency, {
|
|
Duration timeout,
|
|
}) : super(finder, timeout: timeout);
|
|
|
|
/// Deserializes this command from the value generated by [serialize].
|
|
Scroll.deserialize(Map<String, String> json)
|
|
: this.dx = double.parse(json['dx']),
|
|
this.dy = double.parse(json['dy']),
|
|
this.duration = new Duration(microseconds: int.parse(json['duration'])),
|
|
this.frequency = int.parse(json['frequency']),
|
|
super.deserialize(json);
|
|
|
|
/// Delta X offset per move event.
|
|
final double dx;
|
|
|
|
/// Delta Y offset per move event.
|
|
final double dy;
|
|
|
|
/// The duration of the scrolling action
|
|
final Duration duration;
|
|
|
|
/// The frequency in Hz of the generated move events.
|
|
final int frequency;
|
|
|
|
@override
|
|
final String kind = 'scroll';
|
|
|
|
@override
|
|
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
|
|
'dx': '$dx',
|
|
'dy': '$dy',
|
|
'duration': '${duration.inMicroseconds}',
|
|
'frequency': '$frequency',
|
|
});
|
|
}
|
|
|
|
/// The result of a [Scroll] command.
|
|
class ScrollResult extends Result {
|
|
/// Deserializes this result from JSON.
|
|
static ScrollResult fromJson(Map<String, dynamic> json) {
|
|
return new ScrollResult();
|
|
}
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() => <String, dynamic>{};
|
|
}
|
|
|
|
/// A Flutter Driver command that commands the driver to ensure that the element
|
|
/// represented by [finder] has been scrolled completely into view.
|
|
class ScrollIntoView extends CommandWithTarget {
|
|
/// Creates this command given a [finder] used to locate the widget to be
|
|
/// scrolled into view.
|
|
ScrollIntoView(SerializableFinder finder, { this.alignment: 0.0, Duration timeout }) : super(finder, timeout: timeout);
|
|
|
|
/// Deserializes this command from the value generated by [serialize].
|
|
ScrollIntoView.deserialize(Map<String, String> json)
|
|
: this.alignment = double.parse(json['alignment']),
|
|
super.deserialize(json);
|
|
|
|
/// How the widget should be aligned.
|
|
///
|
|
/// This value is passed to [Scrollable.ensureVisible] as the value of its
|
|
/// argument of the same name.
|
|
///
|
|
/// Defaults to 0.0.
|
|
final double alignment;
|
|
|
|
@override
|
|
final String kind = 'scrollIntoView';
|
|
|
|
@override
|
|
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
|
|
'alignment': '$alignment',
|
|
});
|
|
}
|