Skip to content

Commit

Permalink
Send full codepoints when creating key events
Browse files Browse the repository at this point in the history
Previously, given a string in element send keys, we iterated over each
UCS2 "character" in the string, so that non-BMP characters ended up as
separate key events, one for the high surrogate and one for the low
surrogate.

With this change we instead use the built in string iterator which
provides the surrogate pair in the case of non-BMP characters, so we
emit a single event for each unicode codepoint.

Differential Revision: https://phabricator.services.mozilla.com/D196220

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1866431
gecko-commit: f19c3570bc57265bbb5ba139efdb1dcb53a328bc
gecko-reviewers: webdriver-reviewers, masayuki, whimboo
  • Loading branch information
jgraham authored and moz-wptsync-bot committed Dec 20, 2023
1 parent 0e1afcb commit b50d89c
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions webdriver/tests/classic/element_send_keys/send_keys.py
Expand Up @@ -119,3 +119,14 @@ def test_invalid_text_type(session, inline, value):

response = element_send_keys(session, element, value)
assert_error(response, "invalid argument")


def test_surrogates(session, inline):
session.url = inline("<input>")
element = session.find.css("input", all=False)

text = "🦥🍄"
response = element_send_keys(session, element, text)
assert_success(response)

assert element.property("value") == text

0 comments on commit b50d89c

Please sign in to comment.