~ubuntu-branches/ubuntu/karmic/phppgadmin/karmic

« back to all changes in this revision

Viewing changes to selenium/scripts/se2html.js

  • Committer: Bazaar Package Importer
  • Author(s): Peter Eisentraut
  • Date: 2008-12-31 19:32:22 UTC
  • mfrom: (1.3.1 upstream) (8.1.2 sid)
  • mto: (8.1.4 sid)
  • mto: This revision was merged to the branch mainline in revision 17.
  • Revision ID: james.westby@ubuntu.com-20081231193222-swr5hb1fie1enl4l
* New upstream release
  - Fixes local file inclusion vulnerability (CVE-2008-5587) (closes: #508026)
* Removed register_globals from debian/apache.conf (closes: #508026)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 
3
 
This is an experiment in creating a "selenese" parser that drastically
4
 
cuts down on the line noise associated with writing tests in HTML.
5
 
 
6
 
The 'parse' function will accept the follow sample commands.
7
 
 
8
 
test-cases:
9
 
    //comment
10
 
    command "param"
11
 
    command "param" // comment
12
 
    command "param" "param2"
13
 
    command "param" "param2" // this is a comment
14
 
 
15
 
TODO: 
16
 
1) Deal with multiline parameters
17
 
2) Escape quotes properly
18
 
3) Determine whether this should/will become the "preferred" syntax 
19
 
   for delivered Selenium self-test scripts
20
 
*/    
21
 
 
22
 
 
23
 
function separse(doc) {
24
 
    // Get object
25
 
    script = doc.getElementById('testcase')
26
 
    // Split into lines
27
 
    lines = script.text.split('\n');
28
 
 
29
 
 
30
 
    var command_pattern = / *(\w+) *"([^"]*)" *(?:"([^"]*)"){0,1}(?: *(\/\/ *.+))*/i;
31
 
    var comment_pattern = /^ *(\/\/ *.+)/
32
 
 
33
 
    // Regex each line into selenium command and convert into table row.
34
 
    // eg. "<command> <quote> <quote> <comment>"
35
 
    var new_test_source = '';
36
 
    var new_line        = '';
37
 
    for (var x=0; x < lines.length; x++) {
38
 
        result = lines[x].match(command_pattern);
39
 
        if (result != null) {
40
 
            new_line = "<tr><td>" + (result[1] || '&nbsp;') + "</td>" +
41
 
                           "<td>" + (result[2] || '&nbsp;') + "</td>" +
42
 
                           "<td>" + (result[3] || '&nbsp;') + "</td>" +
43
 
                           "<td>" + (result[4] || '&nbsp;') + "</td></tr>\n";
44
 
            new_test_source += new_line;
45
 
        }
46
 
        result = lines[x].match(comment_pattern);
47
 
        if (result != null) {
48
 
            new_line = '<tr><td rowspan="1" colspan="4">' +
49
 
                       (result[1] || '&nbsp;') +
50
 
                       '</td></tr>';
51
 
            new_test_source += new_line;
52
 
        }
53
 
    }
54
 
 
55
 
    // Create HTML Table        
56
 
    body = doc.body
57
 
    body.innerHTML += "<table class='selenium' id='testtable'>"+
58
 
                      new_test_source +
59
 
                      "</table>";
60
 
 
61
 
}
62
 
 
63