Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(211)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/security/suborigins/suborigin-unsafe-cookies.php

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

Powered by Google App Engine
This is Rietveld 408576698