<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:mojom/mojo/input_event_constants.mojom.dart";
import "package:mojom/mojo/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>
