Bug 1438937 [wpt PR 8583] - Add http-state cookie tests from abart/http-state github repository, a=testonly
authorFriedrich Horschig <fhorschig@chromium.org>
Mon, 09 Apr 2018 14:31:59 +0000
changeset 466982 f369b0fb504c60abe7517a39b44beea609f979d5
parent 466981 8a77da7f1488ef1c8011f049c5e536ca3716a619
child 466983 4cd655ab5f59d9e92ddf0a33162fb57b01359a6f
push id9165
push userasasaki@mozilla.com
push dateThu, 26 Apr 2018 21:04:54 +0000
treeherdermozilla-beta@064c3804de2e [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1438937, 807988, 542085
milestone61.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1438937 [wpt PR 8583] - Add http-state cookie tests from abart/http-state github repository, a=testonly Automatic update from web-platform-testsAdd http-state cookie tests from abart/http-state github repository These are the first steps to port the http-state cookie tests from https://github.com/abarth/http-state/tree/master/tests to the external/wpt/ directory. Accessing <server>/cookies/http-state/all-tests.html will run all tests in cookies/http-state/resources/test-files/. This ensures that tests stay isolated, ignore set cookies and clean up cookies after themselves. By accessing the server directly, single tests can be debugged. e.g. to run test file 0005 in isolation, access this URL: <server>/cookies/http-state/resources/cookie-setter.py?debug=0005 Change-Id: I1fceccf0bc5d080d024998451abd027142d6a16a Reviewed-on: https://chromium-review.googlesource.com/807988 Commit-Queue: Friedrich Horschig <fhorschig@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Cr-Commit-Position: refs/heads/master@{#542085} wpt-commits: 83b0a62af874eaf20e9d97d2fb9e15e91f3d109f wpt-pr: 8583 wpt-commits: 83b0a62af874eaf20e9d97d2fb9e15e91f3d109f wpt-pr: 8583
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/cookies/http-state/all-tests.html
testing/web-platform/tests/cookies/http-state/resources/cookie-http-state-template.js
testing/web-platform/tests/cookies/http-state/resources/cookie-setter.py
testing/web-platform/tests/cookies/http-state/resources/debugging-single-test.html.py-str
testing/web-platform/tests/cookies/http-state/resources/iframe-content-pushing.js
testing/web-platform/tests/cookies/http-state/resources/iframe-expectation-doc.html.py-str
testing/web-platform/tests/cookies/http-state/resources/test-files/0001-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0001-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0002-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0002-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0003-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0003-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0004-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0004-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0005-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0005-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0006-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0006-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0007-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0007-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0008-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0008-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0009-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0009-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0010-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0010-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0011-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0011-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0012-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0012-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0013-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0013-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0014-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0014-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0015-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0015-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0016-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0016-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0017-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0017-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0018-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0018-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0019-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0019-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0020-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0020-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0021-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0021-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0022-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0022-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0023-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0023-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0024-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0024-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0025-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0025-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0026-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0026-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0027-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0027-test
testing/web-platform/tests/cookies/http-state/resources/test-files/0028-expected
testing/web-platform/tests/cookies/http-state/resources/test-files/0028-test
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -213922,16 +213922,321 @@
      {}
     ]
    ],
    "cookies/README.md": [
     [
      {}
     ]
    ],
