]>
git.proxmox.com Git - mirror_novnc.git/blob - tests/run_from_console.zombie.js
5ae51846643671c0791193254823b2c506b97296
1 var Browser
= require('zombie');
2 var path
= require('path');
3 var EventEmitter
= require('events').EventEmitter
;
6 var provide_emitter = function(file_paths
) {
7 var emitter
= new EventEmitter();
9 file_paths
.reduce(function(prom
, file_path
, path_ind
) {
10 return prom
.then(function(browser
) {
11 browser
.visit('file://'+file_path
, function() {
12 if (browser
.error
) throw new Error(browser
.errors
);
15 res_json
.file_ind
= path_ind
;
17 res_json
.num_tests
= browser
.querySelectorAll('li.test').length
;
18 res_json
.num_fails
= browser
.querySelectorAll('li.test.fail').length
;
19 res_json
.num_passes
= browser
.querySelectorAll('li.test.pass').length
;
20 res_json
.num_slow
= browser
.querySelectorAll('li.test.pass:not(.fast)').length
;
21 res_json
.duration
= browser
.text('li.duration em');
23 var traverse_node = function(elem
) {
24 var classList
= elem
.className
.split(' ');
25 if (classList
.indexOf('suite') > -1) {
28 name
: elem
.querySelector('h1').textContent
,
29 has_subfailures
: elem
.querySelectorAll('li.test.fail').length
> 0
32 var child_elems
= elem
.querySelector('ul').children
;
33 res
.children
= Array
.prototype.map
.call(child_elems
, traverse_node
);
37 var h2_content
= elem
.querySelector('h2').childNodes
;
40 text
: h2_content
[0].textContent
43 if (classList
.indexOf('pass') > -1) {
45 res
.slow
= classList
.indexOf('fast') < 0;
46 res
.duration
= h2_content
[1].textContent
;
49 res
.error
= elem
.querySelector('pre.error').textContent
;
56 var top_suites
= browser
.querySelectorAll('#mocha-report > li.suite');
57 res_json
.suites
= Array
.prototype.map
.call(top_suites
, traverse_node
);
58 res_json
.replay
= browser
.querySelector('a.replay').textContent
;
60 emitter
.emit('test_ready', res_json
);
71 provide_emitter
: provide_emitter
,