From ea9df6c7688613783ca114f0f11c6f6baf30036b Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 28 Jan 2022 15:18:15 +0100 Subject: update error reporting in popup --- test/unit/test_popup.py | 71 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 20 deletions(-) (limited to 'test/unit/test_popup.py') diff --git a/test/unit/test_popup.py b/test/unit/test_popup.py index bc53e6c..da1812d 100644 --- a/test/unit/test_popup.py +++ b/test/unit/test_popup.py @@ -39,6 +39,12 @@ unprivileged_page_info = { 'allow': False } +mapping_page_info = { + **unprivileged_page_info, + 'mapping': 'm1', + 'payload': {'identifier': 'res1'} +} + mocked_page_infos = { 'privileged': { 'url': 'moz-extension:///file.html', @@ -58,14 +64,26 @@ mocked_page_infos = { 'allow': True, 'mapping': '~allow' }, - 'mapping': { - **unprivileged_page_info, - 'mapping': 'm1', - 'payload': {'identifier': 'res1'} + 'mapping': mapping_page_info, + 'error_deciding_policy': { + **mapping_page_info, + 'error': {'haketilo_error_type': 'deciding_policy'} }, - 'error': { - **unprivileged_page_info, - 'error': True + 'error_missing': { + **mapping_page_info, + 'error': {'haketilo_error_type': 'missing', 'id': 'some-missing-res'} + }, + 'error_circular': { + **mapping_page_info, + 'error': {'haketilo_error_type': 'circular', 'id': 'some-circular-res'} + }, + 'error_db': { + **mapping_page_info, + 'error': {'haketilo_error_type': 'db'} + }, + 'error_other': { + **mapping_page_info, + 'error': {'haketilo_error_type': 'other'} } } @@ -147,32 +165,45 @@ def test_popup_display(driver, execute_in_page, page_info_key): assert by_id['page_url'].text == mocked_page_infos[page_info_key]['url'] assert not by_id['repo_query_container'].is_displayed() - if 'blocked' in page_info_key or page_info_key in ('mapping', 'error'): - assert by_id['scripts_blocked'].text.lower() == 'yes' - elif 'allowed' in page_info_key: + if 'allow' in page_info_key: assert by_id['scripts_blocked'].text.lower() == 'no' + elif page_info_key != 'privileged': + assert by_id['scripts_blocked'].text.lower() == 'yes' + payload_text = by_id['injected_payload'].text if page_info_key == 'mapping': - assert by_id['injected_payload'].text == 'res1' + assert payload_text == 'res1' + elif page_info_key == 'error_missing': + assert payload_text == \ + "None (error: resource with id 'some-missing-res' missing from the database)" + elif page_info_key == 'error_circular': + assert payload_text == \ + "None (error: circular dependency of resource with id 'some-circular-res' on itself)" + elif page_info_key == 'error_db': + assert payload_text == \ + 'None (error: failure reading Haketilo internal database)' + elif page_info_key == 'error_other': + assert payload_text == \ + 'None (error: unknown failure occured)' elif page_info_key != 'privileged': - assert by_id['injected_payload'].text == 'None' + assert payload_text == 'None' mapping_text = by_id['mapping_used'].text - if page_info_key == 'mapping': + + if page_info_key == 'error_deciding_policy': + assert mapping_text == 'None (error occured when determining policy)' + elif page_info_key == 'mapping' or page_info_key.startswith('error'): assert mapping_text == 'm1' if 'allowed' in page_info_key: - 'None (scripts allowed by' in mapping_text + assert 'None (scripts allowed by' in mapping_text elif 'blocked' in page_info_key: - 'None (scripts blocked by' in mapping_text + assert 'None (scripts blocked by' in mapping_text if 'rule' in page_info_key: - 'by a rule)' in mapping_text + assert 'by a rule)' in mapping_text elif 'default' in page_info_key: - 'by default_policy)' in mapping_text - - if page_info_key == 'error': - assert mapping_text == 'None (error occured when determining policy)' + assert 'by default policy)' in mapping_text @pytest.mark.ext_data(popup_ext_data) @pytest.mark.usefixtures('webextension') -- cgit v1.2.3