+   "cookies/http-state/resources/cookie-http-state-template.js": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/cookie-setter.py": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/debugging-single-test.html.py-str": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/iframe-content-pushing.js": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/iframe-expectation-doc.html.py-str": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0001-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0001-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0002-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0002-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0003-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0003-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0004-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0004-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0005-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0005-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0006-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0006-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0007-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0007-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0008-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0008-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0009-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0009-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0010-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0010-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0011-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0011-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0012-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0012-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0013-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0013-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0014-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0014-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0015-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0015-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0016-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0016-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0017-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0017-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0018-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0018-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0019-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0019-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0020-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0020-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0021-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0021-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0022-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0022-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0023-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0023-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0024-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0024-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0025-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0025-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0026-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0026-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0027-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0027-test": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0028-expected": [
+    [
+     {}
+    ]
+   ],
+   "cookies/http-state/resources/test-files/0028-test": [
+    [
+     {}
+    ]
+   ],
    "cookies/resources/echo-cookie.html": [
     [
      {}
     ]
    ],
    "cookies/resources/echo-json.py": [
     [
      {}
@@ -310858,16 +311163,22 @@
     ]
    ],
    "cookie-store/serviceworker_cookieStore_basic.tentative.https.html": [
     [
      "/cookie-store/serviceworker_cookieStore_basic.tentative.https.html",
      {}
     ]
    ],
