Blame | Letzte Änderung | Log anzeigen | RSS feed
/*This is an experiment in creating a "selenese" parser that drasticallycuts down on the line noise associated with writing tests in HTML.The 'parse' function will accept the follow sample commands.test-cases://commentcommand "param"command "param" // commentcommand "param" "param2"command "param" "param2" // this is a commentTODO:1) Deal with multiline parameters2) Escape quotes properly3) Determine whether this should/will become the "preferred" syntaxfor delivered Selenium self-test scripts*/function separse(doc) {// Get objectscript = doc.getElementById('testcase')// Split into lineslines = script.text.split('\n');var command_pattern = / *(\w+) *"([^"]*)" *(?:"([^"]*)"){0,1}(?: *(\/\/ *.+))*/i;var comment_pattern = /^ *(\/\/ *.+)/// Regex each line into selenium command and convert into table row.// eg. "<command> <quote> <quote> <comment>"var new_test_source = '';var new_line = '';for (var x=0; x < lines.length; x++) {result = lines[x].match(command_pattern);if (result != null) {new_line = "<tr><td>" + (result[1] || ' ') + "</td>" +"<td>" + (result[2] || ' ') + "</td>" +"<td>" + (result[3] || ' ') + "</td>" +"<td>" + (result[4] || ' ') + "</td></tr>\n";new_test_source += new_line;}result = lines[x].match(comment_pattern);if (result != null) {new_line = '<tr><td rowspan="1" colspan="4">' +(result[1] || ' ') +'</td></tr>';new_test_source += new_line;}}// Create HTML Tablebody = doc.bodybody.innerHTML += "<table class='selenium' id='testtable'>"+new_test_source +"</table>";}