| from tests.support.asserts import assert_error, assert_success |
| from tests.support.inline import inline |
| |
| |
| check_doc = inline(""" |
| <input id=checked type=checkbox checked> |
| <input id=notChecked type=checkbox> |
| """) |
| option_doc = inline(""" |
| <select> |
| <option id=notSelected>r- |
| <option id=selected selected>r+ |
| </select> |
| """) |
| |
| |
| def is_element_selected(session, element_id): |
| return session.transport.send( |
| "GET", "session/{session_id}/element/{element_id}/selected".format( |
| session_id=session.session_id, |
| element_id=element_id)) |
| |
| |
| def test_no_browsing_context(session, closed_window): |
| response = is_element_selected(session, "foo") |
| assert_error(response, "no such window") |
| |
| |
| def test_element_stale(session): |
| session.url = check_doc |
| element = session.find.css("#checked", all=False) |
| session.refresh() |
| |
| result = is_element_selected(session, element.id) |
| assert_error(result, "stale element reference") |
| |
| |
| def test_element_checked(session): |
| session.url = check_doc |
| element = session.find.css("#checked", all=False) |
| |
| result = is_element_selected(session, element.id) |
| assert_success(result, True) |
| |
| |
| def test_checkbox_not_selected(session): |
| session.url = check_doc |
| element = session.find.css("#notChecked", all=False) |
| |
| result = is_element_selected(session, element.id) |
| assert_success(result, False) |
| |
| |
| def test_element_selected(session): |
| session.url = option_doc |
| element = session.find.css("#selected", all=False) |
| |
| result = is_element_selected(session, element.id) |
| assert_success(result, True) |
| |
| |
| def test_element_not_selected(session): |
| session.url = option_doc |
| element = session.find.css("#notSelected", all=False) |
| |
| result = is_element_selected(session, element.id) |
| assert_success(result, False) |