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
14af5bbe
Unverified
Commit
14af5bbe
authored
Sep 05, 2020
by
Jonah Williams
Committed by
GitHub
Sep 05, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Add finders for enableFlutterDriverExtension (#64308)" (#65273)
This reverts commit
db4dda20
.
parent
db4dda20
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
86 additions
and
167 deletions
+86
-167
diagnostics_tree.dart
packages/flutter_driver/lib/src/common/diagnostics_tree.dart
+2
-2
find.dart
packages/flutter_driver/lib/src/common/find.dart
+28
-31
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
+35
-107
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
+2
-8
No files found.
packages/flutter_driver/lib/src/common/diagnostics_tree.dart
View file @
14af5bbe
...
...
@@ -33,11 +33,11 @@ class GetDiagnosticsTree extends CommandWithTarget {
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
GetDiagnosticsTree
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
GetDiagnosticsTree
.
deserialize
(
Map
<
String
,
String
>
json
)
:
subtreeDepth
=
int
.
parse
(
json
[
'subtreeDepth'
]),
includeProperties
=
json
[
'includeProperties'
]
==
'true'
,
diagnosticsType
=
_diagnosticsTypeIndex
.
lookupBySimpleName
(
json
[
'diagnosticsType'
]),
super
.
deserialize
(
json
,
finderFactory
);
super
.
deserialize
(
json
);
/// How many levels of children to include in the JSON result.
///
...
...
packages/flutter_driver/lib/src/common/find.dart
View file @
14af5bbe
...
...
@@ -9,25 +9,6 @@ import 'package:meta/meta.dart';
import
'error.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
];
DriverError
_createInvalidKeyValueTypeError
(
String
invalidType
)
{
...
...
@@ -47,8 +28,8 @@ abstract class CommandWithTarget extends Command {
}
/// Deserializes this command from the value generated by [serialize].
CommandWithTarget
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
finder
=
finderFactory
.
deserializeFinder
(
json
),
CommandWithTarget
.
deserialize
(
Map
<
String
,
String
>
json
)
:
finder
=
SerializableFinder
.
deserialize
(
json
),
super
.
deserialize
(
json
);
/// Locates the object or objects targeted by this command.
...
...
@@ -77,7 +58,7 @@ class WaitFor extends CommandWithTarget {
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
WaitFor
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
WaitFor
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
@override
String
get
kind
=>
'waitFor'
;
...
...
@@ -107,7 +88,7 @@ class WaitForAbsent extends CommandWithTarget {
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
WaitForAbsent
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
WaitForAbsent
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
@override
String
get
kind
=>
'waitForAbsent'
;
...
...
@@ -145,6 +126,22 @@ abstract class SerializableFinder {
Map
<
String
,
String
>
serialize
()
=>
<
String
,
String
>{
'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.
...
...
@@ -352,14 +349,14 @@ class Descendant extends SerializableFinder {
}
/// Deserializes the finder from JSON generated by [serialize].
static
Descendant
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
{
static
Descendant
deserialize
(
Map
<
String
,
String
>
json
)
{
final
Map
<
String
,
String
>
jsonOfMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
return
Descendant
(
of:
finderFactory
.
deserializeFinder
(
jsonOfMatcher
),
matching:
finderFactory
.
deserializeFinder
(
jsonMatchingMatcher
),
of:
SerializableFinder
.
deserialize
(
jsonOfMatcher
),
matching:
SerializableFinder
.
deserialize
(
jsonMatchingMatcher
),
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
);
...
...
@@ -407,14 +404,14 @@ class Ancestor extends SerializableFinder {
}
/// Deserializes the finder from JSON generated by [serialize].
static
Ancestor
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
{
static
Ancestor
deserialize
(
Map
<
String
,
String
>
json
)
{
final
Map
<
String
,
String
>
jsonOfMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'of'
])
as
Map
<
String
,
dynamic
>);
final
Map
<
String
,
String
>
jsonMatchingMatcher
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
json
[
'matching'
])
as
Map
<
String
,
dynamic
>);
return
Ancestor
(
of:
finderFactory
.
deserializeFinder
(
jsonOfMatcher
),
matching:
finderFactory
.
deserializeFinder
(
jsonMatchingMatcher
),
of:
SerializableFinder
.
deserialize
(
jsonOfMatcher
),
matching:
SerializableFinder
.
deserialize
(
jsonMatchingMatcher
),
matchRoot:
json
[
'matchRoot'
]
==
'true'
,
firstMatchOnly:
json
[
'firstMatchOnly'
]
==
'true'
,
);
...
...
@@ -439,8 +436,8 @@ class GetSemanticsId extends CommandWithTarget {
GetSemanticsId
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Creates a command from a JSON map.
GetSemanticsId
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
GetSemanticsId
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
@override
String
get
kind
=>
'get_semantics_id'
;
...
...
packages/flutter_driver/lib/src/common/geometry.dart
View file @
14af5bbe
...
...
@@ -36,9 +36,9 @@ class GetOffset extends CommandWithTarget {
GetOffset
(
SerializableFinder
finder
,
this
.
offsetType
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
GetOffset
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
GetOffset
.
deserialize
(
Map
<
String
,
String
>
json
)
:
offsetType
=
_offsetTypeIndex
.
lookupBySimpleName
(
json
[
'offsetType'
]),
super
.
deserialize
(
json
,
finderFactory
);
super
.
deserialize
(
json
);
@override
Map
<
String
,
String
>
serialize
()
=>
super
.
serialize
()..
addAll
(<
String
,
String
>{
...
...
packages/flutter_driver/lib/src/common/gesture.dart
View file @
14af5bbe
...
...
@@ -11,7 +11,7 @@ class Tap extends CommandWithTarget {
Tap
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
Tap
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
Tap
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
@override
String
get
kind
=>
'tap'
;
...
...
@@ -46,12 +46,12 @@ class Scroll extends CommandWithTarget {
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
Scroll
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
Scroll
.
deserialize
(
Map
<
String
,
String
>
json
)
:
dx
=
double
.
parse
(
json
[
'dx'
]),
dy
=
double
.
parse
(
json
[
'dy'
]),
duration
=
Duration
(
microseconds:
int
.
parse
(
json
[
'duration'
])),
frequency
=
int
.
parse
(
json
[
'frequency'
]),
super
.
deserialize
(
json
,
finderFactory
);
super
.
deserialize
(
json
);
/// Delta X offset per move event.
final
double
dx
;
...
...
@@ -99,9 +99,9 @@ class ScrollIntoView extends CommandWithTarget {
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
,
DeserializeFinderFactory
finderFactory
)
ScrollIntoView
.
deserialize
(
Map
<
String
,
String
>
json
)
:
alignment
=
double
.
parse
(
json
[
'alignment'
]),
super
.
deserialize
(
json
,
finderFactory
);
super
.
deserialize
(
json
);
/// How the widget should be aligned.
///
...
...
packages/flutter_driver/lib/src/common/text.dart
View file @
14af5bbe
...
...
@@ -11,7 +11,7 @@ class GetText extends CommandWithTarget {
GetText
(
SerializableFinder
finder
,
{
Duration
timeout
})
:
super
(
finder
,
timeout:
timeout
);
/// Deserializes this command from the value generated by [serialize].
GetText
.
deserialize
(
Map
<
String
,
String
>
json
,
DeserializeFinderFactory
finderFactory
)
:
super
.
deserialize
(
json
,
finderFactory
);
GetText
.
deserialize
(
Map
<
String
,
String
>
json
)
:
super
.
deserialize
(
json
);
@override
String
get
kind
=>
'get_text'
;
...
...
packages/flutter_driver/lib/src/extension/extension.dart
View file @
14af5bbe
This diff is collapsed.
Click to expand it.
packages/flutter_driver/test/src/real_tests/extension_test.dart
View file @
14af5bbe
...
...
@@ -37,7 +37,7 @@ void main() {
setUp
(()
{
result
=
null
;
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
,
<
FinderExtension
>[]
);
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
);
});
testWidgets
(
'returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -98,7 +98,7 @@ void main() {
setUp
(()
{
result
=
null
;
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
,
<
FinderExtension
>[]
);
extension
=
FlutterDriverExtension
((
String
message
)
async
{
log
.
add
(
message
);
return
(
messageId
+=
1
).
toString
();
},
false
);
});
testWidgets
(
'waiting for NoTransientCallbacks returns immediately when transient callback queue is empty'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -464,7 +464,7 @@ void main() {
group
(
'getSemanticsId'
,
()
{
FlutterDriverExtension
extension
;
setUp
(()
{
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
});
testWidgets
(
'works when semantics are enabled'
,
(
WidgetTester
tester
)
async
{
...
...
@@ -513,7 +513,7 @@ void main() {
});
testWidgets
(
'getOffset'
,
(
WidgetTester
tester
)
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
Offset
>
getOffset
(
OffsetType
offset
)
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
ByValueKey
(
1
),
offset
).
serialize
();
...
...
@@ -545,7 +545,7 @@ void main() {
testWidgets
(
'getText'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
String
>
getTextInternal
(
SerializableFinder
search
)
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
search
,
timeout:
const
Duration
(
seconds:
1
)).
serialize
();
...
...
@@ -615,7 +615,7 @@ void main() {
testWidgets
(
'descendant finder'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
String
>
getDescendantText
({
String
of
,
bool
matchRoot
=
false
})
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
...
...
@@ -660,7 +660,7 @@ void main() {
testWidgets
(
'descendant finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
String
>
getDescendantText
()
async
{
final
Map
<
String
,
String
>
arguments
=
GetText
(
Descendant
(
...
...
@@ -694,7 +694,7 @@ void main() {
testWidgets
(
'ancestor finder'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
Offset
>
getAncestorTopLeft
({
String
of
,
String
matching
,
bool
matchRoot
=
false
})
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
...
...
@@ -764,7 +764,7 @@ void main() {
testWidgets
(
'ancestor finder firstMatchOnly'
,
(
WidgetTester
tester
)
async
{
await
silenceDriverLogger
(()
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
Future
<
Offset
>
getAncestorTopLeft
()
async
{
final
Map
<
String
,
String
>
arguments
=
GetOffset
(
Ancestor
(
...
...
@@ -812,7 +812,7 @@ void main() {
});
testWidgets
(
'GetDiagnosticsTree'
,
(
WidgetTester
tester
)
async
{
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
final
FlutterDriverExtension
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
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
();
...
...
@@ -882,7 +882,7 @@ void main() {
Map
<
String
,
dynamic
>
result
;
setUp
(()
{
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
,
<
FinderExtension
>[]
);
extension
=
FlutterDriverExtension
((
String
arg
)
async
=>
''
,
true
);
result
=
null
;
});
...
...
packages/flutter_driver/test/src/real_tests/find_test.dart
View file @
14af5bbe
...
...
@@ -2,15 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter_driver/flutter_driver.dart'
;
import
'package:flutter_driver/src/common/find.dart'
;
import
'package:mockito/mockito.dart'
;
import
'../../common.dart'
;
void
main
(
)
{
MockDeserialize
mockDeserialize
;
test
(
'Ancestor finder serialize'
,
()
{
const
SerializableFinder
of
=
ByType
(
'Text'
);
final
SerializableFinder
matching
=
ByValueKey
(
'hello'
);
...
...
@@ -39,7 +35,7 @@ void main() {
'firstMatchOnly'
:
'true'
,
};
final
Ancestor
a
=
Ancestor
.
deserialize
(
serialized
,
mockDeserialize
);
final
Ancestor
a
=
Ancestor
.
deserialize
(
serialized
);
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matchRoot
,
isTrue
);
...
...
@@ -74,12 +70,10 @@ void main() {
'firstMatchOnly'
:
'true'
,
};
final
Descendant
a
=
Descendant
.
deserialize
(
serialized
,
mockDeserialize
);
final
Descendant
a
=
Descendant
.
deserialize
(
serialized
);
expect
(
a
.
of
,
isA
<
ByType
>());
expect
(
a
.
matching
,
isA
<
ByValueKey
>());
expect
(
a
.
matchRoot
,
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