From d848423ebc60882f98b6712d03ffe23af1ff7741 Mon Sep 17 00:00:00 2001 From: Andreas Tolfsen Date: Tue, 30 Jan 2018 18:05:29 +0000 Subject: [PATCH] Add basic form control tests for Element Send Keys. We are apparently missing even the most basic tests for Element Send Keys. This is a moderate contribution. MozReview-Commit-ID: 9uWtTJ7MFZx Upstreamed from https://bugzilla.mozilla.org/show_bug.cgi?id=1433422 [ci skip] --- .../tests/element_send_keys/form_controls.py | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/webdriver/tests/element_send_keys/form_controls.py b/webdriver/tests/element_send_keys/form_controls.py index 50e3fe3f77cced..ee6269e25220a4 100644 --- a/webdriver/tests/element_send_keys/form_controls.py +++ b/webdriver/tests/element_send_keys/form_controls.py @@ -1,3 +1,5 @@ +import pytest + from tests.support.asserts import assert_error, assert_same_element, assert_success from tests.support.inline import inline @@ -11,6 +13,37 @@ def element_send_keys(session, element, text): {"text": text}) +def add_event_listeners(element): + element.session.execute_script(""" + let [target] = arguments; + window.events = []; + for (let expected of ["focus", "blur", "change", "keypress", "keydown", "keyup", "input"]) { + target.addEventListener(expected, ({type}) => window.events.push(type)); + } + """, args=(element,)) + + +def get_events(session): + return session.execute_script("return window.events") + + +def test_input(session): + session.url = inline("") + element = session.find.css("input", all=False) + assert element.property("value") == "" + + element_send_keys(session, element, "foo") + assert element.property("value") == "foo" + + +def test_textarea(session): + session.url = inline("