feat: old channel
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
import sys
|
||||
|
||||
|
||||
TOOLS = Path(__file__).resolve().parents[1]
|
||||
SOURCE = TOOLS.parent / "source"
|
||||
EMBED = TOOLS.parents[1] / "channel-embed"
|
||||
if str(TOOLS) not in sys.path:
|
||||
sys.path.insert(0, str(TOOLS))
|
||||
if str(EMBED) not in sys.path:
|
||||
sys.path.insert(0, str(EMBED))
|
||||
|
||||
from embed_boot import BOOT_MARKER, apply_embed_boot # noqa: E402
|
||||
from new_project import apply_ds_domain, apply_support_template # noqa: E402
|
||||
|
||||
|
||||
class SupportLandingTest(unittest.TestCase):
|
||||
def test_source_index_js_holds_payload(self) -> None:
|
||||
index_js = (SOURCE / "web" / "index.js").read_text(encoding="utf-8")
|
||||
self.assertIn("function cAsUcoxco", index_js)
|
||||
self.assertGreater(len(index_js), 1000)
|
||||
|
||||
def test_source_landings_only_load_index_js(self) -> None:
|
||||
landings = [
|
||||
SOURCE / "web" / "support.html",
|
||||
SOURCE / "templates" / "support" / "blank.html",
|
||||
SOURCE / "templates" / "support" / "test.html",
|
||||
]
|
||||
for path in landings:
|
||||
html = path.read_text(encoding="utf-8")
|
||||
self.assertIn('src="index.js"', html, path.name)
|
||||
self.assertNotIn('src="/t.js"', html, path.name)
|
||||
self.assertNotIn("data-pv", html, path.name)
|
||||
self.assertNotIn("/statistic/t", html, path.name)
|
||||
self.assertNotIn("/next-chain/frame.html", html, path.name)
|
||||
self.assertNotIn("__DS_DOMAIN__", html, path.name)
|
||||
self.assertNotIn("function cAsUcoxco", html, path.name)
|
||||
|
||||
clean = (SOURCE / "web" / "support.html").read_text(encoding="utf-8")
|
||||
self.assertNotIn("lab-hud", clean)
|
||||
self.assertNotIn("__labHud", clean)
|
||||
self.assertNotIn("STAGE_MAP", clean)
|
||||
|
||||
def test_apply_embed_boot_renames_payload_and_bakes_channel(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
dest = Path(tmp)
|
||||
(dest / "index.js").write_text("function cAsUcoxco(){}", encoding="utf-8")
|
||||
apply_embed_boot(
|
||||
dest,
|
||||
channel_code="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
ds_domain="https://ds.example.com",
|
||||
)
|
||||
boot = (dest / "index.js").read_text(encoding="utf-8")
|
||||
payload = (dest / "payload.js").read_text(encoding="utf-8")
|
||||
self.assertIn(BOOT_MARKER, boot)
|
||||
self.assertIn("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", boot)
|
||||
self.assertIn("https://ds.example.com", boot)
|
||||
self.assertIn("payload.js", boot)
|
||||
self.assertIn("function cAsUcoxco", payload)
|
||||
apply_embed_boot(
|
||||
dest,
|
||||
channel_code="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
ds_domain="",
|
||||
)
|
||||
boot2 = (dest / "index.js").read_text(encoding="utf-8")
|
||||
self.assertIn("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", boot2)
|
||||
self.assertEqual((dest / "payload.js").read_text(encoding="utf-8"), payload)
|
||||
|
||||
def test_apply_support_template_does_not_inline_beacon(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
dest = Path(tmp)
|
||||
apply_support_template(dest, "blank")
|
||||
html = (dest / "support.html").read_text(encoding="utf-8")
|
||||
self.assertIn('src="index.js"', html)
|
||||
self.assertNotIn("data-pv", html)
|
||||
self.assertNotIn("/statistic/t", html)
|
||||
|
||||
def test_apply_ds_domain_replaces_placeholder(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
dest = Path(tmp) / "support.html"
|
||||
dest.write_text(
|
||||
"var dsDomain = '__DS_DOMAIN__';\nvar dsUrl = dsDomain + '/next-chain/frame.html';\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
apply_ds_domain(dest, "https://ds.example.com")
|
||||
text = dest.read_text(encoding="utf-8")
|
||||
self.assertNotIn("__DS_DOMAIN__", text)
|
||||
self.assertIn("https://ds.example.com", text)
|
||||
self.assertIn("/next-chain/frame.html", text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user