blob: cf27de6668379db4d6f155127dcc00bd8edf5369 [file] [log] [blame]
import '../../common/request.dart';
import '../../common/webdriver_handler.dart';
import 'utils.dart';
class W3cKeyboardHandler extends KeyboardHandler {
@override
WebDriverRequest buildSendChordRequest(Iterable<String> chordToSend) {
final keyDownActions = <Map<String, String>>[];
final keyUpActions = <Map<String, String>>[];
for (var s in chordToSend) {
keyDownActions.add({'type': 'keyDown', 'value': s});
keyUpActions.add({'type': 'keyUp', 'value': s});
}
return WebDriverRequest.postRequest('actions', {
'actions': [
{
'type': 'key',
'id': 'keys',
'actions':
keyDownActions + keyUpActions.reversed.toList(growable: false)
}
]
});
}
@override
void parseSendChordResponse(WebDriverResponse response) {
parseW3cResponse(response);
}
@override
WebDriverRequest buildSendKeysRequest(String keysToSend) {
final keyActions = <Map<String, String>>[];
for (var i = 0; i < keysToSend.length; ++i) {
keyActions.add({'type': 'keyDown', 'value': keysToSend[i]});
keyActions.add({'type': 'keyUp', 'value': keysToSend[i]});
}
return WebDriverRequest.postRequest('actions', {
'actions': [
{'type': 'key', 'id': 'keys', 'actions': keyActions}
]
});
}
@override
void parseSendKeysResponse(WebDriverResponse response) {
parseW3cResponse(response);
}
}