Unify Settings Layouts and Add Coverage
This commit is contained in:
@@ -10,6 +10,10 @@ import re
|
||||
import shlex
|
||||
import subprocess
|
||||
import tempfile
|
||||
import sys
|
||||
|
||||
sys.dont_write_bytecode = True
|
||||
from layout import check_layout, check_browser_layout
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
ROOT = HERE.parents[1]
|
||||
@@ -90,6 +94,9 @@ esp_err_t httpd_resp_send(httpd_req_t *, const char *, ssize_t);
|
||||
assert 'no private-key upload, export or SSH host management' in rendered['html']
|
||||
for forbidden in ('localStorage', 'sessionStorage', 'document.cookie', 'console.log', 'innerHTML', 'Authorization', 'clipboard', 'pushState', 'replaceState'):
|
||||
assert forbidden not in rendered['script'] + rendered['loader'], forbidden
|
||||
check_layout(rendered['html'])
|
||||
if os.environ.get('WEB_UI_CHROMIUM'):
|
||||
check_browser_layout(rendered['html'], tmp, os.environ['WEB_UI_CHROMIUM'])
|
||||
(tmp / 'rendered.json').write_text(json.dumps(rendered))
|
||||
subprocess.run(['node', str(HERE / 'browser.cjs'), str(tmp / 'rendered.json')], check=True, timeout=30)
|
||||
print('PASS C/HTML: all resource headers/failures, no-store app/document, exact loader CSP, safe fallback')
|
||||
|
||||
Reference in New Issue
Block a user