| OLD | NEW | 
|   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 function desc(properties) |  18 "use strict"; | 
 |  19  | 
 |  20 let fs = require("fs"); | 
 |  21 let path = require("path"); | 
 |  22 let process = require("process"); | 
 |  23 let nodeunit = require("nodeunit"); | 
 |  24  | 
 |  25 let files = []; | 
 |  26  | 
 |  27 function addTestPaths(testPaths, depth) | 
|  19 { |  28 { | 
|  20   let descriptor = {}; |  29   if (depth < 1) | 
|  21   let keys = Object.keys(properties); |  30     return; | 
|  22  |  31  | 
|  23   for (let key of keys) |  32   for (let testPath of testPaths) | 
|  24     descriptor[key] = Object.getOwnPropertyDescriptor(properties, key); |  33   { | 
 |  34     let stat = fs.statSync(testPath); | 
 |  35     if (stat.isDirectory()) | 
 |  36       addTestPaths(fs.readdirSync(testPath).map(file => path.join(testPath, file
    )), | 
 |  37                    depth -1); | 
 |  38     else if (path.extname(testPath) && testPath != "test/common.js") | 
 |  39       files.push(testPath); | 
 |  40   } | 
 |  41 } | 
|  25  |  42  | 
|  26   return descriptor; |  43 addTestPaths(process.argv.length > 2 ? process.argv.slice(2) : ["test"], 2); | 
|  27 } |  44 nodeunit.reporters.default.run(files); | 
|  28 exports.desc = desc; |  | 
|  29  |  | 
|  30 function extend(cls, properties) |  | 
|  31 { |  | 
|  32   return Object.create(cls.prototype, desc(properties)); |  | 
|  33 } |  | 
|  34 exports.extend = extend; |  | 
| OLD | NEW |