2daf01cbbc39c63db64caccf4a87f20a7f2f5f97
braney
  Sat Sep 26 17:43:37 2026 -0700
docent regression scripts for the v503 tickets, refs #38252, #37972, #37987, #37990, #38027, #38033, #38035, #38039, #38071, #38072, #38082, #38087, #38120, #38154, #38155, #38231

One script per ticket. Each one passes on genome-test. Twelve also fail on a v502_branch
build for the reason the script exists, and carry a release-ab proof line. rm38072,
rm38120 and rm38231 can never fail on a released build, and their headers say why.

diff --git src/hg/utils/docent/tests/regress/rm38231.docent.yaml src/hg/utils/docent/tests/regress/rm38231.docent.yaml
new file mode 100644
index 00000000000..669e078a6bb
--- /dev/null
+++ src/hg/utils/docent/tests/regress/rm38231.docent.yaml
@@ -0,0 +1,41 @@
+# #38231 -- the Track Search page printed an HTML entity in its blue bar title. On hg38 it
+# read
+#
+#     Search for Tracks in the Human Dec. 2013 (GRCh38/hg38) Assembly
+#
+# where it should read (GRCh38/hg38). Every assembly whose dbDb description carries a slash
+# showed it. The title was escaped twice: searchTracks.c ran htmlEncode() on the organism
+# and the freeze name, and webStartWrapperDetailedNoArgs() then printed the title through
+# htmlTextOut(), which escaped the ampersand of each entity again.
+#
+# 20ca104b989 (#38123) added the first htmlEncode(). 6d28e748f8a (#38172) removed it on
+# master, and #38231 is the build patch that carried it onto v503_branch as 707b184e329.
+# Neither commit is in v502_branch. So NO released version ever had this bug: v502 predates
+# the cause and v503 shipped with the patch. It lived only on hgwdev and in the v503
+# preview builds on hgwbeta, and a release-ab line cannot be earned for it.
+#
+# The check is on the page text. innerText reads a double-escaped entity as its six
+# characters, so `noText: "/"` catches the bug directly, and the positive `text:`
+# catches a title that went missing altogether. hg19 is a second assembly with a slash in
+# its description, so a fix aimed at one dbDb row cannot pass.
+#
+# The organism and the freeze name are still escaped once by htmlTextOut(). The commit
+# message says the assembly-hub case that prompted 20ca104b989 was checked by hand; that
+# half needs a hub whose genomes.txt holds markup and is not driven here.
+proof:
+  - "assertion-only 2026-09-26 -- written from 6d28e748f8a after the fix shipped; no release carries the bug, so it cannot be watched failing on one"
+
+target: genome-test
+db: hg38
+reset: true
+fast: true
+steps:
+  - goto: "/cgi-bin/hgTracks?db=hg38&pix=1100&hgt_tSearch=Search"
+  - expect:
+      text: "Search for Tracks in the Human Dec. 2013 (GRCh38/hg38) Assembly"
+      noText: ["/", "&"]
+
+  - goto: "/cgi-bin/hgTracks?db=hg19&pix=1100&hgt_tSearch=Search"
+  - expect:
+      text: "(GRCh37/hg19) Assembly"
+      noText: ["/", "&"]