[flutter_driver] Remove runUnsynchronized in VMServiceFlutterDriver (#87467)

This commit is contained in:
Nguyen Phuc Loi 2021-08-03 11:45:02 +07:00 committed by GitHub
parent 52bf9dbbd7
commit 31fd0f754f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 12 deletions

View File

@ -485,18 +485,6 @@ class VMServiceFlutterDriver extends FlutterDriver {
}
}
@override
Future<T> runUnsynchronized<T>(Future<T> Function() action, { Duration? timeout }) async {
await sendCommand(SetFrameSync(false, timeout: timeout));
T result;
try {
result = await action();
} finally {
await sendCommand(SetFrameSync(true, timeout: timeout));
}
return result;
}
@override
Future<void> forceGC() async {
try {

View File

@ -666,6 +666,23 @@ void main() {
test('VMServiceFlutterDriver does not support webDriver', () async {
expect(() => driver.webDriver, throwsUnsupportedError);
});
group('runUnsynchronized', () {
test('wrap waitFor with runUnsynchronized', () async {
fakeClient.responses['waitFor'] = makeFakeResponse(<String, dynamic>{});
fakeClient.responses['set_frame_sync'] = makeFakeResponse(<String, dynamic>{});
await driver.runUnsynchronized(() async {
await driver.waitFor(find.byTooltip('foo'), timeout: _kTestTimeout);
});
expect(fakeClient.commandLog, <String>[
'ext.flutter.driver {command: set_frame_sync, enabled: false}',
'ext.flutter.driver {command: waitFor, timeout: $_kSerializedTestTimeout, finderType: ByTooltipMessage, text: foo}',
'ext.flutter.driver {command: set_frame_sync, enabled: true}'
]);
});
});
});
group('VMServiceFlutterDriver with custom timeout', () {
@ -965,6 +982,23 @@ void main() {
expect(() => driver.serviceClient.getVM(), throwsUnsupportedError);
});
});
group('runUnsynchronized', () {
test('wrap waitFor with runUnsynchronized', () async {
fakeConnection.responses['waitFor'] = jsonEncode(makeFakeResponse(<String, dynamic>{'text': 'hello'}));
fakeConnection.responses['set_frame_sync'] = jsonEncode(makeFakeResponse(<String, dynamic>{}));
await driver.runUnsynchronized(() async {
await driver.waitFor(find.byTooltip('foo'), timeout: _kTestTimeout);
});
expect(fakeConnection.commandLog, <String>[
r'''window.$flutterDriver('{"command":"set_frame_sync","enabled":"false"}') null''',
r'''window.$flutterDriver('{"command":"waitFor","timeout":"1234","finderType":"ByTooltipMessage","text":"foo"}') 0:00:01.234000''',
r'''window.$flutterDriver('{"command":"set_frame_sync","enabled":"true"}') null''',
]);
});
});
});
group('WebFlutterDriver with non-chrome browser', () {