<body>
<style>
.blue {
  border: 2px solid blue;
}
</style>
<p class="blue" contenteditable></p>
<script>
import "../resources/event-sender.dart" as eventSender;
import "dart:sky";
import "package:mojo/services/input_events/public/interfaces/input_event_constants.mojom.dart";
import "package:mojo/services/input_events/public/interfaces/input_key_codes.mojom.dart";

void main() {
  var control = document.querySelector('.blue');
  control.focus();
  eventSender.keyDown(KeyboardCode_A);
  eventSender.keyDown(KeyboardCode_B);
  eventSender.keyDown(KeyboardCode_C);
  eventSender.keyDown(KeyboardCode_D);
  eventSender.keyDown(KeyboardCode_E);
  eventSender.keyDown(KeyboardCode_LEFT, EventFlags_SHIFT_DOWN);
  eventSender.keyDown(KeyboardCode_LEFT, EventFlags_SHIFT_DOWN);
  eventSender.keyDown(KeyboardCode_LEFT, EventFlags_SHIFT_DOWN);
  eventSender.keyDown(KeyboardCode_X);
  eventSender.done();
}
</script>
</body>
