Revision 7218849a
Added by koszko over 1 year ago
test/unit/test_repo_query_cacher.py | ||
---|---|---|
22 | 22 |
from selenium.webdriver.support.ui import WebDriverWait |
23 | 23 |
|
24 | 24 |
from ..script_loader import load_script |
25 |
|
|
26 |
tab_id_responder = ''' |
|
27 |
function tell_tab_id(msg, sender, respond_cb) { |
|
28 |
if (msg[0] === "learn_tab_id") |
|
29 |
respond_cb(sender.tab.id); |
|
30 |
} |
|
31 |
browser.runtime.onMessage.addListener(tell_tab_id); |
|
32 |
''' |
|
25 |
from .utils import * |
|
33 | 26 |
|
34 | 27 |
def content_script(): |
35 |
return load_script('content/repo_query_cacher.js') + '''; |
|
36 |
start(); |
|
37 |
browser.runtime.sendMessage(["learn_tab_id"]) |
|
38 |
.then(tid => window.wrappedJSObject.haketilo_tab = tid); |
|
39 |
''' |
|
28 |
script = load_script('content/repo_query_cacher.js') |
|
29 |
return f'{script}; {tab_id_asker}; start();' |
|
40 | 30 |
|
41 | 31 |
def bypass_js(): |
42 | 32 |
return load_script('background/CORS_bypass_server.js') + '; start();' |
43 | 33 |
|
44 |
def run_content_script_in_new_window(driver, url): |
|
45 |
initial_handle = driver.current_window_handle |
|
46 |
handles = driver.window_handles |
|
47 |
driver.execute_script('window.open(arguments[0], "_blank");', url) |
|
48 |
WebDriverWait(driver, 10).until(lambda d: d.window_handles is not handles) |
|
49 |
new_handle = [h for h in driver.window_handles if h not in handles][0] |
|
50 |
|
|
51 |
driver.switch_to.window(new_handle) |
|
52 |
|
|
53 |
get_tab_id = lambda d: d.execute_script('return window.haketilo_tab;') |
|
54 |
tab_id = WebDriverWait(driver, 10).until(get_tab_id) |
|
55 |
|
|
56 |
driver.switch_to.window(initial_handle) |
|
57 |
return tab_id |
|
58 |
|
|
59 | 34 |
def fetch_through_cache(driver, tab_id, url): |
60 | 35 |
return driver.execute_script( |
61 | 36 |
''' |
... | ... | |
90 | 65 |
|
91 | 66 |
for i in range(2): |
92 | 67 |
result = fetch_through_cache(driver, tab_id, 'https://nxdoma.in/') |
93 |
assert set(result.keys()) == {'ok', 'status', 'error-json'}
|
|
68 |
assert set(result.keys()) == {'ok', 'status', 'error_json'}
|
|
94 | 69 |
assert result['ok'] == False |
95 | 70 |
assert result['status'] == 404 |
96 | 71 |
|
Also available in: Unified diff
add a mapping/resources installation dialog