Index: third_party/WebKit/LayoutTests/http/tests/inspector-protocol/cookies-protocol-test.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/cookies-protocol-test.html b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/cookies-protocol-test.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..971edcbacbc0109d9e7643c787259ed19a546bb2 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/cookies-protocol-test.html |
@@ -0,0 +1,166 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<script src="inspector-protocol-test.js"></script> |
+<script> |
+function test() |
+{ |
+ InspectorTest.log("Test started"); |
+ |
+ var testCookies = [ |
+ function simpleCookieAdd(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo", value: "bar1"}, done); |
+ }, |
+ |
+ function simpleCookieChange(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo", value: "second bar2"}, done); |
+ }, |
+ |
+ function anotherSimpleCookieAdd(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo2", value: "bar1"}, done); |
+ }, |
+ |
+ function simpleCookieDelete(done) |
+ { |
+ deleteCookie({url: "http://127.0.0.1", cookieName: "foo"}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function sessionCookieAdd(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo", value: "bar4", expirationDate: undefined}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function nonSessionCookieZeroAdd(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo", value: "bar5", expirationDate: 0}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function nonSessionCookieAdd(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo", value: "bar6", expirationDate: new Date().getTime() + 1000000}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function differentOriginCookieAdd(done) |
+ { |
+ // Will result in success but not show up |
+ setCookie({url: "http://example.com", name: "foo", value: "bar7"}, done); |
+ }, |
+ |
+ function invalidCookieAddDomain(done) |
+ { |
+ setCookie({url: "ht2tp://127.0.0.1", name: "foo", value: "bar8"}, done); |
+ }, |
+ |
+ function invalidCookieAddName(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", name: "foo\0\r\na", value: "bar9"}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function secureCookieAdd(done) |
+ { |
+ // Will succeed but not be shown because not over https |
+ setCookie({url: "http://127.0.0.1", secure: true, name: "foo", value: "bar"}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function cookieAddHttpOnly(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", httpOnly: true, name: "foo", value: "bar"}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function cookieAddSameSiteLax(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", sameSite: "Lax", name: "foo", value: "bar"}, done); |
+ }, |
+ |
+ deleteAllCookies, |
+ |
+ function cookieAddSameSiteLax(done) |
+ { |
+ setCookie({url: "http://127.0.0.1", sameSite: "Strict", name: "foo", value: "bar"}, done); |
+ } |
+ ]; |
+ |
+ enableNetwork(); |
+ |
+ function enableNetwork() |
+ { |
+ InspectorTest.log("Enabling network"); |
+ InspectorTest.sendCommandOrDie("Network.enable", {}, InspectorTest.runTestSuite(testCookies)); |
+ } |
+ |
+ function setCookie(cookie, done) |
+ { |
+ InspectorTest.log("Setting Cookie"); |
+ InspectorTest.sendCommandOrDie("Network.setCookie", cookie, (response) => logCookies(done, response.success)); |
+ } |
+ |
+ function deleteCookie(cookie, done) |
+ { |
+ InspectorTest.log("Deleting Cookie"); |
+ InspectorTest.sendCommandOrDie("Network.deleteCookie", cookie, () => logCookies(done)); |
+ } |
+ |
+ function deleteAllCookies(done) |
+ { |
+ InspectorTest.log("Removing All Cookies"); |
+ InspectorTest.sendCommandOrDie("Network.getCookies", {}, gotCookiesForDelete.bind(null, done)); |
+ } |
+ |
+ function gotCookiesForDelete(done, data) |
+ { |
+ var promises = []; |
+ for (var cookie of data.cookies) { |
+ var url = "http://" + cookie.domain + "/" + cookie.path; |
+ promises.push(InspectorTest.sendCommandPromise("Network.deleteCookie", {url: url, cookieName: cookie.name})); |
+ } |
+ |
+ Promise.all(promises).then(logCookies.bind(null, done, undefined)); |
+ } |
+ |
+ function logCookies(done, success) |
+ { |
+ |
+ InspectorTest.log("Logging Cookies"); |
+ if (success !== undefined) |
+ InspectorTest.log("Success: " + success); |
+ InspectorTest.sendCommandOrDie("Network.getCookies", {}, logReceivedGetCookies.bind(null, done)); |
+ } |
+ function logReceivedGetCookies(done, data) |
+ { |
+ InspectorTest.log("Num of cookies " + data.cookies.length); |
+ for (var cookie of data.cookies) { |
+ InspectorTest.log(" Cookie: "); |
+ InspectorTest.log(" Domain: " + cookie.domain); |
+ InspectorTest.log(" Name: " + cookie.name); |
+ InspectorTest.log(" Value: " + cookie.value); |
+ InspectorTest.log(" Path: " + cookie.path); |
+ InspectorTest.log(" HttpOnly: " + cookie.httpOnly); |
+ InspectorTest.log(" Secure: " + cookie.secure); |
+ InspectorTest.log(" Session: " + cookie.session); |
+ } |
+ done(); |
+ } |
+} |
+</script> |
+</head> |
+<body onload="runTest();"> |
+<p>Tests that cookies are set, updated and removed.</p> |
+</body> |
+</html> |