diff options
author | wei <> | 2006-09-30 05:18:39 +0000 |
---|---|---|
committer | wei <> | 2006-09-30 05:18:39 +0000 |
commit | 7eafd95bfa21c9c8603e9c437a9d96dc880d92e7 (patch) | |
tree | 9ebe3012fc2a931a7a9e1d0c1b3eef33b1ed16ba /tests/test_tools/selenium/core/scripts/se2html.js | |
parent | 36a61db3144c111b722db89baf5a1d55c1c9a6b2 (diff) |
Update selenium to 0.8
Diffstat (limited to 'tests/test_tools/selenium/core/scripts/se2html.js')
-rw-r--r-- | tests/test_tools/selenium/core/scripts/se2html.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/test_tools/selenium/core/scripts/se2html.js b/tests/test_tools/selenium/core/scripts/se2html.js new file mode 100644 index 00000000..67054a49 --- /dev/null +++ b/tests/test_tools/selenium/core/scripts/se2html.js @@ -0,0 +1,63 @@ +/*
+
+This is an experiment in creating a "selenese" parser that drastically
+cuts down on the line noise associated with writing tests in HTML.
+
+The 'parse' function will accept the follow sample commands.
+
+test-cases:
+ //comment
+ command "param"
+ command "param" // comment
+ command "param" "param2"
+ command "param" "param2" // this is a comment
+
+TODO:
+1) Deal with multiline parameters
+2) Escape quotes properly
+3) Determine whether this should/will become the "preferred" syntax
+ for delivered Selenium self-test scripts
+*/
+
+
+function separse(doc) {
+ // Get object
+ script = doc.getElementById('testcase')
+ // Split into lines
+ lines = 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 Table
+ body = doc.body
+ body.innerHTML += "<table class='selenium' id='testtable'>"+
+ new_test_source +
+ "</table>";
+
+}
+
+
|