Tizen 2.1 base
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.2.0 / node_modules / grunt / node_modules / nodeunit / node_modules / tap / node_modules / runforcover / test / interface.js
1 var assert = require('assert');
2 var runforcover = require('../');
3
4 exports.coverageInterface = function() {
5   assert.ok(runforcover.cover);
6
7   var originalRequire = require.extensions['.js'];
8
9   var coverage = runforcover.cover();
10
11   assert.notEqual(originalRequire, require.extensions['.js']);
12
13   var file = require('./src/coverage');
14
15   coverage(function(coverageData) {
16     assert.equal(Object.keys(coverageData).length, 1);
17     assert.equal(Object.keys(coverageData)[0], __dirname + '/src/coverage.js');
18
19     var fileCoverageData = coverageData[Object.keys(coverageData)[0]]; 
20
21     assert.ok(fileCoverageData.stats);
22     assert.ok(fileCoverageData.missing);
23
24     var stats = fileCoverageData.stats();
25
26     assert.ok(stats.percentage !== undefined);
27     assert.ok(stats.lines !== undefined);
28     assert.ok(stats.missing !== undefined);
29     assert.ok(stats.seen !== undefined);
30
31     assert.equal(stats.lines.length, 3);
32     assert.equal(stats.lines[0].source(), '  if(a > 0) {');
33     assert.equal(stats.lines[1].source(), '    return a + 1;');
34     assert.equal(stats.lines[2].source(), '    return a - 1;');
35
36     file.something(1);
37     stats = fileCoverageData.stats();
38
39     assert.equal(stats.lines.length, 1);
40     assert.equal(stats.lines[0].source(), '    return a - 1;');
41
42     file.something(-1);
43     stats = fileCoverageData.stats();
44
45     assert.equal(stats.lines.length, 0);
46
47     coverage.release();
48     assert.equal(require.extensions['.js'], originalRequire); 
49   });
50 };