+   "cookies/http-state/all-tests.html": [
+    [
+     "/cookies/http-state/all-tests.html",
+     {}
+    ]
+   ],
    "cookies/meta-blocked.html": [
     [
      "/cookies/meta-blocked.html",
      {}
     ]
    ],
    "cookies/path/match.html": [
     [
@@ -422003,16 +422314,264 @@
   "cookies/OWNERS": [
    "15417c1a9e90762ae826b0258fe3619cc6a78b0e",
    "support"
   ],
   "cookies/README.md": [
    "1949878db1be4093ec8d9595710f9fd8887434ba",
    "support"
   ],
+  "cookies/http-state/all-tests.html": [
+   "4e030633623184b3e5705d312294412b96f28bf7",
+   "testharness"
+  ],
+  "cookies/http-state/resources/cookie-http-state-template.js": [
+   "2e096943b9071f912adf4b3fec3ecae8e6b68118",
+   "support"
+  ],
+  "cookies/http-state/resources/cookie-setter.py": [
+   "693d8ec6f340275e978db3ad9a8472c411ac733f",
+   "support"
+  ],
+  "cookies/http-state/resources/debugging-single-test.html.py-str": [
+   "654fd1e28ddb80d348177156be6891a69151bf35",
+   "support"
+  ],
+  "cookies/http-state/resources/iframe-content-pushing.js": [
+   "fbc5db2860aeda6f40ab030860ef0cad4269b623",
+   "support"
+  ],
+  "cookies/http-state/resources/iframe-expectation-doc.html.py-str": [
+   "75d7f676ea34a2de323a5e21fd0311fc6af10559",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0001-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0001-test": [
+   "39267fb59abc334f248787ad0b90fdb335b6d978",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0002-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0002-test": [
+   "831c8e90ead0291ffe36a82f0ada40c9a1b39f7f",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0003-expected": [
+   "6e46add5a20aed330c75fc95a727647a6a62085c",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0003-test": [
+   "10a97fd3dd221dc3681a548e166ff81d70623d85",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0004-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0004-test": [
+   "ca5e6a3fef1d281d2658efbb49a1d3d93cff5383",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0005-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0005-test": [
+   "21f309bbef82b8f40db76d4b2c16a70d7c48fa3d",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0006-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0006-test": [
+   "d65ef234d4b769ded714a2954f9911c231921e08",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0007-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0007-test": [
+   "6781b00cb8db2d51bcdea7f3e3898d2bf71a18ad",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0008-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0008-test": [
+   "e144c22f6b0f015e42bc99b7ede7533f88009a79",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0009-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0009-test": [
+   "6cc31bc3fadd075bc3df42200559a1c384b5954c",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0010-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0010-test": [
+   "8938cf5aeef5a84828a41424154e23d77503a7c2",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0011-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0011-test": [
+   "bb5a0e5a6cb4884e4161fa3aaef85f5c889aa2c3",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0012-expected": [
+   "2017a6b45d4929c7f8ebbbaca36331cc11199f88",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0012-test": [
+   "50f6b17f8663140ef6a8da5b0b808ddb75de3ff6",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0013-expected": [
+   "94ac42babde7e098c5a3b1a5b967a482661d34d9",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0013-test": [
+   "cfbaa5ec1434f310a2307f31384c5c802a41dcee",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0014-expected": [
+   "63b44fb34e929499aa6e7e10107ba42bed4bf102",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0014-test": [
+   "1bba693282c7a6cd8a8189e42f2223f664b70bc3",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0015-expected": [
+   "969c588efb9bed6d834836ab8c7154615981fcaf",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0015-test": [
+   "44b7c98589eb8c93ffb0d4b8410f683d789c3403",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0016-expected": [
+   "f6871163355cbcf80d33619af177c6dc6947d2f1",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0016-test": [
+   "21ce5420b2802c9a2c60c7f8cd4aa82b466cd6db",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0017-expected": [
+   "12081e8a1edca7056df86a2abd6156790ce00318",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0017-test": [
+   "e7816075c82788cd1de25dec77fb7ff1929f0d74",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0018-expected": [
+   "fa5f92ce177b11fc1b8df81abd75cc2d7feaa591",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0018-test": [
+   "27baa279199e4dd31a3008e59591ea4655c925cd",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0019-expected": [
+   "c72660a2dea4cc06221857e79d722cd656b7c797",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0019-test": [
+   "c43d87e073450f63b89a8b95603fd9b2f1c78c77",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0020-expected": [
+   "55019e1af5182dc7641f6ea731a65781ba7f6410",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0020-test": [
+   "280ee9a2f25bc8b68e6120e92199e8586a4b2095",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0021-expected": [
+   "55019e1af5182dc7641f6ea731a65781ba7f6410",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0021-test": [
+   "35805d1fb83bfbf179dc6ae01d7dfc0fab959f6b",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0022-expected": [
+   "4241a551c571283d8a8f5077351db5dc3f068dd6",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0022-test": [
+   "a22c4427ded3c9ee5b3bb8abf8c2f8d035a5df04",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0023-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0023-test": [
+   "b0e7f6e71e828d978b9cba6b78666313db236ac9",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0024-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0024-test": [
+   "eb071d44c0344f5a227f2fa5eebf0111a8a49683",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0025-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0025-test": [
+   "36a5c1062a93f924ee4db79cd8e4caa3df38c48e",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0026-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0026-test": [
+   "b0e7f6e71e828d978b9cba6b78666313db236ac9",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0027-expected": [
+   "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0027-test": [
+   "d5d8e8d85183b6665438a42c14c17e56724ff0c7",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0028-expected": [
+   "b0e7f6e71e828d978b9cba6b78666313db236ac9",
+   "support"
+  ],
+  "cookies/http-state/resources/test-files/0028-test": [
+   "b0e7f6e71e828d978b9cba6b78666313db236ac9",
+   "support"
+  ],
   "cookies/meta-blocked.html": [
    "1ece2f38a340ff4ff4713ada5568281d0e1c5be2",
    "testharness"
   ],
   "cookies/path/match.html": [
    "a54ac9afd9c176da2c8844389feb3cb0150fcf5c",
    "testharness"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/all-tests.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset=utf-8>
+    <title>Tests basic cookie setting functionality</title>
+    <meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
+
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="resources/cookie-http-state-template.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+      setup({ explicit_timeout: true });
+
+      const TEST_CASES = [
+        {file: "0001", name: "Set cookie."},
+        {file: "0002", name: "Set cookie with future expiration."},
+        {file: "0003", name: "Set expired cookie along with valid cookie."},
+        {file: "0004", name: "Ignore cookie without key."},
+        {file: "0005", name: "Set cookie with age."},
+        {file: "0006", name: "Set no cookie with max-age=0."},
+        {file: "0007", name: "Set cookie with version=1."},
+        {file: "0008", name: "Set cookie with version=1000."},
+        {file: "0009", name: "Set cookie with custom value."},
+        // TODO(fhorschig): Could 0010 break when run on a HTTPS try server?
+        {file: "0010", name: "Dont accept 'secure' cookies over http."},
+        {file: "0011", name: "Ignore separators in cookie values."},
+        {file: "0012", name: "Ignore values with separators and without ';'."},
+        {file: "0013", name: "Use last value for cookies with identical keys."},
+        {file: "0014", name: "Keep alphabetic key order."},
+        {file: "0015", name: "Keep alphabetic single-char key order."},
+        {file: "0016", name: "Keep non-alphabetic key order."},
+        {file: "0017", name: "Keep order if comma-separated."},
+        {file: "0018", name: "Ignore keys after semicolon."},
+        {file: "0019", name: "Ignore attributes after semicolon."},
+        {file: "0020", name: "Ignore cookies without key and value."},
+        {file: "0021", name: "Ignore cookie without key in all 'Set-Cookie'."},
+        {file: "0022", name: "Set cookie without value in all 'Set-Cookie'."},
+        {file: "0023", name: "Ignore cookies without '=' in all 'Set-Cookie'."},
+        {file: "0024", name: "Ignore malformed cookies in all 'Set-Cookie'."},
+        {file: "0025", name: "Ignore cookies with ';' in all 'Set-Cookie'."},
+        {file: "0026", name: "Ignore malformed cookies in all 'Set-Cookie' v2."},
+        {file: "0027", name: "Ignore malformed cookies in all 'Set-Cookie' v3."},
+        // TODO(fhorschig): Ask about 0028's expectations ... should be empty?
+        {file: "0028", name: "[INVALID EXPECTATION] Ignore malformed cookies in all 'Set-Cookie' v4."},
+      ];
+
+      for (const i in TEST_CASES) {
+        const t = TEST_CASES[i];
+        promise_test(createCookieTest(t.file),
+                     t.file + " - " + t.name,
+                     { timeout: 3000 });
+      }
+
+    </script>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/cookie-http-state-template.js
@@ -0,0 +1,80 @@
+const SERVER_LOCATION = "resources";
+const SERVER_SCRIPT = SERVER_LOCATION + "/cookie-setter.py";
+
+function stripPrefixAndWhitespace(cookie_text) {
+  return cookie_text.replace(/^Cookie: /, '').replace(/^\s+|\s+$/g, '');
+}
+
+function getLocalResourcesPath() {
+  return location.pathname.replace(/[^\/]*$/, "") + SERVER_LOCATION;
+}
+
+function getAbsoluteServerLocation() {
+  return getLocalResourcesPath().replace(/resources.*$/,'')+ SERVER_SCRIPT;
+}
+
+function expireCookie(name, expiry_date, path) {
+  name = name || "";
+  expiry_date = expiry_date || "Thu, 01 Jan 1970 00:00:00 UTC";
+  path = path || getLocalResourcesPath();
+  document.cookie = name + "=; expires=" + expiry_date + "; path=" + path + ";";
+}
+
+function CookieManager() {
+  this.initial_cookies = [];
+}
+
+CookieManager.prototype.parse = document_cookies => {
+  this.initial_cookies = [];
+  document_cookies = document_cookies.replace(/^Cookie: /, '');
+  if (document_cookies != "") {
+    this.initial_cookies = document_cookies.split(/\s*;\s*/);
+  }
+}
+
+CookieManager.prototype.diffWith = document_cookies => {
+  this.actual_cookies = document_cookies;
+  for (let i in initial_cookies) {
+    let no_spaces_cookie_regex =
+        new RegExp(/\s*[\;]*\s/.source + initial_cookies[i]);
+    this.actual_cookies = actual_cookies.replace(no_spaces_cookie_regex, '');
+  }
+  return this.actual_cookies;
+}
+
+CookieManager.prototype.resetCookies = () => {
+  expireCookie(/*name=*/"");  // If a cookie without keys was accepted, drop it.
+  if (this.actual_cookies == "") {
+    return;  // There is nothing to reset here.
+  }
+  let cookies_to_delete = this.actual_cookies.split(/\s*;\s*/)
+  for (let i in cookies_to_delete){
+    expireCookie(cookies_to_delete[i].replace(/=.*$/, ""));
+    // Drop cookies with same name that were set to the root path which happens
+    // for example due to "0010" still failing.
+    expireCookie(cookies_to_delete[i].replace(/=.*$/, ""),
+                 /*expiry_date=*/null,
+                 /*path=*/'/');
+  }
+}
+
+function createCookieTest(file) {
+  return t => {
+    const iframe = document.createElement('iframe');
+    document.body.appendChild(iframe);
+    let diff_tool = new CookieManager();
+    t.add_cleanup(diff_tool.resetCookies);
+    return new Promise((resolve, reject) => {
+      diff_tool.parse(document.cookie);
+      window.addEventListener("message", t.step_func(e => {
+        assert_true(!!e.data, "Message contains data")
+        resolve(e.data);
+      }));
+      iframe.src = getAbsoluteServerLocation() + "?file=" + file;
+    }).then((response) => {
+      let actual_cookies = diff_tool.diffWith(response.cookies);
+      let expected_cookies = stripPrefixAndWhitespace(response.expectation);
+      assert_equals(actual_cookies, expected_cookies);
+    });
+  }
+};
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/cookie-setter.py
@@ -0,0 +1,54 @@
+from os import path;
+
+
+SETUP_FILE_TEMPLATE = "{}-test"
+EXPECTATION_FILE_TEMPLATE = "{}-expected"
+EXPECTATION_HTML_SCAFFOLD = "iframe-expectation-doc.html.py-str"
+DEBUGGING_HTML_SCAFFOLD = "debugging-single-test.html.py-str"
+DEFAULT_RESOURCE_DIR = path.join("cookies", "http-state", "resources")
+DEFAULT_TEST_DIR = "test-files"
+
+
+def dump_file(directory, filename):
+  return open(path.join(directory, filename), "r").read()
+
+
+class CookieTestResponse(object):
+  def __init__(self, file, root):
+    super(CookieTestResponse, self).__init__()
+    self.__test_file = SETUP_FILE_TEMPLATE.format(file)
+    self.__expectation_file = EXPECTATION_FILE_TEMPLATE.format(file)
+    self.__resources_dir = path.join(root, DEFAULT_RESOURCE_DIR)
+    self.__test_files_dir = path.join(self.__resources_dir, DEFAULT_TEST_DIR)
+
+  def cookie_setting_header(self):
+    return dump_file(self.__test_files_dir, self.__test_file)
+
+  def body_with_expectation(self):
+    html_frame = dump_file(self.__resources_dir, EXPECTATION_HTML_SCAFFOLD)
+    expected_data = dump_file(self.__test_files_dir, self.__expectation_file);
+    return html_frame.format(**{'data' : expected_data})
+
+
+def main(request, response):
+  if "debug" in request.GET:
+    response.writer.write_status(200)
+    response.writer.end_headers()
+    html_frame = dump_file(path.join(request.doc_root, DEFAULT_RESOURCE_DIR),
+                           DEBUGGING_HTML_SCAFFOLD)
+    test_file = html_frame % (request.GET['debug'])
+    response.writer.write_content(test_file)
+    return;
+
+  if not "file" in request.GET:
+    response.writer.write_status(404)
+    response.writer.end_headers()
+    response.writer.write_content("The 'file' parameter is missing!")
+    return;
+
+  cookie_response = CookieTestResponse(request.GET['file'], request.doc_root)
+
+  response.writer.write_status(200)
+  response.writer.write(cookie_response.cookie_setting_header())
+  response.writer.end_headers()
+  response.writer.write_content(cookie_response.body_with_expectation())
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/debugging-single-test.html.py-str
@@ -0,0 +1,21 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset=utf-8>
+    <title>Debug single test</title>
+    <meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
+
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="cookie-http-state-template.js"></script>
+  </head>
+  <body>
+    <div id="log"></div>
+    <script>
+      setup({ explicit_timeout: true });
+
+      promise_test(createCookieTest("%s"), "DEBUG", { timeout: 3000 });
+
+    </script>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/iframe-content-pushing.js
@@ -0,0 +1,4 @@
+window.top.postMessage({
+  "cookies": document.cookie,
+  "expectation": document.querySelector('#data').innerText
+}, "*");
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/iframe-expectation-doc.html.py-str
@@ -0,0 +1,11 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset=utf-8>
+    <title>Cookie Test Expectation Document</title>
+  </head>
+  <body>
+    <div id="data">{data}</div>
+    <script src="iframe-content-pushing.js"></script>
+  </body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0001-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0001-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0002-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0002-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; Expires=Fri, 07 Aug 2019 08:04:19 GMT
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0003-expected
@@ -0,0 +1,1 @@
+Cookie: foo2=bar2
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0003-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo=bar; Expires=Fri, 07 Aug 2007 08:04:19 GMT
+Set-Cookie: foo2=bar2; Expires=Fri, 07 Aug 2027 08:04:19 GMT
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0004-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0005-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0005-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; max-age=10000;
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0006-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; max-age=0;
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0007-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0007-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; version=1;
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0008-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0008-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; version=1000;
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0009-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0009-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; customvalue=1000;
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0010-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; secure;
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0011-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0011-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; customvalue="1000 or more";
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0012-expected
@@ -0,0 +1,1 @@
+Cookie: foo=bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0012-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=bar; customvalue="no trailing semicolon"
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0013-expected
@@ -0,0 +1,1 @@
+Cookie: foo=qux
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0013-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo=bar
+Set-Cookie: foo=qux
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0014-expected
@@ -0,0 +1,1 @@
+Cookie: foo1=bar; foo2=qux
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0014-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo1=bar
+Set-Cookie: foo2=qux
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0015-expected
@@ -0,0 +1,1 @@
+Cookie: a=b; z=y
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0015-test
@@ -0,0 +1,2 @@
+Set-Cookie: a=b
+Set-Cookie: z=y
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0016-expected
@@ -0,0 +1,1 @@
+Cookie: z=y; a=b
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0016-test
@@ -0,0 +1,2 @@
+Set-Cookie: z=y
+Set-Cookie: a=b
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0017-expected
@@ -0,0 +1,2 @@
+Cookie: z=y, a=b
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0017-test
@@ -0,0 +1,1 @@
+Set-Cookie: z=y, a=b
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0018-expected
@@ -0,0 +1,2 @@
+Cookie: z=y
+
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0018-test
@@ -0,0 +1,1 @@
+Set-Cookie: z=y; foo=bar, a=b
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0019-expected
@@ -0,0 +1,1 @@
+Cookie: foo=b
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0019-test
@@ -0,0 +1,1 @@
+Set-Cookie: foo=b;max-age=3600, c=d;path=/
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0020-expected
@@ -0,0 +1,1 @@
+Cookie: a=b; c=d
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0020-test
@@ -0,0 +1,3 @@
+Set-Cookie: a=b
+Set-Cookie: =
+Set-Cookie: c=d
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0021-expected
@@ -0,0 +1,1 @@
+Cookie: a=b; c=d
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0021-test
@@ -0,0 +1,3 @@
+Set-Cookie: a=b
+Set-Cookie: =x
+Set-Cookie: c=d
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0022-expected
@@ -0,0 +1,1 @@
+Cookie: a=b; x=; c=d
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0022-test
@@ -0,0 +1,3 @@
+Set-Cookie: a=b
+Set-Cookie: x=
+Set-Cookie: c=d
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0023-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie:
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0024-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie: =
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0025-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie: ; bar
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0026-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie:
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0027-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie: bar
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0028-expected
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie:
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/cookies/http-state/resources/test-files/0028-test
@@ -0,0 +1,2 @@
+Set-Cookie: foo
+Set-Cookie: