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

Side by Side Diff: LayoutTests/http/tests/security/subresourceIntegrity/subresource-integrity-fetch.html

Issue 1279163005: Initial Fetch integration for Subresource Integrity (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add integration with FetchFormDataConsumerHandle Created 5 years, 4 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
« no previous file with comments | « no previous file | Source/core/dom/ScriptLoader.cpp » ('j') | Source/modules/fetch/FetchManager.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>Tests integrity enforcement on fetch()</title>
5 <script src="/resources/testharness.js"></script>
6 <script src="/resources/testharnessreport.js"></script>
7 </head>
8 <body>
9 <script>
10 var SRITest = function(pass, name, src, integrity, expectedValue) {
11 this.pass = pass;
12 this.name = name;
13 this.src = src;
14 this.integrity = integrity;
15 this.expectedValue = expectedValue;
16 }
17 SRITest.prototype.execute = function() {
18 var test = async_test(this.name);
19 var pass = this.pass;
20 var integrity = this.integrity;
21 var expectedValue = this.expectedValue;
22 var options = {};
23 if (integrity !== '') {
24 options.integrity = integrity;
25 }
26 fetch(this.src, options)
27 .then(test.step_func(function(response) {
yhirano 2015/08/19 10:42:36 You can use promise_test. Then you don't have to i
jww 2015/08/19 16:43:40 Done.
28 if (pass) {
29 if (expectedValue) {
30 consume(response.body.getReader(), test, expectedValue, '');
yhirano 2015/08/19 10:42:36 You can use response.text().
jww 2015/08/19 16:43:40 Done.
31 } else {
32 test.done();
33 }
34 } else {
35 assert_unreached("Response on bad fetch.");
36 }
37 }))
38 .catch(test.step_func(function(error) {
39 if (pass) {
40 assert_unreached("Network error on good fetch.");
41 } else {
42 test.done();
43 }
44 }));
45 }
46
47 function consume(reader, test, expectedValue, actualValue) {
48 return reader.read().then(function(result) {
49 if (result.done) {
50 assert_equals(actualValue, expectedValue, "Value consumed must match hashed value.");
51 test.done();
52 return;
53 }
54 actualValue = actualValue + String.fromCharCode.apply(null, result.value );
55 return consume(reader, test, expectedValue, actualValue);
56 });
57 }
58
59 new SRITest(true, 'No integrity', 'call-success.js', '', 'success();\n').execute ();
60 new SRITest(true, 'Good integrity', 'call-success.js', 'sha256-B0/62fJSJFrdjEFR9 ba04m/D+LHQ+zG6PGcaR0Trpxg=', 'success();\n').execute();
61 new SRITest(false, 'Bad integrity', 'call-success.js', 'sha256-deadbeef').execut e();
62 new SRITest(false, 'Bad integrity and an img', '/resources/square100.png', 'sha2 56-B0/62fJSJFrdjEFR9ba04m/D+LHQ+zG6PGcaR0Trpxg=').execute();
63 new SRITest(true, 'Good integrity and an img', '/resources/square100.png', 'sha2 56-xZjdcorjj+TiKGteFFcrNbdqrDns2iVURBpGpAwp12k=').execute();
64 </script>
65 </body>
66 </html>
OLDNEW
« no previous file with comments | « no previous file | Source/core/dom/ScriptLoader.cpp » ('j') | Source/modules/fetch/FetchManager.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698