Devtools: Add a test on KeyEventUnhandled

This test covers some uncovered code modified by crrev.com/c/1550455

Change-Id: I4ba58b8de040b484f628505093a8754d13e6c5a3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1559321
Auto-Submit: Pâris Meuleman <[email protected]>
Reviewed-by: Sylvain Defresne <[email protected]>
Reviewed-by: Andrey Kosyakov <[email protected]>
Commit-Queue: Pâris Meuleman <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#651648}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c7b23f3bab4c8180fb856791ecb73f4293fd90a9
diff --git a/front_end/Tests.js b/front_end/Tests.js
index 49f2396..9ffe80a 100644
--- a/front_end/Tests.js
+++ b/front_end/Tests.js
@@ -727,6 +727,35 @@
     }
   };
 
+  TestSuite.prototype.testKeyEventUnhandled = function() {
+    function onKeyEventUnhandledKeyDown(event) {
+      this.assertEquals('keydown', event.data.type);
+      this.assertEquals('F8', event.data.key);
+      this.assertEquals(119, event.data.keyCode);
+      this.assertEquals(0, event.data.modifiers);
+      this.assertEquals('', event.data.code);
+      InspectorFrontendHost.events.removeEventListener(
+          InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyDown, this);
+      InspectorFrontendHost.events.addEventListener(
+          InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyUp, this);
+      SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent(
+          {type: 'keyUp', key: 'F8', code: 'F8', windowsVirtualKeyCode: 119, nativeVirtualKeyCode: 119});
+    }
+    function onKeyEventUnhandledKeyUp(event) {
+      this.assertEquals('keyup', event.data.type);
+      this.assertEquals('F8', event.data.key);
+      this.assertEquals(119, event.data.keyCode);
+      this.assertEquals(0, event.data.modifiers);
+      this.assertEquals('F8', event.data.code);
+      this.releaseControl();
+    }
+    this.takeControl();
+    InspectorFrontendHost.events.addEventListener(
+        InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyDown, this);
+    SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent(
+        {type: 'rawKeyDown', key: 'F8', windowsVirtualKeyCode: 119, nativeVirtualKeyCode: 119});
+  };
+
   TestSuite.prototype.testDispatchKeyEventDoesNotCrash = function() {
     SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent(
         {type: 'rawKeyDown', windowsVirtualKeyCode: 0x23, key: 'End'});