Revision 13a707c6
Added by koszko over 1 year ago
test/haketilo_test/unit/test_repo_query_cacher.py | ||
---|---|---|
85 | 85 |
'background_script': lambda: bypass_js() + ';' + tab_id_responder |
86 | 86 |
}) |
87 | 87 |
@pytest.mark.usefixtures('webextension') |
88 |
def test_repo_query_cacher_normal_use(driver, execute_in_page):
|
|
88 |
def test_repo_query_cacher_normal_use(driver): |
|
89 | 89 |
""" |
90 | 90 |
Test if HTTP requests made through our cacher return correct results. |
91 | 91 |
""" |
92 | 92 |
tab_id = run_content_script_in_new_window(driver, 'https://gotmyowndoma.in') |
93 | 93 |
|
94 | 94 |
result = fetch_through_cache(driver, tab_id, 'https://counterdoma.in/') |
95 |
assert set(result.keys()) == {'ok', 'status', 'json'}
|
|
96 |
counter_initial = result['json']['counter']
|
|
95 |
assert set(result.keys()) == {'status', 'statusText', 'headers', 'body'}
|
|
96 |
counter_initial = json.loads(bytes.fromhex(result['body']))['counter']
|
|
97 | 97 |
assert type(counter_initial) is int |
98 | 98 |
|
99 | 99 |
for i in range(2): |
100 | 100 |
result = fetch_through_cache(driver, tab_id, 'https://counterdoma.in/') |
101 |
assert result['json']['counter'] == counter_initial |
|
101 |
assert json.loads(bytes.fromhex(result['body'])) \ |
|
102 |
== {'counter': counter_initial} |
|
102 | 103 |
|
103 | 104 |
tab_id = run_content_script_in_new_window(driver, 'https://gotmyowndoma.in') |
104 | 105 |
result = fetch_through_cache(driver, tab_id, 'https://counterdoma.in/') |
105 |
assert result['json']['counter'] == counter_initial + 1 |
|
106 |
assert json.loads(bytes.fromhex(result['body'])) \ |
|
107 |
== {'counter': counter_initial + 1} |
|
106 | 108 |
|
107 | 109 |
for i in range(2): |
108 | 110 |
result = fetch_through_cache(driver, tab_id, 'https://nxdoma.in/') |
109 |
assert set(result.keys()) == {'ok', 'status', 'error_json'} |
|
110 |
assert result['ok'] == False |
|
111 | 111 |
assert result['status'] == 404 |
112 | 112 |
|
113 | 113 |
for i in range(2): |
114 | 114 |
result = fetch_through_cache(driver, tab_id, 'bad://url') |
115 | 115 |
assert set(result.keys()) == {'error'} |
116 |
assert result['error']['name'] == 'TypeError' |
|
116 | 117 |
|
117 | 118 |
@pytest.mark.ext_data({ |
118 | 119 |
'content_script': content_script, |
... | ... | |
128 | 129 |
|
129 | 130 |
result = fetch_through_cache(driver, tab_id, 'https://counterdoma.in/') |
130 | 131 |
assert set(result.keys()) == {'error'} |
132 |
assert set(result['error'].keys()) == \ |
|
133 |
{'name', 'message', 'fileName', 'lineNumber'} |
|
134 |
assert result['error']['message'] == \ |
|
135 |
"Couldn't communicate with background script." |
Also available in: Unified diff
serialize and deserialize entire Response object when relaying fetch() calls to other contexts using sendMessage