WFP consent-gating test page

Every content-field script variation we can think of. Each one flips its own row to RAN.

VERDICT: NO SCRIPT HAS RUN -- every content-field script appears to be gated.
If this banner never changes, the page is telling you the answer.
How to run this test
  1. View source on the published page. Search for text/plain and data-wfp-consent. This is the real test - the rewrite happens at publish time, server-side. If those strings appear on scripts you wrote below, the pipeline is still gating them.
  2. Open in a fresh incognito window and DECLINE (or ignore) the cookie banner. Do not accept - accepting un-gates everything, which is why this bug survives normal QA.
  3. Read the rows below. Green RAN = not gated. Red = gated.
  4. Check the diagnostic dump at the bottom - it prints what the server actually emitted for every script tag on the page.

A. Inline basics

1. Plain <script>, no attributes -- THE CANONICAL CASE -- GATED
2. type="text/javascript" -- GATED
3. type="application/javascript" -- GATED
4. type="module" -- GATED
5. Uppercase <SCRIPT> tag -- GATED
6. Extra whitespace in the open tag -- GATED

B. Attribute variants

7. With an id attribute -- GATED
8. data-wfp-consent="necessary" -- does an explicit exemption work? -- GATED
9. data-cookieconsent="ignore" (common CMP convention) -- GATED
10. defer attribute on an inline script -- GATED
11. async attribute on an inline script -- GATED
12. nonce attribute present -- GATED

C. Keyword sensitivity -- does the pipeline scan script CONTENT?

If any of these are gated while test 1 is not, the rewrite is triggered by words in the code rather than by where the script lives.

13. Contains the word "cookie" -- GATED
14. Contains "gtag" and "dataLayer" -- GATED
15. Contains "analytics" and "tracking" -- GATED
16. Reads document.cookie for real -- GATED

D. Position and nesting

17. Script nested five divs deep -- GATED
18. Script inside a table cell -- GATED
19. Two scripts in a row, second one -- GATED

E. Real-world functional patterns (the ones that broke Phil Stratton)

These are ordinary first-party site features. None of them are marketing. All of them died silently on the live site.

20. Copyright year filler -- the exact Phil Stratton repro -- year shows NOT SET -- GATED
21. Click handler bound by addEventListener -- (not bound) -- GATED
22. Inline onclick="" attribute (not a script tag) -- click this text
23. JSON-LD schema block -- if this is gated, structured data breaks sitewide -- CHECK THE DUMP

F. Non-script tags the loader also handles

The loader looks for img / iframe / video / source carrying data-wfp-consent. Check the dump for whether the pipeline added that attribute to these.

24. A plain iframe (as a map embed would be):
25. A plain img:
1px test

G. CONTROL -- this one SHOULD stay gated

26. A genuine third-party marketing tag. A correct fix leaves this gated. If the dump shows this one running un-gated too, gating has been switched off entirely rather than scoped correctly -- that is a different bug, not a fix.

Diagnostic dump -- what the server actually emitted

The dump script itself did not run.

That is the strongest possible result: even the diagnostic was gated.
Use View Source and search for: text/plain

Reminder: the rewrite happens at publish time, server-side -- the consent loader only re-activates gated tags later. So View Source is the authoritative check. Search the served HTML for text/plain and data-wfp-consent.