2 # Copyright Simon Lydell 2014, 2015, 2016.
4 # This file is part of VimFx.
6 # VimFx is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # VimFx is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with VimFx. If not, see <http://www.gnu.org/licenses/>.
20 list = require('./tests-list')
21 utils = require('../lib/utils')
23 {utils: Cu} = Components
25 Cu.import('chrome://specialpowers/content/Assert.jsm')
28 module.exports = (vimfx) ->
34 tests = require("./#{name}")
36 for key, fn of tests when key.startsWith('test')
40 teardown = (fn) -> teardowns.push(fn)
42 fn(assert, vimfx, teardown)
46 (try fn()) for fn in teardowns
47 report.push(" #{if error then '✘' else '✔'} #{key}")
48 report.push(utils.formatError(error).replace(/^/gm, ' ')) if error
50 report.push("#{passed}/#{total} tests passed.")
51 console.log("\n#{report.join('\n')}")