summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/navigation-api/navigation-methods/return-value/resources/204-205-download-on-second-visit.py
blob: c18b0dec3dc6adc4a95b7b18bbe0f369d0dbcc7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def main(request, response):
    key = request.GET[b"id"]

    # If hit with a POST with ?action=X, store X in the stash
    if request.method == "POST":
      action = request.GET[b"action"]
      request.server.stash.put(key, action)

      return (204, [], "")

    # If hit with a GET, either return a normal initial page, or the abnormal requested response
    elif request.method == "GET":
      action = request.server.stash.take(key)

      if action is None:
          return (200, [("Content-Type", "text/html"), ("Cache-Control", "no-store")], "initial page")
      if action == b"204":
          return (204, [], "")
      if action == b"205":
          return (205, [], "")
      if action == b"download":
          return (200, [("Content-Type", "text/plain"), ("Content-Disposition", "attachment")], "some text to download")

    return (400, [], "")