]>
git.proxmox.com Git - mirror_novnc.git/blob - tests/run_from_console.zombie.js
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
.num_skipped
= browser
.querySelectorAll('li.test.pending').length
;
22 res_json
.duration
= browser
.text('li.duration em');
24 var traverse_node = function(elem
) {
25 var classList
= elem
.className
.split(' ');
27 if (classList
.indexOf('suite') > -1) {
30 name
: elem
.querySelector('h1').textContent
,
31 has_subfailures
: elem
.querySelectorAll('li.test.fail').length
> 0
34 var child_elems
= elem
.querySelector('ul').children
;
35 res
.children
= Array
.prototype.map
.call(child_elems
, traverse_node
);
39 var h2_content
= elem
.querySelector('h2').childNodes
;
42 text
: h2_content
[0].textContent
45 if (classList
.indexOf('pass') > -1) {
47 if (classList
.indexOf('pending') > -1) {
52 res
.slow
= classList
.indexOf('fast') < 0;
54 res
.duration
= h2_content
[1].textContent
;
58 res
.error
= elem
.querySelector('pre.error').textContent
;
65 var top_suites
= browser
.querySelectorAll('#mocha-report > li.suite');
66 res_json
.suites
= Array
.prototype.map
.call(top_suites
, traverse_node
);
67 res_json
.replay
= browser
.querySelector('a.replay').textContent
;
69 emitter
.emit('test_ready', res_json
);
80 provide_emitter
: provide_emitter
,