aboutsummaryrefslogtreecommitdiff
path: root/test/unit/test_popup.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/test_popup.py')
-rw-r--r--test/unit/test_popup.py71
1 files changed, 51 insertions, 20 deletions
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://<some-id>/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')