<sky>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<import src="/gen/mojo/services/input_events/public/interfaces/input_event_constants.mojom.sky" as="constants" />
<import src="/gen/mojo/services/input_events/public/interfaces/input_events.mojom.sky" as="events" />
<import src="/gen/sky/services/testing/test_harness.mojom.sky" as="harness" />
<import src="/sky/framework/shell.sky" as="shell" />

<script>
describe('Sky event sender', function() {
  it('should be able to send events', function(done) {
    var sky = document.querySelector('sky')
    sky.addEventListener('keypress', function(event) {
      assert.equal(event.type, 'keypress');
      assert.equal(event.key, 0);
      assert.equal(event.charCode, 0x41);
      done();
    });

    var testHarness = shell.connectToService(
        "mojo:sky_tester", harness.TestHarness);
    testHarness.dispatchInputEvent(new events.Event({
      action: constants.EventType.KEY_PRESSED,
      key_data: new events.KeyData({
        windows_key_code: 0x41,
        text: 0x41,
        unmodified_text: 0x41,
        is_char: true,
        character: 0x41,
      }),
    }));
  });
});
</script>
</sky>
