This test verifies that when the 'mouse event synthesis on selection' quirk is enabled, text selection dispatches mouse events that mimic the user selecting text. To run the test manually, use the callout menu to select text or selection handles, and verify that mousedown, mousemove and mouseup are dispatched and logged in the output area below.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Attempting to show the callout bar.
Observed event type: mousedown
Observed event type: mouseup
Observed event type: mousedown
Observed event type: mouseup
PASS Displayed the callout bar.

Attempting to select the last word.
Observed event type: mousedown
Observed event type: mousemove
Observed event type: mouseup
PASS Selected the last word.

Attempting to dismiss the callout bar by executing 'SelectAll'.
PASS Dismissed the callout bar.

Attempting to move the selection grabber.
Observed event type: mousedown
Observed event type: mousemove
Observed event type: mouseup
PASS Moved the selection grabber.
PASS successfullyParsed is true

TEST COMPLETE

