forked from mirrors/gecko-dev
		
	 899ef0f585
			
		
	
	
		899ef0f585
		
	
	
	
	
		
			
			These currently are Mozilla-only but can be trivially moved into upstream tests once there is agreement to take the feature. Depends on D57472 Differential Revision: https://phabricator.services.mozilla.com/D57473 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			112 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # META: timeout=long
 | |
| import base64
 | |
| 
 | |
| import pytest
 | |
| 
 | |
| from tests.support.asserts import assert_dialog_handled, assert_error, assert_success
 | |
| from tests.support.inline import inline
 | |
| from printcmd import do_print, assert_pdf
 | |
| 
 | |
| 
 | |
| @pytest.fixture
 | |
| def check_user_prompt_closed_without_exception(session, create_dialog):
 | |
|     def check_user_prompt_closed_without_exception(dialog_type, retval):
 | |
|         session.url = inline("<input/>")
 | |
| 
 | |
|         create_dialog(dialog_type, text=dialog_type)
 | |
| 
 | |
|         response = do_print(session, {})
 | |
|         value = assert_success(response)
 | |
| 
 | |
|         pdf = base64.decodestring(value)
 | |
|         assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
 | |
| 
 | |
|         assert_pdf(pdf)
 | |
| 
 | |
|     return check_user_prompt_closed_without_exception
 | |
| 
 | |
| 
 | |
| @pytest.fixture
 | |
| def check_user_prompt_closed_with_exception(session, create_dialog):
 | |
|     def check_user_prompt_closed_with_exception(dialog_type, retval):
 | |
|         session.url = inline("<input/>")
 | |
| 
 | |
|         create_dialog(dialog_type, text=dialog_type)
 | |
| 
 | |
|         response = do_print(session, {})
 | |
|         assert_error(response, "unexpected alert open")
 | |
| 
 | |
|         assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
 | |
| 
 | |
|     return check_user_prompt_closed_with_exception
 | |
| 
 | |
| 
 | |
| @pytest.fixture
 | |
| def check_user_prompt_not_closed_but_exception(session, create_dialog):
 | |
|     def check_user_prompt_not_closed_but_exception(dialog_type):
 | |
|         session.url = inline("<input/>")
 | |
| 
 | |
|         create_dialog(dialog_type, text=dialog_type)
 | |
| 
 | |
|         response = do_print(session, {})
 | |
|         assert_error(response, "unexpected alert open")
 | |
| 
 | |
|         assert session.alert.text == dialog_type
 | |
|         session.alert.dismiss()
 | |
| 
 | |
|     return check_user_prompt_not_closed_but_exception
 | |
| 
 | |
| 
 | |
| @pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
 | |
| @pytest.mark.parametrize("dialog_type, retval", [
 | |
|     ("alert", None),
 | |
|     ("confirm", True),
 | |
|     ("prompt", ""),
 | |
| ])
 | |
| def test_accept(check_user_prompt_closed_without_exception, dialog_type, retval):
 | |
|     check_user_prompt_closed_without_exception(dialog_type, retval)
 | |
| 
 | |
| 
 | |
| @pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
 | |
| @pytest.mark.parametrize("dialog_type, retval", [
 | |
|     ("alert", None),
 | |
|     ("confirm", True),
 | |
|     ("prompt", ""),
 | |
| ])
 | |
| def test_accept_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
 | |
|     check_user_prompt_closed_with_exception(dialog_type, retval)
 | |
| 
 | |
| 
 | |
| @pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
 | |
| @pytest.mark.parametrize("dialog_type, retval", [
 | |
|     ("alert", None),
 | |
|     ("confirm", False),
 | |
|     ("prompt", None),
 | |
| ])
 | |
| def test_dismiss(check_user_prompt_closed_without_exception, dialog_type, retval):
 | |
|     check_user_prompt_closed_without_exception(dialog_type, retval)
 | |
| 
 | |
| 
 | |
| @pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
 | |
| @pytest.mark.parametrize("dialog_type, retval", [
 | |
|     ("alert", None),
 | |
|     ("confirm", False),
 | |
|     ("prompt", None),
 | |
| ])
 | |
| def test_dismiss_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
 | |
|     check_user_prompt_closed_with_exception(dialog_type, retval)
 | |
| 
 | |
| 
 | |
| @pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
 | |
| @pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
 | |
| def test_ignore(check_user_prompt_not_closed_but_exception, dialog_type):
 | |
|     check_user_prompt_not_closed_but_exception(dialog_type)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize("dialog_type, retval", [
 | |
|     ("alert", None),
 | |
|     ("confirm", False),
 | |
|     ("prompt", None),
 | |
| ])
 | |
| def test_default(check_user_prompt_closed_with_exception, dialog_type, retval):
 | |
|     check_user_prompt_closed_with_exception(dialog_type, retval)
 |