Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: test_runner.js

Issue 29375915: Issue 4878 - Start using ESLint for adblockpluscore (Closed)
Left Patch Set: Disable no-console for the tests Created Feb. 21, 2017, 11:25 a.m.
Right Patch Set: Removed unused imports Created March 15, 2017, 3:11 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « test/synchronizer.js ('k') | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2016 Eyeo GmbH 3 * Copyright (C) 2006-2016 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 /* eslint-env node */ 18 /* eslint-env node */
19 19
20 "use strict"; 20 "use strict";
21 21
22 const childProcess = require("child_process");
22 const fs = require("fs"); 23 const fs = require("fs");
24 const nodeunit = require("nodeunit");
23 const path = require("path"); 25 const path = require("path");
26 const phantomjs = require("phantomjs2");
24 const process = require("process"); 27 const process = require("process");
25 const nodeunit = require("nodeunit"); 28 const url = require("url");
26 const qunit = require("node-qunit-phantomjs");
27 29
28 let nodeunitFiles = []; 30 let unitFiles = [];
29 let qunitFiles = []; 31 let browserFiles = [];
30 function addTestPaths(testPaths, recurse) 32 function addTestPaths(testPaths, recurse)
31 { 33 {
32 for (let testPath of testPaths) 34 for (let testPath of testPaths)
33 { 35 {
34 let stat = fs.statSync(testPath); 36 let stat = fs.statSync(testPath);
35 if (stat.isDirectory()) 37 if (stat.isDirectory())
36 { 38 {
37 if (recurse) 39 if (recurse)
38 { 40 {
39 addTestPaths(fs.readdirSync(testPath).map( 41 addTestPaths(fs.readdirSync(testPath).map(
40 file => path.join(testPath, file))); 42 file => path.join(testPath, file)));
41 } 43 }
42 continue; 44 continue;
43 } 45 }
44 if (path.basename(testPath).startsWith("_")) 46 if (path.basename(testPath).startsWith("_"))
45 continue; 47 continue;
46 if (testPath.split(path.sep).includes("browser")) 48 if (path.extname(testPath) == ".js")
47 { 49 {
48 if (path.extname(testPath) == ".html") 50 if (testPath.split(path.sep).includes("browser"))
49 qunitFiles.push(testPath); 51 browserFiles.push(testPath);
52 else
53 unitFiles.push(testPath);
50 } 54 }
51 else if (path.extname(testPath) == ".js")
52 nodeunitFiles.push(testPath);
53 } 55 }
54 } 56 }
55 if (process.argv.length > 2) 57 if (process.argv.length > 2)
56 addTestPaths(process.argv.slice(2), true); 58 addTestPaths(process.argv.slice(2), true);
57 else 59 else
58 { 60 {
59 addTestPaths( 61 addTestPaths(
60 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")], 62 [path.join(__dirname, "test"), path.join(__dirname, "test", "browser")],
61 true 63 true
62 ); 64 );
63 } 65 }
64 66
65 if (nodeunitFiles.length) 67 if (browserFiles.length)
66 nodeunit.reporters.default.run(nodeunitFiles); 68 {
67 for (let file of qunitFiles) 69 let nodeunitPath = path.join(
68 qunit(file); 70 path.dirname(require.resolve("nodeunit")),
71 "examples", "browser", "nodeunit.js"
72 );
73 browserFiles.unshift(nodeunitPath);
74
75 let urls = browserFiles.map(file =>
76 {
77 return url.format({
78 protocol: "file",
79 slashes: "true",
80 pathname: path.resolve(process.cwd(), file).split(path.sep).join("/")
81 });
82 });
83 let args = [path.join(__dirname, "browsertests.js")].concat(urls);
84 childProcess.execFileSync(phantomjs.path, args, {stdio: "inherit"});
85 }
86 if (unitFiles.length)
87 nodeunit.reporters.default.run(unitFiles);
LEFTRIGHT

Powered by Google App Engine
This is Rietveld