43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
import unittest
|
|
|
|
from app.webui import DASHBOARD
|
|
|
|
|
|
class WebUITests(unittest.TestCase):
|
|
def test_dashboard_is_english(self):
|
|
self.assertIn('<html lang="en">', DASHBOARD)
|
|
self.assertIn("System status", DASHBOARD)
|
|
self.assertIn("Recent incidents", DASHBOARD)
|
|
self.assertIn("TZSP datagrams", DASHBOARD)
|
|
self.assertIn("Extended statistics", DASHBOARD)
|
|
self.assertIn("Custom Suricata signatures", DASHBOARD)
|
|
self.assertIn("Signature sources", DASHBOARD)
|
|
self.assertIn("Refresh OISF catalog", DASHBOARD)
|
|
for polish_text in (
|
|
"Ładowanie",
|
|
"Tryb DEV",
|
|
"Brak alertów",
|
|
"Ostatnie alerty",
|
|
"Źródło",
|
|
"Blokady RouterOS",
|
|
):
|
|
self.assertNotIn(polish_text, DASHBOARD)
|
|
|
|
def test_dashboard_uses_status_endpoint(self):
|
|
self.assertIn("api('/api/status')", DASHBOARD)
|
|
self.assertIn("/api/admin/alerts/clear", DASHBOARD)
|
|
self.assertIn("/api/admin/rules/suppress", DASHBOARD)
|
|
self.assertIn("/api/admin/rules/sources", DASHBOARD)
|
|
self.assertIn("Download / update active signatures", DASHBOARD)
|
|
|
|
def test_dashboard_has_top_sections_and_local_time_formatting(self):
|
|
for section in ("overview", "incidents", "statistics", "system", "rules", "maintenance"):
|
|
self.assertIn(f'data-view="{section}"', DASHBOARD)
|
|
self.assertIn(f'id="view-{section}"', DASHBOARD)
|
|
self.assertIn("function fmtTime", DASHBOARD)
|
|
self.assertIn("Repeated matches are aggregated", DASHBOARD)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|