mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
Bug 1376625 - Add Is Element Selected wdspec tests r=ato
This adds tests for the Is Element Selected section as documented in https://w3c.github.io/webdriver/webdriver-spec.html#is-element-selected MozReview-Commit-ID: HmwOtYlIZLQ --HG-- extra : rebase_source : bba5c753495551e75eb78717d43ce7ceaaabd237
This commit is contained in:
parent
cd9e986d97
commit
3919d56fa4
@ -307053,6 +307053,11 @@
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/__init__.py": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/support/__init__.py": [
|
||||
[
|
||||
{}
|
||||
@ -405133,42 +405138,12 @@
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/get_element_attribute.py": [
|
||||
[
|
||||
"/webdriver/tests/get_element_attribute.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/get_element_property.py": [
|
||||
[
|
||||
"/webdriver/tests/get_element_property.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/get_element_rect.py": [
|
||||
[
|
||||
"/webdriver/tests/get_element_rect.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/get_element_tag_name.py": [
|
||||
[
|
||||
"/webdriver/tests/get_element_tag_name.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/get_window_rect.py": [
|
||||
[
|
||||
"/webdriver/tests/get_window_rect.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/is_element_selected.py": [
|
||||
[
|
||||
"/webdriver/tests/is_element_selected.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/maximize_window.py": [
|
||||
[
|
||||
"/webdriver/tests/maximize_window.py",
|
||||
@ -405192,6 +405167,36 @@
|
||||
"/webdriver/tests/set_window_rect.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/get_element_attribute.py": [
|
||||
[
|
||||
"/webdriver/tests/state/get_element_attribute.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/get_element_property.py": [
|
||||
[
|
||||
"/webdriver/tests/state/get_element_property.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/get_element_rect.py": [
|
||||
[
|
||||
"/webdriver/tests/state/get_element_rect.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/get_element_tag_name.py": [
|
||||
[
|
||||
"/webdriver/tests/state/get_element_tag_name.py",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"webdriver/tests/state/is_element_selected.py": [
|
||||
[
|
||||
"/webdriver/tests/state/is_element_selected.py",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -625112,30 +625117,10 @@
|
||||
"5ba51b660c7203bba3ada597c2f56fe094358e1f",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/get_element_attribute.py": [
|
||||
"6a42b84f48d90cdbe6dba4485f9d368e6b02418d",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/get_element_property.py": [
|
||||
"74009c12bf986a0d1e4ab9bc9f60de14cbbb474e",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/get_element_rect.py": [
|
||||
"32342cba9762737de327cc8f717fb8316f8f5083",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/get_element_tag_name.py": [
|
||||
"63aa430693c8dbadb600f60516990c3c6c5f4933",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/get_window_rect.py": [
|
||||
"2d4c13edc4e659af864750d0341c06ff969a687f",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/is_element_selected.py": [
|
||||
"2fb5627473cf33262352d2e22436e7e1f4f8bb85",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/maximize_window.py": [
|
||||
"55cb76c60c7914bc024f470f6d1f0a47294b6fe3",
|
||||
"wdspec"
|
||||
@ -625148,6 +625133,30 @@
|
||||
"cec2987258d9c807a247da9e0216b3af1f171484",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/set_window_rect.py": [
|
||||
"d5ee763d1531847fcbb7700aa75f94a9f7415d41",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/state/__init__.py": [
|
||||
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
||||
"support"
|
||||
],
|
||||
"webdriver/tests/state/get_element_attribute.py": [
|
||||
"6a42b84f48d90cdbe6dba4485f9d368e6b02418d",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/state/get_element_property.py": [
|
||||
"8ae8e9598c389f8ae8d6102cd57c8d47d8ab6417",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/maximize_window.py": [
|
||||
"55cb76c60c7914bc024f470f6d1f0a47294b6fe3",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/state/get_element_tag_name.py": [
|
||||
"63aa430693c8dbadb600f60516990c3c6c5f4933",
|
||||
"wdspec"
|
||||
],
|
||||
"webdriver/tests/set_window_rect.py": [
|
||||
"89b247aae02cf1aee8c7e4832db424840b66d12d",
|
||||
"wdspec"
|
||||
|
@ -0,0 +1,180 @@
|
||||
from tests.support.asserts import assert_error, assert_dialog_handled, assert_success
|
||||
from tests.support.inline import inline
|
||||
from tests.support.fixtures import create_dialog
|
||||
|
||||
|
||||
alert_doc = inline("<script>window.alert()</script>")
|
||||
check_doc = inline("<input id=checked type=checkbox checked/><input id=notChecked type=checkbox/>")
|
||||
option_doc = inline("""<select>
|
||||
<option id=notSelected>r-</option>
|
||||
<option id=selected selected>r+</option>
|
||||
</select>
|
||||
""")
|
||||
|
||||
|
||||
# 13.1 Is Element Selected
|
||||
|
||||
def test_no_browsing_context(session, create_window):
|
||||
# 13.1 step 1
|
||||
session.window_handle = create_window()
|
||||
session.close()
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_error(result, "no such window")
|
||||
|
||||
|
||||
def test_handle_prompt_dismiss(new_session):
|
||||
# 13.1 step 2
|
||||
_, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "dismiss"}})
|
||||
session.url = inline("<input id=foo>")
|
||||
|
||||
create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #1")
|
||||
|
||||
create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #2")
|
||||
|
||||
create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #3")
|
||||
|
||||
|
||||
def test_handle_prompt_accept(new_session):
|
||||
# 13.1 step 2
|
||||
_, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
|
||||
session.url = inline("<input id=foo>")
|
||||
|
||||
create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #1")
|
||||
|
||||
create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #2")
|
||||
|
||||
create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_success(result, "foo")
|
||||
assert_dialog_handled(session, "dismiss #3")
|
||||
|
||||
|
||||
def test_handle_prompt_missing_value(session, create_dialog):
|
||||
# 13.1 step 2
|
||||
session.url = inline("<input id=foo>")
|
||||
|
||||
create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_error(result, "unexpected alert open")
|
||||
assert_dialog_handled(session, "dismiss #1")
|
||||
|
||||
create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_error(result, "unexpected alert open")
|
||||
assert_dialog_handled(session, "dismiss #2")
|
||||
|
||||
create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
|
||||
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id="foo"))
|
||||
|
||||
assert_error(result, "unexpected alert open")
|
||||
assert_dialog_handled(session, "dismiss #3")
|
||||
|
||||
|
||||
def test_element_stale(session):
|
||||
# 13.1 step 4
|
||||
session.url = check_doc
|
||||
element = session.find.css("#checked", all=False)
|
||||
session.refresh()
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id=element.id))
|
||||
|
||||
assert_error(result, "stale element reference")
|
||||
|
||||
|
||||
def test_element_checked(session):
|
||||
# 13.1 step 5
|
||||
session.url = check_doc
|
||||
element = session.find.css("#checked", all=False)
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id=element.id))
|
||||
|
||||
assert_success(result, True)
|
||||
|
||||
|
||||
def test_checkbox_not_selected(session):
|
||||
# 13.1 step 5
|
||||
session.url = check_doc
|
||||
element = session.find.css("#notChecked", all=False)
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id=element.id))
|
||||
|
||||
assert_success(result, False)
|
||||
|
||||
|
||||
def test_element_selected(session):
|
||||
# 13.1 step 5
|
||||
session.url = option_doc
|
||||
element = session.find.css("#selected", all=False)
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id=element.id))
|
||||
|
||||
assert_success(result, True)
|
||||
|
||||
|
||||
def test_element_not_selected(session):
|
||||
# 13.1 step 5
|
||||
session.url = option_doc
|
||||
element = session.find.css("#notSelected", all=False)
|
||||
result = session.transport.send("GET", "session/{session_id}/element/{element_id}/selected"
|
||||
.format(session_id=session.session_id,
|
||||
element_id=element.id))
|
||||
|
||||
assert_success(result, False)
|
Loading…
Reference in New Issue
Block a user