New issue
Advanced search Search tips

Issue 652439 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Task

Blocking:
issue 701863
issue 707649



Sign in to add a comment

InputEvent: Re-write testRunner tests into manual tests and automating through GPU benchmark extension

Project Member Reported by chongz@chromium.org, Oct 3 2016

Issue description

Currently all tests for InputEvent are written in WPT format but using testRunner/eventSender.

We need to:
  1. Turn them into manual tests
  2. Add keyboard testing capability to GPU benchmark extension
  3. Automating the manual tests
  4. Upload manual tests to w3c/WPT

 

Comment 1 by chongz@chromium.org, Mar 15 2017

Blocking: 701863

Comment 2 by chongz@chromium.org, Mar 15 2017

Blocking: -585875
Blocking: 707649
Is there a separate bug for creating automated tests for InputEvent? What testing infrastructure is missing to make that possible?
Cc: foolip@chromium.org
Re #4:
I'm not sure if I fully understood your query, but the current status is:
  * We have layout tests located in https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/fast/events/inputevents/
  * Those tests require simulation for trusted keyboard, IME and spellcheck input, e.g.
    * eventSender.keyDown()
    * textInputController.setComposition()
    * testRunner.execCommand()
    * internals.setMarker()/replaceMisspelled()
  * It's not easy to simulate these trusted input through 'testharness.js'
  * AKAIK WebDriver doesn't have good support for keyboard simulation either

A possible solution is to re-write those layout tests into manual WPT, which means:
  * Other browsers will be able to run these tests manually
  * Chrome can have some separate scripts to inject trusted input, still through eventSender/textInputController/testRunner/internals API

I didn't prioritize this before because I didn't see a lot benefits, but I might be wrong.
Cc: nzolghadr@chromium.org
nzolghadr@, will everything in #5 be addressed by your input automation plan, or which bits will be left?
To be clear, we hope that everything will be possible to test using web-platform-tests. Lots of things currently aren't, so I'm trying to understand why and if there's anyone working on unblocking those things.
Cc: dtapu...@chromium.org lanwei@chromium.org
From the API point of view, I assume we can use the same proposed API in wpt to inject keyboard inputs as well. Like adding an action for keydown and one for keyup and that should be it. Chong would that suffice?
https://navidz.github.io/web-input-automation/

So the we will have something like:


{
  "source": "keyboard",
  "actions": [
      { "name": "keydown" , "key": "key_identifier1"},
      { "name": "keyup" , "key": "key_identifier1"},
  ]
}


Regarding the GPU benchmarnking, as Chong mentioned in the original issue description GPU benchmarking doesn't support injecting keyboard input yet. So even if I manage to get that API in wpt we still need to implement the GPU benchmarnking side of it to be able to automate these keyboard tests on our bots. We are going to work on adding the keyboard input to GPU benchmarking this quarter while I'm trying to push the API to wpt.
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9e1bf16a54295bcc2aa6d96031640ac336b06cf2

commit 9e1bf16a54295bcc2aa6d96031640ac336b06cf2
Author: Chong Zhang <chongz@chromium.org>
Date: Fri Sep 15 17:29:29 2017

[InputEvent] Rewrite Cut/Paste and execCommand tests into WPT

* 'input-events-cut-paste-manual.html' passes on both Chrome and Safari.
* 'input-events-exec-command.html' fails on Safari:
https://bugs.webkit.org/show_bug.cgi?id=165197

Bug: 652439
Change-Id: I7303e2234afe72d74f451143ed206bdde105467c
Reviewed-on: https://chromium-review.googlesource.com/664277
Commit-Queue: Chong Zhang <chongz@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502295}
[modify] https://crrev.com/9e1bf16a54295bcc2aa6d96031640ac336b06cf2/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/9e1bf16a54295bcc2aa6d96031640ac336b06cf2/third_party/WebKit/LayoutTests/external/wpt/input-events/input-events-cut-paste-manual.html
[rename] https://crrev.com/9e1bf16a54295bcc2aa6d96031640ac336b06cf2/third_party/WebKit/LayoutTests/external/wpt/input-events/input-events-exec-command.html
[add] https://crrev.com/9e1bf16a54295bcc2aa6d96031640ac336b06cf2/third_party/WebKit/LayoutTests/external/wpt_automation/input-events/input-events-cut-paste-manual-automation.js
[modify] https://crrev.com/9e1bf16a54295bcc2aa6d96031640ac336b06cf2/third_party/WebKit/LayoutTests/external/wpt_automation/input-events/inputevent_common_input.js
[delete] https://crrev.com/258dfd85e3f0d0cfeb6c168b4324bf0a02388078/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-cut-paste.html

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e466de999e5626081881a727ecf147fc1743532e

commit e466de999e5626081881a727ecf147fc1743532e
Author: Chong Zhang <chongz@chromium.org>
Date: Fri Sep 15 19:07:21 2017

[InputEvent] Rewrite typing and getTargetRanges() tests into WPT

* 'input-events-typing-manual.html' passes on both Chrome and Safari.
* 'input-events-get-target-ranges-manual.html' fails on Safari.

Bug: 652439
Change-Id: I0d2fd6281e2ed615890278b7f6417ba41f3ed22a
Reviewed-on: https://chromium-review.googlesource.com/666197
Commit-Queue: Chong Zhang <chongz@chromium.org>
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502325}
[modify] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/external/wpt/input-events/input-events-get-target-ranges-manual.html
[delete] https://crrev.com/aa763fabc40f38692b77b1212d171c126eb2b538/third_party/WebKit/LayoutTests/external/wpt/input-events/input-events-typing-data-manual.html
[add] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/external/wpt/input-events/input-events-typing-manual.html
[add] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/external/wpt_automation/input-events/input-events-get-target-ranges-manual-automation.js
[rename] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/external/wpt_automation/input-events/input-events-typing-manual-automation.js
[modify] https://crrev.com/e466de999e5626081881a727ecf147fc1743532e/third_party/WebKit/LayoutTests/external/wpt_automation/input-events/inputevent_common_input.js
[delete] https://crrev.com/aa763fabc40f38692b77b1212d171c126eb2b538/third_party/WebKit/LayoutTests/fast/events/inputevents/before-input-order-typing-command.html
[delete] https://crrev.com/aa763fabc40f38692b77b1212d171c126eb2b538/third_party/WebKit/LayoutTests/fast/events/inputevents/before-input-ranges.html
[delete] https://crrev.com/aa763fabc40f38692b77b1212d171c126eb2b538/third_party/WebKit/LayoutTests/fast/events/inputevents/inputevent-data-keyboard.html

Owner: ----
Status: Untriaged (was: Assigned)
Mark as un-triaged for input-dev to assign priorities.
Labels: -Pri-2 Pri-3
Status: Available (was: Untriaged)
Labels: -Type-Bug Type-Task

Sign in to add a comment