Class: AutoPilot::SeleniumTestResultsServlet
- Inherits:
-
HTTPServlet::AbstractServlet
- Object
- HTTPServlet::AbstractServlet
- AutoPilot::SeleniumTestResultsServlet
- Defined in:
- lib/auto_pilot/servlet.rb
Overview
Servlet that listens for a Selenium Test Suite’s posted results.
Instance Method Summary collapse
- #create_body(request, name_of_suite) ⇒ Object
- #do_GET(request, response) ⇒ Object
- #do_POST(request, response) ⇒ Object
-
#initialize(config, *options) ⇒ SeleniumTestResultsServlet
constructor
A new instance of SeleniumTestResultsServlet.
-
#suite_name(suite_table) ⇒ Object
grab the suite name from the first table cell of the suite’s table.
Constructor Details
#initialize(config, *options) ⇒ SeleniumTestResultsServlet
Returns a new instance of SeleniumTestResultsServlet.
7 8 9 10 11 |
# File 'lib/auto_pilot/servlet.rb', line 7 def initialize(config, *) super(config, *) @dir = DEFAULT_RESULTS_DIR @dir = @options[0] if @options end |
Instance Method Details
#create_body(request, name_of_suite) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/auto_pilot/servlet.rb', line 31 def create_body(request, name_of_suite) query = request.query result = "<html><head><title>#{name_of_suite} Results</title></head><body>" result << "<table>" result << "<tr><td>Suite Name</td><td><b>" + name_of_suite + "</b></td></tr>" result << "<tr><td>Result</td><td>" + query["result"] + "</td></tr>" result << "<tr><td>Total Time</td><td>" + query["totalTime"] + "</td></tr>" result << "<tr><td>Tests Passed</td><td>" + query["numTestPasses"] + "</td></tr>" result << "<tr><td>Test Failures</td><td>" + query["numTestFailures"] + "</td></tr>" result << "<tr><td>Commands Passed</td><td>" + query["numCommandPasses"] + "</td></tr>" result << "<tr><td>Commands Failed</td><td>" + query["numCommandFailures"] + "</td></tr>" result << "<tr><td>Command Erros</td><td>" + query["numCommandErrors"] + "</td></tr>" result << "<tr><td>Browser Info</td><td>#{request['User-Agent']}</td></tr>" result << "</table>" result << query["suite"] # get each test table testNum = 1 while query["testTable.#{testNum}"] result << query["testTable.#{testNum}"] testNum = testNum.next end result << "</body></html>" end |
#do_GET(request, response) ⇒ Object
12 13 14 15 |
# File 'lib/auto_pilot/servlet.rb', line 12 def do_GET(request, response) response['Content-Type'] = "text/html" response.body = "<html><body>You're on the selenium results servlet.</body></html>" end |
#do_POST(request, response) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/auto_pilot/servlet.rb', line 16 def do_POST(request, response) response['Content-Type'] = "text/html" #puts(request.query) name_of_suite = suite_name(request.query["suite"]) response.body = create_body(request, name_of_suite) #TODO add SeleniumTestResultsConfig class for the dirs results_file = ResultsFile.new(@dir, name_of_suite, response.body) results_file.write pass_fail_file = PassFailFile.new(@dir) pass_fail_file.write "#{request.query['result']}: #{name_of_suite}" ResultsState.waiting = false #puts results_file.data response.body end |
#suite_name(suite_table) ⇒ Object
grab the suite name from the first table cell of the suite’s table
58 59 60 61 62 63 64 65 66 |
# File 'lib/auto_pilot/servlet.rb', line 58 def suite_name(suite_table) print "----------------------\n" suite = Document.new(suite_table) puts suite #"suite" suite_node = XPath.first(suite.root, "//TD/B") suite_node = XPath.first(suite.root, "//td/b") if suite_node == nil return suite_node.text end |