Changeset 296
- Timestamp:
- 04/07/08 09:46:20 (5 months ago)
- Files:
-
- rubygems/tarantula/trunk/laf/images/tarantula-sprites.png (added)
- rubygems/tarantula/trunk/laf/index.html (added)
- rubygems/tarantula/trunk/laf/javascripts/tarantula.js (modified) (1 diff)
- rubygems/tarantula/trunk/laf/stylesheets (added)
- rubygems/tarantula/trunk/laf/stylesheets/tarantula.css (added)
- rubygems/tarantula/trunk/lib/relevance/tarantula/detail.html.erb (modified) (2 diffs)
- rubygems/tarantula/trunk/lib/relevance/tarantula/html_reporter.rb (modified) (4 diffs)
- rubygems/tarantula/trunk/lib/relevance/tarantula/html_report_helper.rb (modified) (1 diff)
- rubygems/tarantula/trunk/lib/relevance/tarantula/index.html.erb (modified) (1 diff)
- rubygems/tarantula/trunk/lib/relevance/tarantula/result.rb (modified) (1 diff)
- rubygems/tarantula/trunk/test/relevance/tarantula/html_reporter_test.rb (modified) (1 diff)
- rubygems/tarantula/trunk/test/relevance/tarantula/html_report_helper_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
rubygems/tarantula/trunk/laf/javascripts/tarantula.js
r200 r296 2 2 $(".tablesorter").tablesorter({ 3 3 sortColumn: 'name', // Integer or String of the name of the column to sort by. 4 sortClassAsc: 'headerSortUp', // class name for ascending sorting action to header5 sortClassDesc: 'headerSortDown', // class name for descending sorting action to header4 cssAsc: 'sort asc', // class name for ascending sorting action to header 5 cssDesc: 'sort desc', // class name for descending sorting action to header 6 6 headerClass: 'header' // class name for headers (th's) 7 7 }); rubygems/tarantula/trunk/lib/relevance/tarantula/detail.html.erb
r274 r296 10 10 <script type="text/javascript" src="javascripts/jquery.tabs.js"></script> 11 11 <script type="text/javascript" src="javascripts/tarantula.js"></script> 12 <link type="text/css" media="screen" rel="stylesheet" href=" relevance_os.css"/>12 <link type="text/css" media="screen" rel="stylesheet" href="stylesheets/tarantula.css"/> 13 13 <link type="text/css" media="screen" rel="stylesheet" href="jquery.tabs.css"/> 14 14 … … 25 25 26 26 <body id="top"> 27 28 <div id="page" class="column"> 29 <h1>Tarantula report detail <%= short_description %></h1> 30 <p>Generated on <%= Time.now %> (<a href="index.html">Top</a>)</p> 31 <p>Visit <a href="<%= full_url %>"><%= full_url %></a></p> 32 <p>Response: <%= code %></p> 33 <p>Referrer: <%= referrer || "" %></p> 34 <div id="tab-container"> 35 <ul> 36 <li><a href="#fragment-1"><span>Data</span></a></li> 37 <li><a href="#fragment-2"><span>Body</span></a></li> 38 <li><a href="#fragment-3"><span>Log</span></a></li> 39 </ul> 40 <div id="fragment-1"> 41 <% if data %> 42 <%= wrap_in_line_number_table(data) %> 43 <% else %> 44 <p>No Data</p> 45 <% end %> 46 </div> 47 <div id="fragment-2"> 48 <% if body %> 49 <%= wrap_in_line_number_table(body) %> 50 <% else %> 51 <p>No Body</p> 52 <% end %> 53 </div> 54 <div id="fragment-3"> 55 <% if log %> 56 <%= wrap_in_line_number_table(log) {|line| wrap_stack_trace_line(line)} %> 57 <% else %> 58 <p>No Log</p> 59 <% end %> 60 </div> 61 </div> 62 </div> 63 <div id="sidebar" class="column"> 64 <!-- sidebar --> 65 <h2>Tarantula</h2> 66 67 <p>Tarantula is an open-source tool for testing Rails web applications. Tarantula is developed by <a href="http://thinkrelevance.com">Relevance, Inc.</a> and lives at <a href="http://opensource.thinkrelevance.com">http://opensource.thinkrelevance.com</a>.</p> 68 69 </div> 70 71 <a href="http://opensource.thinkrelevance.com"><div id="footer"> 72 <!-- footer --> 73 74 </div></a> 75 27 28 <div id="container"> 29 30 <div id="header"> 31 <hr class="top"/> 32 <h1><span>Tarantula : Eight Legs, Two Fangs, and an Attitude</span></h1> 33 </div> 34 35 <div id="page-container"> 36 <hr class="top"/> 37 <div id="page"> 38 <h1>Tarantula report detail <%= short_description %></h1> 39 <p>Generated on <%= Time.now %> (<a href="index.html">Top</a>)</p> 40 <p>Visit <a href="<%= full_url %>"><%= full_url %></a></p> 41 <p>Response: <%= code %></p> 42 <p>Referrer: <%= referrer || "" %></p> 43 <div id="tab-container"> 44 <!-- TODO: make the tabs work --> 45 <!-- <ul> 46 <li><a href="#fragment-1"><span>Data</span></a></li> 47 <li><a href="#fragment-2"><span>Body</span></a></li> 48 <li><a href="#fragment-3"><span>Log</span></a></li> 49 </ul> --> 50 <div id="fragment-1"> 51 <% if data %> 52 <%= wrap_in_line_number_table(data) %> 53 <% else %> 54 <p>No Data</p> 55 <% end %> 56 </div> 57 <div id="fragment-2"> 58 <% if body %> 59 <%= wrap_in_line_number_table(body) %> 60 <% else %> 61 <p>No Body</p> 62 <% end %> 63 </div> 64 <div id="fragment-3"> 65 <% if log %> 66 <%= wrap_in_line_number_table(log) {|line| wrap_stack_trace_line(line)} %> 67 <% else %> 68 <p>No Log</p> 69 <% end %> 70 </div> 71 </div> 72 </div> 73 </div> 74 <div id="sidebar"> 75 <h3><span>Tarantula</span></h3> 76 <p>Tarantula is an open-source tool for testing Rails web applications. Tarantula is developed by <a href="http://thinkrelevance.com">Relevance, Inc.</a> and lives at <a href="http://opensource.thinkrelevance.com">http://opensource.thinkrelevance.com</a>.</p> 77 </div> 78 </div> 76 79 </body> 77 80 rubygems/tarantula/trunk/lib/relevance/tarantula/html_reporter.rb
r273 r296 1 1 class Relevance::Tarantula::HtmlReporter 2 2 include Relevance::Tarantula 3 attr_accessor :basedir, :results 3 attr_accessor :basedir, :results 4 delegate :successes, :failures, :to => :results 4 5 def self.report(basedir, results) 5 6 self.new(basedir, results) … … 26 27 def copy_styles 27 28 # not using cp_r because it picks up .svn crap 28 Dir.glob("#{tarantula_home}/laf/*.css").each do |file| 29 FileUtils.cp(file, basedir) 29 FileUtils.mkdir_p(File.join(basedir, "stylesheets")) 30 Dir.glob("#{tarantula_home}/laf/stylesheets/*.css").each do |file| 31 FileUtils.cp(file, File.join(basedir, "stylesheets")) 30 32 end 31 33 FileUtils.mkdir_p(File.join(basedir, "images")) … … 41 43 def create_index 42 44 template = ERB.new(template("index.html.erb")) 43 output("index.html", template.result( results.send(:binding)))45 output("index.html", template.result(binding)) 44 46 end 45 47 … … 52 54 output(result.file_name, template.result(result.send(:binding))) 53 55 end 56 end 57 58 # CSS class for HTML status codes 59 def class_for_code(code) 60 "r#{Integer(code)/100}" 54 61 end 55 62 end rubygems/tarantula/trunk/lib/relevance/tarantula/html_report_helper.rb
r284 r296 3 3 def wrap_in_line_number_table(text, &blk) 4 4 x = Builder::XmlMarkup.new 5 x.table(:class => " tablesorter") do5 x.table(:class => "grid tablesorter") do 6 6 x.thead do 7 7 x.tr do 8 x.th("Line \#") 9 x.th("Line") 8 x.th(:class => "sort asc") do 9 x.span("Line \#") 10 x.span(:class => "sort") do 11 x.em do 12 x << '↥' 13 end 14 end 15 end 16 x.th(:class => "sort left") do 17 x.span("Line") 18 x.span(:class => "sort") do 19 x.em do 20 x << '↥' 21 end 22 end 23 end 10 24 end 11 25 end rubygems/tarantula/trunk/lib/relevance/tarantula/index.html.erb
r244 r296 4 4 <html> 5 5 <head> 6 <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> 6 <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <meta name="Author" content="Erik Yowell; erik[at]thinkrelevance.com"/> 7 9 <title>Tarantula report</title> 8 10 <script type="text/javascript" src="javascripts/jquery-1.2.3.js"></script> 9 11 <script type="text/javascript" src="javascripts/jquery.tablesorter.js"></script> 10 12 <script type="text/javascript" src="javascripts/tarantula.js"></script> 11 <link type="text/css" media="screen" rel="stylesheet" href=" relevance_os.css"/>13 <link type="text/css" media="screen" rel="stylesheet" href="stylesheets/tarantula.css"/> 12 14 </head> 13 15 14 <body id="top"> 15 16 <div id="page" class="column"> 17 <h1>Tarantula report</h1> 18 <p>Generated on <%= Time.now %></p> 19 <% %w{failures successes}.each do |result_type| %> 20 <table class="tablesorter"> 21 <caption><%= result_type.capitalize %> (<%= send(result_type).size %>)</caption> 22 <thead> 23 <tr> 24 <th>Action</th> 25 <th>URL</th> 26 <th>Response</th> 27 <th>Description</th> 28 <th>Referrer</th> 29 </tr> 30 </thead> 31 <tbody> 32 <% send(result_type).sort{|x,y| y.code.to_s <=> x.code.to_s}.each do |result| %> 33 <tr> 34 <td><%= result.method %></td> 35 <td><a href="<%= result.file_name%>"><%= result.url.ellipsize(30) %></a></td> 36 <td><%= result.code %></td> 37 <td><%= result.description %></td> 38 <td><%= result.referrer.ellipsize(30) %></td> 39 </tr> 40 <% end %> 41 </tbody> 42 </table> 43 <% end %> 44 </div> 45 <div id="sidebar" class="column"> 46 <!-- sidebar --> 47 <h2>Tarantula</h2> 48 49 <p>Tarantula is an open-source tool for testing Rails web applications. Tarantula is developed by <a href="http://thinkrelevance.com">Relevance, Inc.</a> and lives at <a href="http://opensource.thinkrelevance.com">http://opensource.thinkrelevance.com</a>.</p> 50 16 <body id="top"> 17 18 <div id="container"> 19 20 <div id="header"> 21 <hr class="top"/> 22 <h1><span>Tarantula : Eight Legs, Two Fangs, and an Attitude</span></h1> 23 <ul class="navigation"> 24 <li><a href="#" class="result-all"><span>All</span> <em><%= successes.size + failures.size %></em></a></li> 25 <li><a href="#" class="result-failure"><span>Failures</span> <em><%= failures.size %></em></a></li> 26 <li><a href="#" class="result-success"><span>Successful</span> <em><%= successes.size %></em></a></li> 27 </ul> 28 </div> 29 </div> 30 <div id="page-container"> 31 <hr class="top"/> 32 <div id="page"> 33 <p>Generated on <%= Time.now %></p> 34 35 <% %w{failures successes}.each do |result_type| %> 36 <table class="grid tablesorter" cellspacing="0"> 37 <caption><%= result_type.capitalize %> (<%= send(result_type).size %>)</caption> 38 <thead> 39 <tr> 40 <th class="sort asc"><span>URL</span><span class="sort"><em>↥</em></span></th> 41 <th><span>Action</span><span class="sort"><em>↥</em></span></th> 42 <th><span>Response</span><span class="sort"><em>↥</em></span></th> 43 <th><span>Description</span><span class="sort"><em>↥</em></span></th> 44 <th><span>Referrer</span><span class="sort"><em>↥</em></span></th> 45 </tr> 46 </thead> 47 <tfoot> 48 <tr> 49 <td colspan="5"> 50 Footer 51 </td> 52 </tr> 53 </tfoot> 54 <tbody> 55 <% send(result_type).sort{|x,y| y.code.to_s <=> x.code.to_s}.each do |result| %> 56 <tr> 57 <td class="left"><a href="<%= result.file_name%>"><%= result.url.ellipsize(30) %></a></td> 58 <td class="center"><%= result.method %></td> 59 <td class="center"><span class="<%= class_for_code(result.code) %>"><%= result.code %></span></td> 60 <td><%= result.description %></td> 61 <td><%= result.referrer.ellipsize(30) %></td> 62 </tr> 63 <% end %> 64 </tbody> 65 </table> 66 <% end %> 67 </div> 68 <div id="sidebar"> 69 <h3><span>Tarantula</span></h3> 70 <p>Tarantula is an open-source tool for testing Rails web applications. Tarantula is developed by <a href="http://thinkrelevance.com">Relevance, Inc.</a> and lives at <a href="http://opensource.thinkrelevance.com">http://opensource.thinkrelevance.com</a>.</p> 71 </div> 51 72 </div> 52 53 <a href="http://opensource.thinkrelevance.com"><div id="footer"> 54 <!-- footer --> 55 56 </div></a> 57 58 </body> 73 </body> 59 74 60 75 </html> rubygems/tarantula/trunk/lib/relevance/tarantula/result.rb
r273 r296 55 55 success_codes.member?(response.code) 56 56 end 57 def method_missing(meth, *args) 57 def method_missing(meth, *args) 58 58 super unless ALLOW_NNN_FOR =~ meth.to_s 59 59 (allow_errors_for[$1] ||= []).push(*args) rubygems/tarantula/trunk/test/relevance/tarantula/html_reporter_test.rb
r273 r296 32 32 it "creates a report based on tarantula results" do 33 33 Relevance::Tarantula::Result.any_instance.stubs(:rails_root).returns("STUB_ROOT") 34 results = stub _everything(:successes => @results, :failures => @results)34 results = stub(:successes => @results, :failures => @results) 35 35 Relevance::Tarantula::HtmlReporter.report(test_output_dir, results) 36 36 File.should.exist @index rubygems/tarantula/trunk/test/relevance/tarantula/html_report_helper_test.rb
r273 r296 17 17 it "can wrap text in a line number table" do 18 18 html = @reporter.wrap_in_line_number_table("Line 1\nLine 2") 19 html.should == "<table class=\"tablesorter\"><thead><tr><th>Line \#</th><th>Line</th></tr></thead><tr><td>1</td><td>Line 1</td></tr><tr><td>2</td><td>Line 2</td></tr></table>" 19 html.should == <<-END.strip 20 <table class="grid tablesorter"><thead><tr><th class="sort asc"><span>Line #</span><span class="sort"><em>↥</em></span></th><th class="sort left"><span>Line</span><span class="sort"><em>↥</em></span></th></tr></thead><tr><td>1</td><td>Line 1</td></tr><tr><td>2</td><td>Line 2</td></tr></table> 21 END 20 22 end 21 23 end
