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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/streams/generate-test-wrappers.js

Issue 2648173006: Import wpt@cf62b859e6b890abc34f8140d185ba91df95c5b6 (Closed)
Patch Set: Rebased Created 3 years, 10 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 "use strict"; 1 "use strict";
2 // Usage: `node generate-test-wrappers.js js-filename1.js [js-filename2.js ...]` will generate: 2 // Usage: `node generate-test-wrappers.js js-filename1.js [js-filename2.js ...]` will generate:
3 // - js-filename1.https.html 3 // - js-filename1.https.html
4 // - js-filename1.sharedworker.html 4 // - js-filename1.sharedworker.html
5 // - js-filename1.dedicatedworker.html 5 // - js-filename1.dedicatedworker.html
6 // - js-filename1.serviceworker.html 6 // - js-filename1.serviceworker.html
7 // (for each passed filename) 7 // (for each passed filename)
8 // 8 //
9 // It will turn any importScripts inside the .js file into <script>s in the brow ser context wrapper. 9 // It will turn any importScripts inside the .js file into <script>s in the brow ser context wrapper.
10 // 10 //
(...skipping 13 matching lines...) Expand all
24 function generateWrapper(jsFilename) { 24 function generateWrapper(jsFilename) {
25 const importedScriptFilenames = findImportedScriptFilenames(jsFilename); 25 const importedScriptFilenames = findImportedScriptFilenames(jsFilename);
26 const importedScriptTags = importedScriptFilenames 26 const importedScriptTags = importedScriptFilenames
27 .map(filename => `<script src="${filename}"></script>`) 27 .map(filename => `<script src="${filename}"></script>`)
28 .join('\n'); 28 .join('\n');
29 29
30 const basename = path.basename(jsFilename); 30 const basename = path.basename(jsFilename);
31 const noExtension = path.basename(jsFilename, '.js'); 31 const noExtension = path.basename(jsFilename, '.js');
32 32
33 const outputs = { 33 const outputs = {
34 https: `<!DOCTYPE html> 34 '.html': `<!DOCTYPE html>
35 <meta charset="utf-8"> 35 <meta charset="utf-8">
36 <title>${basename} browser context wrapper file</title> 36 <title>${basename} browser context wrapper file</title>
37 37
38 <script src="/resources/testharness.js"></script> 38 <script src="/resources/testharness.js"></script>
39 <script src="/resources/testharnessreport.js"></script> 39 <script src="/resources/testharnessreport.js"></script>
40 40
41 ${importedScriptTags} 41 ${importedScriptTags}
42 42
43 <script src="${basename}"></script> 43 <script src="${basename}"></script>
44 `, 44 `,
45 dedicatedworker: `<!DOCTYPE html> 45 '.dedicatedworker.html': `<!DOCTYPE html>
46 <meta charset="utf-8"> 46 <meta charset="utf-8">
47 <title>${basename} dedicated worker wrapper file</title> 47 <title>${basename} dedicated worker wrapper file</title>
48 48
49 <script src="/resources/testharness.js"></script> 49 <script src="/resources/testharness.js"></script>
50 <script src="/resources/testharnessreport.js"></script> 50 <script src="/resources/testharnessreport.js"></script>
51 51
52 <script> 52 <script>
53 'use strict'; 53 'use strict';
54 fetch_tests_from_worker(new Worker('${basename}')); 54 fetch_tests_from_worker(new Worker('${basename}'));
55 </script> 55 </script>
56 `, 56 `,
57 sharedworker: `<!DOCTYPE html> 57 '.sharedworker.html': `<!DOCTYPE html>
58 <meta charset="utf-8"> 58 <meta charset="utf-8">
59 <title>${basename} shared worker wrapper file</title> 59 <title>${basename} shared worker wrapper file</title>
60 60
61 <script src="/resources/testharness.js"></script> 61 <script src="/resources/testharness.js"></script>
62 <script src="/resources/testharnessreport.js"></script> 62 <script src="/resources/testharnessreport.js"></script>
63 63
64 <script> 64 <script>
65 'use strict'; 65 'use strict';
66 fetch_tests_from_worker(new SharedWorker('${basename}')); 66 fetch_tests_from_worker(new SharedWorker('${basename}'));
67 </script> 67 </script>
68 `, 68 `,
69 serviceworker: `<!DOCTYPE html> 69 '.serviceworker.https.html': `<!DOCTYPE html>
70 <meta charset="utf-8"> 70 <meta charset="utf-8">
71 <title>${basename} service worker wrapper file</title> 71 <title>${basename} service worker wrapper file</title>
72 72
73 <script src="/resources/testharness.js"></script> 73 <script src="/resources/testharness.js"></script>
74 <script src="/resources/testharnessreport.js"></script> 74 <script src="/resources/testharnessreport.js"></script>
75 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></sc ript> 75 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></sc ript>
76 76
77 <script> 77 <script>
78 'use strict'; 78 'use strict';
79 service_worker_test('${basename}', 'Service worker test setup'); 79 service_worker_test('${basename}', 'Service worker test setup');
80 </script> 80 </script>
81 ` 81 `
82 }; 82 };
83 83
84 for (const [key, value] of Object.entries(outputs)) { 84 for (const [key, value] of Object.entries(outputs)) {
85 const destFilename = path.resolve(path.dirname(jsFilename), `${noExtensi on}.${key}.html`); 85 const destFilename = path.resolve(path.dirname(jsFilename), `${noExtensi on}${key}`);
86 fs.writeFileSync(destFilename, value, { encoding: 'utf-8' }); 86 fs.writeFileSync(destFilename, value, { encoding: 'utf-8' });
87 } 87 }
88 } 88 }
89 89
90 function findImportedScriptFilenames(inputFilename) { 90 function findImportedScriptFilenames(inputFilename) {
91 const scriptContents = fs.readFileSync(inputFilename, { encoding: 'utf-8' }) ; 91 const scriptContents = fs.readFileSync(inputFilename, { encoding: 'utf-8' }) ;
92 92
93 const regExp = /self\.importScripts\('([^']+)'\);/g; 93 const regExp = /self\.importScripts\('([^']+)'\);/g;
94 94
95 let result = []; 95 let result = [];
96 let match; 96 let match;
97 while (match = regExp.exec(scriptContents)) { 97 while (match = regExp.exec(scriptContents)) {
98 result.push(match[1]); 98 result.push(match[1]);
99 } 99 }
100 100
101 return result.filter(x => x !== '/resources/testharness.js'); 101 return result.filter(x => x !== '/resources/testharness.js');
102 } 102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698