From bbc9fae4291d0c2cb3976d158ecd20e0bd2a8ea0 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Tue, 15 Mar 2022 10:12:06 +0100 Subject: serialize and deserialize entire Response object when relaying fetch() calls to other contexts using sendMessage --- test/haketilo_test/unit/test_popup.py | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'test/haketilo_test/unit/test_popup.py') diff --git a/test/haketilo_test/unit/test_popup.py b/test/haketilo_test/unit/test_popup.py index e62feb7..3ef7906 100644 --- a/test/haketilo_test/unit/test_popup.py +++ b/test/haketilo_test/unit/test_popup.py @@ -81,28 +81,18 @@ mocked_page_infos = { tab_mock_js = ''' ; const mocked_page_info = (%s)[/#mock_page_info-(.*)$/.exec(document.URL)[1]]; +const old_sendMessage = browser.tabs.sendMessage; browser.tabs.sendMessage = async function(tab_id, msg) { const this_tab_id = (await browser.tabs.getCurrent()).id; if (tab_id !== this_tab_id) throw `not current tab id (${tab_id} instead of ${this_tab_id})`; - if (msg[0] === "page_info") { + if (msg[0] === "page_info") return mocked_page_info; - } else if (msg[0] === "repo_query") { - const response = await fetch(msg[1]); - if (!response) - return {error: "Something happened :o"}; - - const result = {ok: response.ok, status: response.status}; - try { - result.json = await response.json(); - } catch(e) { - result.error_json = "" + e; - } - return result; - } else { + else if (msg[0] === "repo_query") + return old_sendMessage(tab_id, msg); + else throw `bad sendMessage message type: '${msg[0]}'`; - } } const old_tabs_query = browser.tabs.query; @@ -113,6 +103,8 @@ browser.tabs.query = async function(query) { } ''' % json.dumps(mocked_page_infos) +tab_mock_js = mock_cacher_code + tab_mock_js + popup_ext_data = { 'background_script': broker_js, 'extra_html': ExtraHTML( -- cgit v1.2.3