Chromium Code Reviews| Index: sky/tests/resources/event-sender.sky |
| diff --git a/sky/tests/resources/event-sender.sky b/sky/tests/resources/event-sender.sky |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..854d822aa12320cc99ab544d998e189d5703cb90 |
| --- /dev/null |
| +++ b/sky/tests/resources/event-sender.sky |
| @@ -0,0 +1,77 @@ |
| +<import src="/mojo/services/public/interfaces/input_events/input_event_constants.mojom.sky" as="constants" /> |
| +<import src="/mojo/services/public/interfaces/input_events/input_events.mojom.sky" as="events" /> |
| +<import src="/mojo/services/public/interfaces/input_events/input_key_codes.mojom.sky" as="codes" /> |
| +<import src="/sky/framework/shell.sky" as="shell" /> |
| +<import src="/sky/services/testing/test_harness.mojom.sky" as="harness" /> |
| +<script> |
| +var harness = shell.connectToService("mojo:sky_tester", harness.TestHarness); |
| + |
| +var g_done = false; |
|
rafaelw
2014/11/13 00:57:25
no need for g_ prefix
abarth-chromium
2014/11/13 01:00:50
Done.
|
| +var g_keyDownCount = 0; |
| + |
| +function keyDown(key, flag) { |
| + var eventFlags = constants.EventFlags.NONE; |
| + // TODO(abarth): Support more than one flag. |
| + if (constants.EventFlags.hasOwnProperty(flag)) |
| + eventFlags = constants.EventFlags[flag]; |
| + |
| + if (key.length != 1 && codes.KeyboardCode.hasOwnProperty(key)) { |
| + var keyCode = codes.KeyboardCode[key]; |
| + |
| + harness.dispatchInputEvent(new events.Event({ |
| + action: constants.EventType.KEY_PRESSED, |
| + flags: eventFlags, |
| + key_data: new events.KeyData({ |
| + key_code: keyCode, |
| + windows_key_code: keyCode, |
| + })})); |
| + |
| + harness.dispatchInputEvent(new events.Event({ |
| + action: constants.EventType.KEY_PRESSED, |
| + flags: eventFlags, |
| + key_data: new events.KeyData({ |
| + is_char: true, |
| + windows_key_code: keyCode, |
| + })})); |
| + } else { |
| + ++g_keyDownCount; |
| + var keyCode = key.charCodeAt(0); |
| + harness.dispatchInputEvent(new events.Event({ |
| + action: constants.EventType.KEY_PRESSED, |
| + flags: eventFlags, |
| + key_data: new events.KeyData({ |
| + key_code: keyCode, |
| + is_char: true, |
| + character: keyCode, |
| + text: keyCode, |
| + unmodified_text: keyCode, |
| + })})); |
| + } |
| +} |
| + |
| +function done() { |
| + g_done = true; |
|
rafaelw
2014/11/13 00:57:25
it's a little wierd this module is unusable after
abarth-chromium
2014/11/13 01:00:50
Done.
abarth-chromium
2014/11/13 01:00:50
Done.
|
| + checkComplete(); |
| +} |
| + |
| +function checkComplete() { |
| + if (!g_done) |
| + return; |
| + if (g_keyDownCount != 0) |
|
rafaelw
2014/11/13 00:57:25
indent
abarth-chromium
2014/11/13 01:00:50
Fixed.
|
| + return; |
| + setTimeout(function() { |
| + internals.notifyTestComplete(internals.contentAsText()); |
| + }); |
| +} |
| + |
| +document.addEventListener('keypress', function() { |
| + --g_keyDownCount; |
| + checkComplete(); |
| +}); |
| + |
| +module.exports = { |
| + keyDown: keyDown, |
| + done: done, |
| +}; |
| +</script> |
| +</sky> |