blob: 43fa809944d51c1bf39b439212f32e83d01cf110 [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script>
function test()
{
let suite = InspectorTest.createSyncSuite("Page.getCookie");
suite.addTestCase({
name: "MatchCookiesAgainstResourceDomains",
description: "Test that Inspector properly detects whether a cookie matches a resource's domain or not.",
test(resolve, reject) {
let testcasesByCookieDomain = {
".example.com": [
// Unrelated top-level domain.
{
"input": "www.other.com",
"output": false,
},
{
"input": "stuff.other.com",
"output": false,
},
{
"input": "bad.stuff.other.com",
"output": false,
},
// Same top-level domain, with 0+ subdomains.
{
"input": "www.example.com",
"output": true,
},
{
"input": "stuff.example.com",
"output": true,
},
{
"input": "good.stuff.example.com",
"output": true,
},
],
"stuff.example.com": [
// Unrelated top-level domain.
{
"input": "www.other.com",
"output": false,
},
{
"input": "stuff.other.com",
"output": false,
},
{
"input": "bad.stuff.other.com",
"output": false,
},
// Same top-level domain, with 0+ subdomains.
{
"input": "www.example.com",
"output": false,
},
{
"input": "stuff.example.com",
"output": true,
},
{
"input": "good.stuff.example.com",
"output": false,
},
],
".stuff.example.com": [
// Unrelated top-level domain.
{
"input": "www.other.com",
"output": false,
},
{
"input": "stuff.other.com",
"output": false,
},
{
"input": "bad.stuff.other.com",
"output": false,
},
// Same top-level domain, with 0+ subdomains.
{
"input": "www.example.com",
"output": false,
},
{
"input": "stuff.example.com",
"output": true,
},
{
"input": "good.stuff.example.com",
"output": true,
},
],
"good.stuff.example.com": [
// Unrelated top-level domain.
{
"input": "www.other.com",
"output": false,
},
{
"input": "stuff.other.com",
"output": false,
},
{
"input": "bad.stuff.other.com",
"output": false,
},
// Same top-level domain, with 0+ subdomains.
{
"input": "www.example.com",
"output": false,
},
{
"input": "stuff.example.com",
"output": false,
},
{
"input": "good.stuff.example.com",
"output": true,
},
],
".good.stuff.example.com": [
// Unrelated top-level domain.
{
"input": "www.other.com",
"output": false,
},
{
"input": "stuff.other.com",
"output": false,
},
{
"input": "bad.stuff.other.com",
"output": false,
},
// Same top-level domain, with 0+ subdomains.
{
"input": "www.example.com",
"output": false,
},
{
"input": "stuff.example.com",
"output": false,
},
{
"input": "good.stuff.example.com",
"output": true,
},
]
};
for (let cookieDomain in testcasesByCookieDomain) {
for (let expected of testcasesByCookieDomain[cookieDomain]) {
let output = WI.CookieStorageObject.cookieDomainMatchesResourceDomain(cookieDomain, expected.input);
let verdictText = expected.output ? "should match" : "should not match";
InspectorTest.expectThat(output === expected.output, `${cookieDomain} ${verdictText} ${expected.input}`);
}
}
return true;
}
});
suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
<p>Tests for model code related to the Page.getCookie command.</p>
</body>
</html>