Project

General

Profile

« Previous | Next » 

Revision 13a707c6

Added by koszko over 1 year ago

serialize and deserialize entire Response object when relaying fetch() calls to other contexts using sendMessage

View differences:

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