Update web-platform-tests to revision 7ed49cff4d031720f829c01df837ed7a09ad5c60

This commit is contained in:
Ms2ger 2016-02-24 09:25:47 +01:00
parent 33f0040496
commit 62a9bebeef
220 changed files with 8623 additions and 559 deletions

View file

@ -0,0 +1,15 @@
import json
def main(request, response):
headers = [("Content-Type", "application/json"),
("Access-Control-Allow-Credentials", "true")]
if "origin" in request.headers:
headers.append(("Access-Control-Allow-Origin", request.headers["origin"]))
values = []
for key in request.cookies:
for value in request.cookies.get_list(key):
values.append("\"%s\": \"%s\"" % (key, value))
body = "{ %s }" % ",".join(values)
return headers, body

View file

@ -0,0 +1,49 @@
// Given an array of potentially asynchronous tests, this function will execute
// each in serial, ensuring that one and only one test is executing at a time.
//
// The test array should look like this:
//
//
// var tests = [
// [
// "Test description goes here.",
// function () {
// // Test code goes here. `this` is bound to the test object.
// }
// ],
// ...
// ];
//
// The |setup| and |teardown| arguments are functions which are executed before
// and after each test, respectively.
function executeTestsSerially(testList, setup, teardown) {
var tests = testList.map(function (t) {
return {
test: async_test(t[0]),
code: t[1]
};
});
var executeNextTest = function () {
var current = tests.shift();
if (current === undefined) {
return;
}
// Setup the test fixtures.
if (setup) {
setup();
}
// Bind a callback to tear down the test fixtures.
if (teardown) {
current.test.add_cleanup(teardown);
}
// Execute the test.
current.test.step(current.code);
};
add_result_callback(function () { setTimeout(executeNextTest, 0) });
executeNextTest();
}

View file

@ -0,0 +1,47 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `document.cookie` on a secure page</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
var tests = [
[
"'secure' cookie visible in `document.cookie`",
function () {
document.cookie = "secure_from_secure_dom=1; secure; path=/";
assert_not_equals(document.cookie.match(/secure_from_secure_dom=1/), null);
this.done();
}
],
[
"'secure' cookie visible in HTTP request",
function () {
document.cookie = "secure_from_secure_dom=1; secure; path=/";
assert_not_equals(document.cookie.match(/secure_from_secure_dom=1/), null);
fetch("https://{{host}}:{{ports[https][0]}}/cookies/resources/echo-json.py",
{ "credentials": "include" })
.then(this.step_func(function (r) {
return r.json();
}))
.then(this.step_func_done(function (j) {
assert_equals(j["secure_from_secure_dom"], "secure_from_secure_dom=1");
}));
}
]
];
function clearKnownCookie() {
document.cookie = "secure_from_secure_dom=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
executeTestsSerially(tests, clearKnownCookie, clearKnownCookie);
</script>
</body>
</html>

View file

@ -0,0 +1,47 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `document.cookie` on a non-secure page</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
var tests = [
[
"'secure' cookie not set in `document.cookie`",
function () {
var originalCookie = document.cookie;
document.cookie = "secure_from_nonsecure_dom=1; secure; path=/";
assert_equals(document.cookie, originalCookie);
this.done();
}
],
[
"'secure' cookie not sent in HTTP request",
function () {
document.cookie = "secure_from_nonsecure_dom=1; secure; path=/";
fetch("https://{{host}}:{{ports[https][0]}}/cookies/resources/echo-json.py", { "credentials": "include" })
.then(this.step_func(function (r) {
return r.json();
}))
.then(this.step_func_done(function (j) {
assert_equals(j["secure_from_nonsecure_dom"], undefined);
}));
}
]
];
function clearKnownCookie() {
document.cookie = "secure_from_nonsecure_dom=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
executeTestsSerially(tests, clearKnownCookie, clearKnownCookie);
</script>
</body>
</html>

View file

@ -0,0 +1,36 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `Set-Cookie` HTTP header on a secure page</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
function clearKnownCookie() {
document.cookie = "secure_from_secure_http=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
test(function () {
assert_not_equals(document.cookie.match(/secure_from_secure_http=1/), null);
}, "'secure' cookie present in `document.cookie`");
promise_test(function (t) {
t.add_cleanup(clearKnownCookie);
return fetch("https://{{host}}:{{ports[https][0]}}/cookies/resources/echo-json.py",
{ "credentials": "include" })
.then(function (r) {
return r.json();
})
.then(function (j) {
assert_equals(j["secure_from_secure_http"], "secure_from_secure_http=1");
});
}, "'secure' cookie sent in HTTP request");
</script>
</body>
</html>

View file

@ -0,0 +1,5 @@
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0, false
Pragma: no-cache
Set-Cookie: secure_from_secure_http=1; Secure; Path=/

View file

@ -0,0 +1,36 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `Set-Cookie` HTTP header on a non-secure page</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
function clearKnownCookie() {
document.cookie = "secure_from_nonsecure_http=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
test(function () {
assert_equals(document.cookie.match(/secure_from_nonsecure_http=1/), null);
}, "'secure' cookie not present in `document.cookie`");
promise_test(function (t) {
t.add_cleanup(clearKnownCookie);
return fetch("https://{{host}}:{{ports[https][0]}}/cookies/resources/echo-json.py",
{ "credentials": "include" })
.then(function (r) {
return r.json();
})
.then(function (j) {
assert_equals(j["secure_from_nonsecure_http"], undefined);
});
}, "'secure' cookie not sent in HTTP request");
</script>
</body>
</html>

View file

@ -0,0 +1,5 @@
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0, false
Pragma: no-cache
Set-Cookie: secure_from_nonsecure_http=1; Secure; Path=/

View file

@ -0,0 +1,45 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `Set-Cookie` HTTP header on a non-secure WebSocket</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
function clearKnownCookie() {
document.cookie = "ws_test_secure_from_nonsecure=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
async_test(function (t) {
t.add_cleanup(clearKnownCookie);
assert_equals(document.cookie.match(/ws_test_secure_from_nonsecure=/), null);
clearKnownCookie();
var ws = new WebSocket("ws://{{host}}:{{ports[ws][0]}}/set-cookie-secure?secure_from_nonsecure");
ws.onclose = t.step_func_done(function () {
assert_unreached("'close' should not fire before 'open'.");
});
ws.onopen = t.step_func(function (e) {
ws.onclose = null;
ws.close();
assert_false(/ws_test_secure_from_nonsecure=test/.test(document.cookie));
var ws2 = new WebSocket("wss://{{host}}:{{ports[wss][0]}}/echo-cookie");
ws2.onclose = t.step_func_done(function () {
assert_unreached("'close' should not fire before 'open'.");
});
ws2.onmessage = t.step_func_done(function (e) {
ws2.onclose = null;
ws2.close();
assert_false(/ws_test_secure_from_nonsecure=test/.test(e.data));
});
});
}, "'secure' cookie not sent in WSS request when set from WS");
</script>
</body>
</html>

View file

@ -0,0 +1,44 @@
<!doctype html>
<html>
<head>
<meta charset=utf-8>
<title>Set 'secure' cookie from `Set-Cookie` HTTP header on a secure WebSocket</title>
<meta name=help href="https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/cookies/resources/testharness-helpers.js"></script>
</head>
<body>
<div id=log></div>
<script>
function clearKnownCookie() {
document.cookie = "ws_test_secure_from_secure=0; Secure; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/";
}
async_test(function (t) {
t.add_cleanup(clearKnownCookie);
assert_equals(document.cookie.match(/ws_test_secure_from_secure=/), null);
clearKnownCookie();
var ws = new WebSocket("wss://{{host}}:{{ports[wss][0]}}/set-cookie-secure?secure_from_secure");
ws.onclose = t.step_func_done(function () {
assert_unreached("'close' should not fire before 'open'.");
});
ws.onopen = t.step_func(function (e) {
ws.onclose = null;
ws.close();
assert_regexp_match(document.cookie, /ws_test_secure_from_secure=test/);
var ws2 = new WebSocket("wss://{{host}}:{{ports[wss][0]}}/echo-cookie");
ws2.onclose = t.step_func_done(function () {
assert_unreached("'close' should not fire before 'open'.");
});
ws2.onmessage = t.step_func_done(function (e) {
ws2.onclose = null;
ws2.close();
assert_regexp_match(e.data, /ws_test_secure_from_secure=test/);
});
});
}, "'secure' cookie not sent in HTTP request");
</script>
</body>
</html>