Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
db4dda20
Unverified
Commit
db4dda20
authored
Sep 04, 2020
by
Im-Kevin
Committed by
GitHub
Sep 04, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add finders for enableFlutterDriverExtension (#64308)
parent
02d01632
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
167 additions
and
86 deletions
+167
-86
diagnostics_tree.dart
packages/flutter_driver/lib/src/common/diagnostics_tree.dart
+2
-2
find.dart
packages/flutter_driver/lib/src/common/find.dart
+31
-28
geometry.dart
packages/flutter_driver/lib/src/common/geometry.dart
+2
-2
gesture.dart
packages/flutter_driver/lib/src/common/gesture.dart
+5
-5
text.dart
packages/flutter_driver/lib/src/common/text.dart
+1
-1
extension.dart
packages/flutter_driver/lib/src/extension/extension.dart
+107
-35
extension_test.dart
...es/flutter_driver/test/src/real_tests/extension_test.dart
+11
-11
find_test.dart
packages/flutter_driver/test/src/real_tests/find_test.dart
+8
-2
No files found.
packages/flutter_driver/lib/src/common/diagnostics_tree.dart
View file @
db4dda20
...
@@ -33,11 +33,11 @@ class GetDiagnosticsTree extends CommandWithTarget {
...
@@ -33,11 +33,11 @@ class GetDiagnosticsTree extends CommandWithTarget {
super
(
finder
,
timeout:
timeout
);
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
GetDiagnosticsTree
.
deserialize
(
Map
<
String
,
String
>
json
)
GetDiagnosticsTree
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
subtreeDepth
=
int
.
parse
(
json
[
'subtreeDepth'
]),
:
subtreeDepth
=
int
.
parse
(
json
[
'subtreeDepth'
]),
includeProperties
=
json
[
'includeProperties'
]
==
'true'
,
includeProperties
=
json
[
'includeProperties'
]
==
'true'
,
diagnosticsType
=
_diagnosticsTypeIndex
.
lookupBySimpleName
(
json
[
'diagnosticsType'
]),
diagnosticsType
=
_diagnosticsTypeIndex
.
lookupBySimpleName
(
json
[
'diagnosticsType'
]),
super
.
deserialize
(
json
);
super
.
deserialize
(
json
,
finderFactory
);
/// How many levels of children to include in the JSON result.
/// How many levels of children to include in the JSON result.
///
///
...
...
packages/flutter_driver/lib/src/common/find.dart
View file @
db4dda20
...
@@ -9,6 +9,25 @@ import 'package:meta/meta.dart';
...
@@ -9,6 +9,25 @@ import 'package:meta/meta.dart';
import
'error.dart'
;
import
'error.dart'
;
import
'message.dart'
;
import
'message.dart'
;
/// A factory for deserializing [Finder]s.
mixin
DeserializeFinderFactory
{
/// Deserializes the finder from JSON generated by [SerializableFinder.serialize].
SerializableFinder
deserializeFinder
(
Map
<
String
,
String
>
json
)
{
final
String
finderType
=
json
[
'finderType'
];
switch
(
finderType
)
{
case
'ByType'
:
return
ByType
.
deserialize
(
json
);
case
'ByValueKey'
:
return
ByValueKey
.
deserialize
(
json
);
case
'ByTooltipMessage'
:
return
ByTooltipMessage
.
deserialize
(
json
);
case
'BySemanticsLabel'
:
return
BySemanticsLabel
.
deserialize
(
json
);
case
'ByText'
:
return
ByText
.
deserialize
(
json
);
case
'PageBack'
:
return
const
PageBack
();
case
'Descendant'
:
return
Descendant
.
deserialize
(
json
,
this
);
case
'Ancestor'
:
return
Ancestor
.
deserialize
(
json
,
this
);
}
throw
DriverError
(
'Unsupported search specification type
$finderType
'
);
}
}
const
List
<
Type
>
_supportedKeyValueTypes
=
<
Type
>[
String
,
int
];
const
List
<
Type
>
_supportedKeyValueTypes
=
<
Type
>[
String
,
int
];
DriverError
_createInvalidKeyValueTypeError
(
String
invalidType
)
{
DriverError
_createInvalidKeyValueTypeError
(
String
invalidType
)
{
...
@@ -28,8 +47,8 @@ abstract class CommandWithTarget extends Command {
...
@@ -28,8 +47,8 @@ abstract class CommandWithTarget extends Command {
}
}
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
CommandWithTarget
.
deserialize
(
Map
<
String
,
String
>
json
)
CommandWithTarget
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
finder
=
SerializableFinder
.
deserialize
(
json
),
:
finder
=
finderFactory
.
deserializeFinder
(
json
),
super
.
deserialize
(
json
);
super
.
deserialize
(
json
);
/// Locates the object or objects targeted by this command.
/// Locates the object or objects targeted by this command.
...
@@ -58,7 +77,7 @@ class WaitFor extends CommandWithTarget {
...
@@ -58,7 +77,7 @@ class WaitFor extends CommandWithTarget {
:
super
(
finder
,
timeout:
timeout
);
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
WaitFor
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
WaitFor
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
String
get
kind
=>
'waitFor'
;
String
get
kind
=>
'waitFor'
;
...
@@ -88,7 +107,7 @@ class WaitForAbsent extends CommandWithTarget {
...
@@ -88,7 +107,7 @@ class WaitForAbsent extends CommandWithTarget {
:
super
(
finder
,
timeout:
timeout
);
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
WaitForAbsent
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
WaitForAbsent
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
String
get
kind
=>
'waitForAbsent'
;
String
get
kind
=>
'waitForAbsent'
;
...
@@ -126,22 +145,6 @@ abstract class SerializableFinder {
...
@@ -126,22 +145,6 @@ abstract class SerializableFinder {
Map
<
String
,
String
>
serialize
()
=>
<
String
,
String
>{
Map
<
String
,
String
>
serialize
()
=>
<
String
,
String
>{
'finderType'
:
finderType
,
'finderType'
:
finderType
,
};
};
/// Deserializes a finder from JSON generated by [serialize].
static
SerializableFinder
deserialize
(
Map
<
String
,
String
>
json
)
{
final
String
finderType
=
json
[
'finderType'
];
switch
(
finderType
)
{
case
'ByType'
:
return
ByType
.
deserialize
(
json
);
case
'ByValueKey'
:
return
ByValueKey
.
deserialize
(
json
);
case
'ByTooltipMessage'
:
return
ByTooltipMessage
.
deserialize
(
json
);
case
'BySemanticsLabel'
:
return
BySemanticsLabel
.
deserialize
(
json
);
case
'ByText'
:
return
ByText
.
deserialize
(
json
);
case
'PageBack'
:
return
const
PageBack
();
case
'Descendant'
:
return
Descendant
.
deserialize
(
json
);
case
'Ancestor'
:
return
Ancestor
.
deserialize
(
json
);
}
throw
DriverError
(
'Unsupported search specification type
$finderType
'
);
}
}
}
/// A Flutter Driver finder that finds widgets by tooltip text.
/// A Flutter Driver finder that finds widgets by tooltip text.
...
@@ -349,14 +352,14 @@ class Descendant extends SerializableFinder {
...
@@ -349,14 +352,14 @@ class Descendant extends SerializableFinder {
}
}
/// Deserializes the finder from JSON generated by [serialize].
/// Deserializes the finder from JSON generated by [serialize].
static
Descendant
deserialize
(
Map
<
String
,
String
>
json
)
{
static
Descendant
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
{
final
Map
<
String
,
String
>
jsonOfMatcher
=
final
Map
<
String
,
String
>
jsonOfMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
return
Descendant
(
return
Descendant
(
of:
SerializableFinder
.
deserialize
(
jsonOfMatcher
),
of:
finderFactory
.
deserializeFinder
(
jsonOfMatcher
),
matching:
SerializableFinder
.
deserialize
(
jsonMatchingMatcher
),
matching:
finderFactory
.
deserializeFinder
(
jsonMatchingMatcher
),
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
);
);
...
@@ -404,14 +407,14 @@ class Ancestor extends SerializableFinder {
...
@@ -404,14 +407,14 @@ class Ancestor extends SerializableFinder {
}
}
/// Deserializes the finder from JSON generated by [serialize].
/// Deserializes the finder from JSON generated by [serialize].
static
Ancestor
deserialize
(
Map
<
String
,
String
>
json
)
{
static
Ancestor
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
{
final
Map
<
String
,
String
>
jsonOfMatcher
=
final
Map
<
String
,
String
>
jsonOfMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
return
Ancestor
(
return
Ancestor
(
of:
SerializableFinder
.
deserialize
(
jsonOfMatcher
),
of:
finderFactory
.
deserializeFinder
(
jsonOfMatcher
),
matching:
SerializableFinder
.
deserialize
(
jsonMatchingMatcher
),
matching:
finderFactory
.
deserializeFinder
(
jsonMatchingMatcher
),
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
);
);
...
@@ -436,8 +439,8 @@ class GetSemanticsId extends CommandWithTarget {
...
@@ -436,8 +439,8 @@ class GetSemanticsId extends CommandWithTarget {
GetSemanticsId
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
GetSemanticsId
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Creates a command from a JSON map.
/// Creates a command from a JSON map.
GetSemanticsId
.
deserialize
(
Map
<
String
,
String
>
json
)
GetSemanticsId
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
);
:
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
String
get
kind
=>
'get_semantics_id'
;
String
get
kind
=>
'get_semantics_id'
;
...
...
packages/flutter_driver/lib/src/common/geometry.dart
View file @
db4dda20
...
@@ -36,9 +36,9 @@ class GetOffset extends CommandWithTarget {
...
@@ -36,9 +36,9 @@ class GetOffset extends CommandWithTarget {
GetOffset
(
SerializableFinder
finder
,
this
.
offsetType
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
GetOffset
(
SerializableFinder
finder
,
this
.
offsetType
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
GetOffset
.
deserialize
(
Map
<
String
,
String
>
json
)
GetOffset
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
offsetType
=
_offsetTypeIndex
.
lookupBySimpleName
(
json
[
'offsetType'
]),
:
offsetType
=
_offsetTypeIndex
.
lookupBySimpleName
(
json
[
'offsetType'
]),
super
.
deserialize
(
json
);
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
Map
<
String
,
String
>
serialize
()
=>
super
.
serialize
()..
addAll
(<
String
,
String
>{
Map
<
String
,
String
>
serialize
()
=>
super
.
serialize
()..
addAll
(<
String
,
String
>{
...
...
packages/flutter_driver/lib/src/common/gesture.dart
View file @
db4dda20
...
@@ -11,7 +11,7 @@ class Tap extends CommandWithTarget {
...
@@ -11,7 +11,7 @@ class Tap extends CommandWithTarget {
Tap
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
Tap
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
Tap
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
Tap
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
String
get
kind
=>
'tap'
;
String
get
kind
=>
'tap'
;
...
@@ -46,12 +46,12 @@ class Scroll extends CommandWithTarget {
...
@@ -46,12 +46,12 @@ class Scroll extends CommandWithTarget {
})
:
super
(
finder
,
timeout:
timeout
);
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
Scroll
.
deserialize
(
Map
<
String
,
String
>
json
)
Scroll
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
dx
=
double
.
parse
(
json
[
'dx'
]),
:
dx
=
double
.
parse
(
json
[
'dx'
]),
dy
=
double
.
parse
(
json
[
'dy'
]),
dy
=
double
.
parse
(
json
[
'dy'
]),
duration
=
Duration
(
microseconds:
int
.
parse
(
json
[
'duration'
])),
duration
=
Duration
(
microseconds:
int
.
parse
(
json
[
'duration'
])),
frequency
=
int
.
parse
(
json
[
'frequency'
]),
frequency
=
int
.
parse
(
json
[
'frequency'
]),
super
.
deserialize
(
json
);
super
.
deserialize
(
json
,
finderFactory
);
/// Delta X offset per move event.
/// Delta X offset per move event.
final
double
dx
;
final
double
dx
;
...
@@ -99,9 +99,9 @@ class ScrollIntoView extends CommandWithTarget {
...
@@ -99,9 +99,9 @@ class ScrollIntoView extends CommandWithTarget {
ScrollIntoView
(
SerializableFinder
finder
,
{
this
.
alignment
=
0.0
,
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
ScrollIntoView
(
SerializableFinder
finder
,
{
this
.
alignment
=
0.0
,
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
ScrollIntoView
.
deserialize
(
Map
<
String
,
String
>
json
)
ScrollIntoView
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
alignment
=
double
.
parse
(
json
[
'alignment'
]),
:
alignment
=
double
.
parse
(
json
[
'alignment'
]),
super
.
deserialize
(
json
);
super
.
deserialize
(
json
,
finderFactory
);
/// How the widget should be aligned.
/// How the widget should be aligned.
///
///
...
...
packages/flutter_driver/lib/src/common/text.dart
View file @
db4dda20
...
@@ -11,7 +11,7 @@ class GetText extends CommandWithTarget {
...
@@ -11,7 +11,7 @@ class GetText extends CommandWithTarget {
GetText
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
GetText
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
/// Deserializes this command from the value generated by [serialize].
GetText
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
GetText
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
@override
@override
String
get
kind
=>
'get_text'
;
String
get
kind
=>
'get_text'
;
...
...
packages/flutter_driver/lib/src/extension/extension.dart
View file @
db4dda20
This diff is collapsed.
Click to expand it.
packages/flutter_driver/test/src/real_tests/extension_test.dart
View file @
db4dda20
...
@@ -37,7 +37,7 @@ void main() {
...
@@ -37,7 +37,7 @@ void main() {
setUp
(()
{
setUp
(()
{
result
=
null
;
result
=
null
;
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
);
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
,
<
FinderExtension
>[]
);
});
});
testWidgets
(
'returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
...
@@ -98,7 +98,7 @@ void main() {
...
@@ -98,7 +98,7 @@ void main() {
setUp
(()
{
setUp
(()
{
result
=
null
;
result
=
null
;
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
);
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
,
<
FinderExtension
>[]
);
});
});
testWidgets
(
'waiting for NoTransientCallbacks returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'waiting for NoTransientCallbacks returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
...
@@ -464,7 +464,7 @@ void main() {
...
@@ -464,7 +464,7 @@ void main() {
group
(
'getSemanticsId'
,
()
{
group
(
'getSemanticsId'
,
()
{
FlutterDriverExtension
extension
;
FlutterDriverExtension
extension
;
setUp
(()
{
setUp
(()
{
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
});
});
testWidgets
(
'works when semantics are enabled'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'works when semantics are enabled'
,
(
WidgetTester
tester
)
async
{
...
@@ -513,7 +513,7 @@ void main() {
...
@@ -513,7 +513,7 @@ void main() {
});
});
testWidgets
(
'getOffset'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'getOffset'
,
(
WidgetTester
tester
)
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
Offset
>
getOffset
(
OffsetType
offset
)
async
{
Future
<
Offset
>
getOffset
(
OffsetType
offset
)
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
ByValueKey
(
1
),
offset
).
serialize
();
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
ByValueKey
(
1
),
offset
).
serialize
();
...
@@ -545,7 +545,7 @@ void main() {
...
@@ -545,7 +545,7 @@ void main() {
testWidgets
(
'getText'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'getText'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
String
>
getTextInternal
(
SerializableFinder
search
)
async
{
Future
<
String
>
getTextInternal
(
SerializableFinder
search
)
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
search
,
timeout:
const
Duration
(
seconds:
1
)).
serialize
();
final
Map
<
String
,
String
>
arguments
=
GetText
(
search
,
timeout:
const
Duration
(
seconds:
1
)).
serialize
();
...
@@ -615,7 +615,7 @@ void main() {
...
@@ -615,7 +615,7 @@ void main() {
testWidgets
(
'descendant finder'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'descendant finder'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
String
>
getDescendantText
({
String
of
,
bool
matchRoot
=
false
})
async
{
Future
<
String
>
getDescendantText
({
String
of
,
bool
matchRoot
=
false
})
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
...
@@ -660,7 +660,7 @@ void main() {
...
@@ -660,7 +660,7 @@ void main() {
testWidgets
(
'descendant finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'descendant finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
String
>
getDescendantText
()
async
{
Future
<
String
>
getDescendantText
()
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
...
@@ -694,7 +694,7 @@ void main() {
...
@@ -694,7 +694,7 @@ void main() {
testWidgets
(
'ancestor finder'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'ancestor finder'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
Offset
>
getAncestorTopLeft
({
String
of
,
String
matching
,
bool
matchRoot
=
false
})
async
{
Future
<
Offset
>
getAncestorTopLeft
({
String
of
,
String
matching
,
bool
matchRoot
=
false
})
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
...
@@ -764,7 +764,7 @@ void main() {
...
@@ -764,7 +764,7 @@ void main() {
testWidgets
(
'ancestor finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'ancestor finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
Offset
>
getAncestorTopLeft
()
async
{
Future
<
Offset
>
getAncestorTopLeft
()
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
...
@@ -812,7 +812,7 @@ void main() {
...
@@ -812,7 +812,7 @@ void main() {
});
});
testWidgets
(
'GetDiagnosticsTree'
,
(
WidgetTester
tester
)
async
{
testWidgets
(
'GetDiagnosticsTree'
,
(
WidgetTester
tester
)
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
Future
<
Map
<
String
,
Object
>>
getDiagnosticsTree
(
DiagnosticsType
type
,
SerializableFinder
finder
,
{
int
depth
=
0
,
bool
properties
=
true
})
async
{
Future
<
Map
<
String
,
Object
>>
getDiagnosticsTree
(
DiagnosticsType
type
,
SerializableFinder
finder
,
{
int
depth
=
0
,
bool
properties
=
true
})
async
{
final
Map
<
String
,
String
>
arguments
=
GetDiagnosticsTree
(
finder
,
type
,
subtreeDepth:
depth
,
includeProperties:
properties
).
serialize
();
final
Map
<
String
,
String
>
arguments
=
GetDiagnosticsTree
(
finder
,
type
,
subtreeDepth:
depth
,
includeProperties:
properties
).
serialize
();
...
@@ -882,7 +882,7 @@ void main() {
...
@@ -882,7 +882,7 @@ void main() {
Map
<
String
,
dynamic
>
result
;
Map
<
String
,
dynamic
>
result
;
setUp
(()
{
setUp
(()
{
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
result
=
null
;
result
=
null
;
});
});
...
...
packages/flutter_driver/test/src/real_tests/find_test.dart
View file @
db4dda20
...
@@ -2,11 +2,15 @@
...
@@ -2,11 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// found in the LICENSE file.
import
'package:flutter_driver/flutter_driver.dart'
;
import
'package:flutter_driver/src/common/find.dart'
;
import
'package:flutter_driver/src/common/find.dart'
;
import
'package:mockito/mockito.dart'
;
import
'../../common.dart'
;
import
'../../common.dart'
;
void
main
(
)
{
void
main
(
)
{
MockDeserialize
mockDeserialize
;
test
(
'Ancestor finder serialize'
,
()
{
test
(
'Ancestor finder serialize'
,
()
{
const
SerializableFinder
of
=
ByType
(
'Text'
);
const
SerializableFinder
of
=
ByType
(
'Text'
);
final
SerializableFinder
matching
=
ByValueKey
(
'hello'
);
final
SerializableFinder
matching
=
ByValueKey
(
'hello'
);
...
@@ -35,7 +39,7 @@ void main() {
...
@@ -35,7 +39,7 @@ void main() {
'firstMatchOnly'
:
'true'
,
'firstMatchOnly'
:
'true'
,
};
};
final
Ancestor
a
=
Ancestor
.
deserialize
(
serialized
);
final
Ancestor
a
=
Ancestor
.
deserialize
(
serialized
,
mockDeserialize
);
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matchRoot
,
isTrue
);
expect
(
a
.
matchRoot
,
isTrue
);
...
@@ -70,10 +74,12 @@ void main() {
...
@@ -70,10 +74,12 @@ void main() {
'firstMatchOnly'
:
'true'
,
'firstMatchOnly'
:
'true'
,
};
};
final
Descendant
a
=
Descendant
.
deserialize
(
serialized
);
final
Descendant
a
=
Descendant
.
deserialize
(
serialized
,
mockDeserialize
);
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matchRoot
,
isTrue
);
expect
(
a
.
matchRoot
,
isTrue
);
expect
(
a
.
firstMatchOnly
,
isTrue
);
expect
(
a
.
firstMatchOnly
,
isTrue
);
});
});
}
}
class
MockDeserialize
with
Mock
,
DeserializeFinderFactory
{
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment