You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
5.0 KiB
JavaScript
195 lines
5.0 KiB
JavaScript
// jsreporter.js
|
|
// Script to support JsReporter class
|
|
// Relies heavily on the X library in x.js
|
|
// X v3.14.1, Cross-Browser DHTML Library from Cross-Browser.com
|
|
// Copyright (c) 2004 Jason E. Sweat (jsweat_php@yahoo.com)
|
|
//
|
|
// SimpleTest - http://simpletest.sf.net/
|
|
// Copyright (c) 2003,2004 Marcus Baker (marcus@lastcraft.com)
|
|
// $Id: webunit.js,v 1.10 2004/02/14 18:24:13 jsweat Exp $
|
|
|
|
|
|
// Variables:
|
|
min_x=500;
|
|
min_y=400;
|
|
groups = new Array();
|
|
cases = new Array();
|
|
methods = new Array();
|
|
current_group=0;
|
|
current_case=0;
|
|
current_method=0;
|
|
|
|
Hash = {
|
|
Set : function(foo,bar) {this[foo] = bar;},
|
|
Get : function(foo) {return this[foo];}
|
|
}
|
|
|
|
// Functions:
|
|
function wait_start() {
|
|
var wait_x;
|
|
var wait_y;
|
|
|
|
wait_x = xWidth('wait');
|
|
wait_y = xHeight('wait');
|
|
xMoveTo('wait', (xClientWidth()-wait_x)/2, (xClientHeight()-wait_y)/2);
|
|
xShow('wait');
|
|
}
|
|
|
|
function layout() {
|
|
xResizeTo('webunit', max(xClientWidth()-30,min_x), max(xClientHeight()-20,min_y));
|
|
xMoveTo('webunit', 5, 5);
|
|
xResizeTo('tabs', xWidth('webunit')-10, xHeight('webunit')/3);
|
|
xLeft('tabs', 5);
|
|
xShow('webunit');
|
|
xShow('tabs');
|
|
activate_tab('fail');
|
|
xShow('visible_tab');
|
|
xZIndex('visible_tab', 2)
|
|
xResizeTo('msg', xWidth('webunit')-17, xHeight('webunit')/3-20);
|
|
xLeft('msg', 2);
|
|
xTop('msg',2*xHeight('webunit')/3);
|
|
xShow('msg');
|
|
}
|
|
|
|
function set_div_content(div, content) {
|
|
xGetElementById(div).innerHTML = content;
|
|
}
|
|
|
|
function copy_div_content(divsrc, divtrgt) {
|
|
xGetElementById(divtrgt).innerHTML = xGetElementById(divsrc).innerHTML;
|
|
}
|
|
|
|
function activate_tab(tab) {
|
|
if (tab == 'fail') {
|
|
copy_div_content('fail', 'visible_tab');
|
|
xGetElementById('failtab').className = 'activetab';
|
|
xZIndex('failtab', 3)
|
|
xGetElementById('treetab').className = 'inactivetab';
|
|
xZIndex('treetab', 1)
|
|
}
|
|
if (tab == 'tree') {
|
|
copy_div_content('tree', 'visible_tab');
|
|
xGetElementById('failtab').className = 'inactivetab';
|
|
xZIndex('failtab', 1)
|
|
xGetElementById('treetab').className = 'activetab';
|
|
xZIndex('treetab', 3)
|
|
}
|
|
}
|
|
|
|
function add_group(group_name) {
|
|
var add;
|
|
|
|
add = {
|
|
Set : function(foo,bar) {this[foo] = bar;},
|
|
Get : function(foo) {return this[foo];}
|
|
}
|
|
add.Set('desc', group_name);
|
|
add.Set('pass', true);
|
|
groups[groups.length] = add;
|
|
current_group = groups.length - 1;
|
|
cases[current_group] = new Array();
|
|
methods[current_group] = new Array();
|
|
}
|
|
|
|
function add_case(case_name) {
|
|
var curgroup;
|
|
var add;
|
|
|
|
add = {
|
|
Set : function(foo,bar) {this[foo] = bar;},
|
|
Get : function(foo) {return this[foo];}
|
|
}
|
|
add.Set('desc', case_name);
|
|
add.Set('pass', true);
|
|
curgroup = cases[current_group];
|
|
cases[current_group][curgroup.length] = add;
|
|
current_case = curgroup.length - 1;
|
|
methods[current_group][current_case] = new Array();
|
|
}
|
|
|
|
function add_method(method_name) {
|
|
var curcase;
|
|
var add;
|
|
|
|
add = {
|
|
Set : function(foo,bar) {this[foo] = bar;},
|
|
Get : function(foo) {return this[foo];}
|
|
}
|
|
add.Set('desc', method_name);
|
|
add.Set('pass', true);
|
|
add.Set('msg','');
|
|
curcase = methods[current_group][current_case];
|
|
methods[current_group][current_case][curcase.length] = add;
|
|
current_method = curcase.length - 1;
|
|
}
|
|
|
|
function add_fail(msg) {
|
|
var oldmsg;
|
|
add_log(msg);
|
|
groups[current_group].Set('pass', false);
|
|
cases[current_group][current_case].Set('pass', false);
|
|
methods[current_group][current_case][current_method].Set('pass', false);
|
|
oldmsg = methods[current_group][current_case][current_method].Get('msg');
|
|
methods[current_group][current_case][current_method].Set('msg', oldmsg+msg);
|
|
}
|
|
|
|
function add_log(msg) {
|
|
var faildiv;
|
|
faildiv = xGetElementById('fail');
|
|
faildiv.innerHTML = faildiv.innerHTML + msg;
|
|
}
|
|
|
|
function set_msg(gid, cid, mid) {
|
|
var passfail;
|
|
var msg=methods[gid][cid][mid].Get('msg');
|
|
if ('' == msg) {
|
|
passfail = (methods[gid][cid][mid].Get('pass')) ? 'pass' : 'fail';
|
|
msg = 'No output for <span class="' + passfail + '">'
|
|
+ groups[gid].Get('desc') + '->'
|
|
+ cases[gid][cid].Get('desc') + '->'
|
|
+ methods[gid][cid][mid].Get('desc') + '</span><br />';
|
|
}
|
|
xGetElementById('msg').innerHTML = msg;
|
|
}
|
|
|
|
function make_tree() {
|
|
var content;
|
|
var passfail;
|
|
content = '<ul>';
|
|
for (x in groups) {
|
|
passfail = (groups[x].Get('pass')) ? 'pass' : 'fail';
|
|
content += '<li class="'+passfail+'">'+groups[x].Get('desc')+'<ul>';
|
|
for (y in cases[x]) {
|
|
passfail = (cases[x][y].Get('pass')) ? 'pass' : 'fail';
|
|
content += '<li class="'+passfail+'">'+cases[x][y].Get('desc')+'<ul>';
|
|
for (z in methods[x][y]) {
|
|
passfail = (methods[x][y][z].Get('pass')) ? 'pass' : 'fail';
|
|
content += '<li class="'+passfail+'"><a href="javascript:set_msg('+x+','+y+','+z+')">'+methods[x][y][z].Get('desc')+'</a></li>';
|
|
}
|
|
content += '</ul></li>';
|
|
}
|
|
content += '</ul></li>';
|
|
}
|
|
content += '</ul>';
|
|
xGetElementById('tree').innerHTML = content;
|
|
if (xGetElementById('treetab').className == 'activetab') {
|
|
activate_tab('tree');
|
|
} else {
|
|
activate_tab('fail');
|
|
}
|
|
}
|
|
|
|
function make_output(data) {
|
|
}
|
|
|
|
function make_fail_msg(id, msg) {
|
|
}
|
|
|
|
function max(n1, n2) {
|
|
if (n1 > n2) {
|
|
return n1;
|
|
} else {
|
|
return n2;
|
|
}
|
|
}
|