OLD | NEW |
1 <?php | 1 <?php |
2 setcookie("test_cookie", "a_value"); | 2 setcookie("test_cookie", "a_value"); |
3 header("Suborigin: foobar"); | 3 header("Suborigin: foobar"); |
4 ?> | 4 ?> |
5 <!DOCTYPE html> | 5 <!DOCTYPE html> |
6 <html> | 6 <html> |
7 <head> | 7 <head> |
| 8 <meta charset="utf-8"> |
8 <title>Validate behavior of cookies in Suborigins</title> | 9 <title>Validate behavior of cookies in Suborigins</title> |
9 <script src="/resources/testharness.js"></script> | 10 <script src="/resources/testharness.js"></script> |
10 <script src="/resources/testharnessreport.js"></script> | 11 <script src="/resources/testharnessreport.js"></script> |
11 </head> | 12 </head> |
12 <body> | 13 <body> |
13 <script> | 14 <script> |
14 test(t => { | 15 test(t => { |
15 assert_equals(document.cookie, ""); | 16 assert_equals(document.cookie, ''); |
16 document.cookie = "foo=bar"; | 17 document.cookie = 'foo=bar'; |
17 assert_equals(document.cookie, ""); | 18 assert_equals(document.cookie, ''); |
18 t.done(); | 19 t.done(); |
19 }, "Document is cookie-averse"); | 20 }, 'Document is cookie-averse'); |
20 | 21 |
21 test(t => { | 22 test(t => { |
22 Object.defineProperties(document, { | 23 Object.defineProperties(document, { |
23 "cookie": { | 24 'cookie': { |
24 get: function() { return this.x; }, | 25 get: function() { return this.x; }, |
25 set: function(x) { this.x = x; } | 26 set: function(x) { this.x = x; } |
26 } | 27 } |
27 }); | 28 }); |
28 | 29 |
29 document.cookie = "foo"; | 30 document.cookie = 'foo'; |
30 assert_equals(document.cookie, "foo"); | 31 assert_equals(document.cookie, 'foo'); |
31 delete document.cookie; | 32 delete document.cookie; |
32 t.done(); | 33 t.done(); |
33 }, "Document getters and setters still work"); | 34 }, 'Document getters and setters still work'); |
34 | 35 |
35 async_test(t => { | 36 async_test(t => { |
36 window.addEventListener('message', function(event) { | 37 window.addEventListener('message', function(event) { |
37 if (event.data.test_name != "iframetest") | 38 if (event.data.test_name != 'iframetest') |
38 return; | 39 return; |
39 | 40 |
40 var cookie_val = event.data.cookie_val; | 41 var cookie_val = event.data.cookie_val; |
41 assert_equals(cookie_val, "test_cookie=a_value"); | 42 assert_equals(cookie_val, 'test_cookie=a_value'); |
42 t.done(); | 43 t.done(); |
43 }); | 44 }); |
44 | 45 |
45 var iframe = document.createElement('iframe'); | 46 var iframe = document.createElement('iframe'); |
46 iframe.src = "resources/post-document-cookie.php?testname=iframetest"; | 47 iframe.src = 'resources/post-document-cookie.php?testname=iframetest'; |
47 document.body.appendChild(iframe); | 48 document.body.appendChild(iframe); |
48 }, "Cookies set in a frame with a regular, same-origin src do not modify the sub
origin's document.cookie"); | 49 }, |
| 50 'Cookies set in a frame with a regular, same-origin src do not modify ' + |
| 51 'the suborigin\'s document.cookie'); |
49 | 52 |
50 function makeIframeString(test_name) { | 53 function make_iframe_string(test_name) { |
51 var postMessageContent = "{cookie_val: document.cookie, test_name: '" + test
_name + "'}"; | 54 var post_message_content = '{cookie_val: document.cookie, ' + |
52 return "document.cookie = 'foo=bar'; window.parent.postMessage(" + postMessa
geContent + ", '*')"; | 55 'test_name: \'' + test_name + '\'}'; |
| 56 return 'document.cookie = \'foo=bar\'; window.parent.postMessage(' + |
| 57 post_message_content + ', \'*\')'; |
53 } | 58 } |
54 | 59 |
55 async_test(t => { | 60 async_test(t => { |
56 window.addEventListener('message', function(event) { | 61 window.addEventListener('message', function(event) { |
57 if (event.data.test_name != "about:blanktest") | 62 if (event.data.test_name != 'about:blanktest') |
58 return; | 63 return; |
59 | 64 |
60 assert_equals(event.data.cookie_val, ""); | 65 assert_equals(event.data.cookie_val, ''); |
61 t.done(); | 66 t.done(); |
62 }); | 67 }); |
63 | 68 |
64 var iframe = document.createElement('iframe'); | 69 var iframe = document.createElement('iframe'); |
65 iframe.src = "about:blank"; | 70 iframe.src = 'about:blank'; |
66 iframe.onload = function() { | 71 iframe.onload = function() { |
67 var script = iframe.contentWindow.document.createElement("script"); | 72 var script = iframe.contentWindow.document.createElement('script'); |
68 script.innerHTML = makeIframeString("about:blanktest"); | 73 script.innerHTML = make_iframe_string('about:blanktest'); |
69 iframe.contentWindow.document.body.appendChild(script); | 74 iframe.contentWindow.document.body.appendChild(script); |
70 }; | 75 }; |
71 document.body.appendChild(iframe); | 76 document.body.appendChild(iframe); |
72 }, "Cookies set in an about:blank frame do not modify the suborigin's document.c
ookie and also have an empty document.cookie"); | 77 }, |
| 78 'Cookies set in an about:blank frame do not modify the suborigin\'s ' + |
| 79 'document.cookie and also have an empty document.cookie'); |
73 | 80 |
74 // TODO(jww): Re-enabled this test after https://crbug.com/649893 is addressed. | 81 // TODO(jww): Re-enabled this test after https://crbug.com/649893 is addressed. |
75 /* | 82 /* |
76 async_test(t => { | 83 async_test(t => { |
77 window.addEventListener('message', function(event) { | 84 window.addEventListener('message', function(event) { |
78 if (event.data.test_name != "blob:test") | 85 if (event.data.test_name != 'blob:test') |
79 return; | 86 return; |
80 | 87 |
81 assert_equals(event.data.cookie_val, ""); | 88 assert_equals(event.data.cookie_val, ''); |
82 t.done(); | 89 t.done(); |
83 }); | 90 }); |
84 | 91 |
85 var iframe = document.createElement('iframe'); | 92 var iframe = document.createElement('iframe'); |
86 var script = "<" + "script>" + makeIframeString("blob:test") + "<" + "/scrip
t>"; | 93 var script = '<' + 'script>' + make_iframe_string('blob:test') + '<' + '/scr
ipt>'; |
87 var blob = new Blob([script], {type: 'text/html'}); | 94 var blob = new Blob([script], {type: 'text/html'}); |
88 iframe.src = URL.createObjectURL(blob); | 95 iframe.src = URL.createObjectURL(blob); |
89 document.body.appendChild(iframe); | 96 document.body.appendChild(iframe); |
90 }, "Cookies set in a blob: frame do not modify the suborigin's document.cookie a
nd also have an empty document.cookie"); | 97 }, |
91 */ | 98 'Cookies set in a blob: frame do not modify the suborigin\'s ' + |
| 99 'document.cookie and also have an empty document.cookie'); |
| 100 */ |
92 | 101 |
93 async_test(t => { | 102 async_test(t => { |
94 window.addEventListener('message', function(event) { | 103 window.addEventListener('message', function(event) { |
95 if (event.data.test_name != "srcdoc:test") | 104 if (event.data.test_name != 'srcdoc:test') |
96 return; | 105 return; |
97 | 106 |
98 assert_equals(event.data.cookie_val, ""); | 107 assert_equals(event.data.cookie_val, ''); |
99 t.done(); | 108 t.done(); |
100 }); | 109 }); |
101 | 110 |
102 var iframe = document.createElement('iframe'); | 111 var iframe = document.createElement('iframe'); |
103 var script = "<" + "script>" + makeIframeString("srcdoc:test") + "<" + "/scr
ipt>"; | 112 var script = '<' + 'script>' + make_iframe_string('srcdoc:test') + '<' + '/s
cript>'; |
104 iframe.srcdoc = "srcdoc:" + script; | 113 iframe.srcdoc = 'srcdoc:' + script; |
105 document.body.appendChild(iframe); | 114 document.body.appendChild(iframe); |
106 }, "Cookies set in a srcdoc frame do not modify the suborigin's document.cookie
and also have an empty document.cookie"); | 115 }, |
107 | 116 'Cookies set in a srcdoc frame do not modify the suborigin\'s ' + |
| 117 'document.cookie and also have an empty document.cookie'); |
108 </script> | 118 </script> |
109 </body> | 119 </body> |
110 </html> | 120 </html> |
OLD | NEW |