# SSR expectations against the fixture SEO API (testing/fixtures).
# Grammar: STATUS PATH [contains=TEXT] [notcontains=TEXT] [type=PREFIX] [header=NAME: TEXT]
#          report PATH
# The playground pages set their own head; the answer's values win, an
# empty value leaves the page's own tag, and a page the API does not know
# keeps its own head.

# An ok answer: every value from the answer, none of the page's.
200 / contains=<title>Home | Acme</title> notcontains=Own home
200 / contains=<meta name="description" content="Acme home"> notcontains=Own home description
200 / contains=<meta property="og:title" content="Home | Acme"> notcontains=Own home og
200 / contains=<link rel="canonical" href="https://acme.test/">
200 / contains=<meta name="twitter:site" content="@acme">
200 / header=X-Robots-Tag: index, follow
200 /about contains=<title>About us | Acme</title> notcontains=Own about
200 /about contains=<link rel="canonical" href="https://acme.test/about"> notcontains=own-canonical.test
200 /about contains=<meta name="robots" content="index, follow, max-image-preview:large"> notcontains=content="noindex"
200 /about contains=<meta name="google-site-verification" content="fixture-google-code">

# Empty values keep the page's own tags; the template still applies.
200 /partial contains=<title>Partial own | Playground</title>
200 /partial contains=<meta name="description" content="Partial own description">
200 /partial contains=<link rel="canonical" href="https://acme.test/partial">

# Not known to the API: the page's own head, no robots added.
200 /plain contains=<title>Plain page | Playground</title> notcontains=name="robots"

# Staging: noindex wins over the page's index, also on a page the API does not know.
200 /staging contains=<meta name="robots" content="noindex, nofollow"> notcontains=index, follow
200 /staging header=X-Robots-Tag: noindex, nofollow

# Redirects: the site's own origin becomes a path, another host stays absolute.
301 /old-path header=Location: /about
302 /old-temp?ref=1 header=Location: /about?x=1
301 /moved header=Location: https://other.test/x

# 410 wins over the route, also over a page that would render.
410 /gone-path
410 /posts/gone-post
200 /posts/known contains=<title>Known post | Playground</title>

# 404s, from an unknown route and from a page, are reported to the log.
404 /missing-page
404 /posts/nope
report /missing-page
report /posts/nope

# Verification files at the root; anything else falls through.
200 /google0123.html contains=google-site-verification: google0123.html header=X-Content-Type-Options: nosniff
404 /unknown0123.html
404 /robots.txt
