Add WiFi password visibility control
This commit is contained in:
1 parent
a5f3a5c5da
commit
8ef309a299
3 files changed
+1911
-1838
No files matched your search
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import gzip
|
||||
from pathlib import Path
|
||||
import re
|
||||
import unittest
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
SOURCE = ROOT / "webui" / "index.html"
|
||||
HEADER = ROOT / "src" / "helpers" / "esp32" / "WebConfigHtml.h"
|
||||
|
||||
|
||||
class WebConfigUiTest(unittest.TestCase):
|
||||
def test_wifi_password_fields_have_local_show_controls(self):
|
||||
page = SOURCE.read_text(encoding="utf-8")
|
||||
self.assertEqual(page.count('onclick="toggleWiFiPassword(this)"'), 2)
|
||||
self.assertEqual(page.count('class="pwrow"'), 2)
|
||||
self.assertIn('type="password" data-k="wifi.pwd" id="wz-wifi-pwd"', page)
|
||||
self.assertIn('type="password" data-k="wifi.pwd" id="app-wifi-pwd"', page)
|
||||
self.assertIn('input.type=show?"text":"password"', page)
|
||||
self.assertIn('btn.textContent=show?"Hide":"Show"', page)
|
||||
self.assertIn('btn.setAttribute("aria-pressed",show?"true":"false")', page)
|
||||
|
||||
def test_generated_asset_contains_show_controls(self):
|
||||
header = HEADER.read_text(encoding="utf-8")
|
||||
length = int(re.search(r"WEBCONFIG_HTML_GZ_LEN = (\d+);", header).group(1))
|
||||
array = header.split(
|
||||
"const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = {", 1
|
||||
)[1]
|
||||
blob = bytes(
|
||||
int(value, 16) for value in re.findall(r"0x([0-9a-f]{2})", array)
|
||||
)[:length]
|
||||
page = gzip.decompress(blob).decode("utf-8")
|
||||
self.assertEqual(page.count('onclick="toggleWiFiPassword(this)"'), 2)
|
||||
self.assertIn("function toggleWiFiPassword(btn)", page)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user