Changeset 296

Show
Ignore:
Timestamp:
04/07/08 09:46:20 (5 months ago)
Author:
stu
Message:

partial implementation of EY's new look-and-feel

* tweaked CSS to match tablesorter requirements
* ported key divs in index and detail files

Should be usable, but still TBD:

* make tabs work (success/fail/all) in index
* make tabs work in detail
* style tweaks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • rubygems/tarantula/trunk/laf/javascripts/tarantula.js

    r200 r296  
    22        $(".tablesorter").tablesorter({ 
    33                sortColumn: 'name',                     // Integer or String of the name of the column to sort by. 
    4                 sortClassAsc: 'headerSortUp',         // class name for ascending sorting action to header 
    5                 sortClassDesc: 'headerSortDown',      // class name for descending sorting action to header 
     4                cssAsc: 'sort asc',           // class name for ascending sorting action to header 
     5                cssDesc: 'sort desc', // class name for descending sorting action to header 
    66                headerClass: 'header'                   // class name for headers (th's) 
    77        }); 
  • rubygems/tarantula/trunk/lib/relevance/tarantula/detail.html.erb

    r274 r296  
    1010        <script type="text/javascript" src="javascripts/jquery.tabs.js"></script> 
    1111        <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"/> 
    1313        <link type="text/css" media="screen" rel="stylesheet" href="jquery.tabs.css"/> 
    1414         
     
    2525 
    2626        <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         &nbsp; 
    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>                 
    7679        </body> 
    7780 
  • rubygems/tarantula/trunk/lib/relevance/tarantula/html_reporter.rb

    r273 r296  
    11class Relevance::Tarantula::HtmlReporter 
    22  include Relevance::Tarantula 
    3   attr_accessor :basedir, :results 
     3  attr_accessor :basedir, :results  
     4  delegate :successes, :failures, :to => :results 
    45  def self.report(basedir, results) 
    56    self.new(basedir, results) 
     
    2627  def copy_styles 
    2728    # 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"))  
    3032    end 
    3133    FileUtils.mkdir_p(File.join(basedir, "images")) 
     
    4143  def create_index 
    4244    template = ERB.new(template("index.html.erb")) 
    43     output("index.html", template.result(results.send(:binding))) 
     45    output("index.html", template.result(binding)) 
    4446  end 
    4547 
     
    5254      output(result.file_name, template.result(result.send(:binding))) 
    5355    end 
     56  end  
     57 
     58  # CSS class for HTML status codes 
     59  def class_for_code(code) 
     60    "r#{Integer(code)/100}"  
    5461  end 
    5562end 
  • rubygems/tarantula/trunk/lib/relevance/tarantula/html_report_helper.rb

    r284 r296  
    33  def wrap_in_line_number_table(text, &blk) 
    44    x = Builder::XmlMarkup.new 
    5     x.table(:class => "tablesorter") do       
     5    x.table(:class => "grid tablesorter") do       
    66      x.thead do 
    77        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 << '&#8613;' 
     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 << '&#8613;' 
     21              end 
     22            end                
     23          end 
    1024        end 
    1125      end 
  • rubygems/tarantula/trunk/lib/relevance/tarantula/index.html.erb

    r244 r296  
    44<html> 
    55<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"/> 
    79  <title>Tarantula report</title> 
    810        <script type="text/javascript" src="javascripts/jquery-1.2.3.js"></script> 
    911        <script type="text/javascript" src="javascripts/jquery.tablesorter.js"></script> 
    1012        <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"/> 
    1214</head> 
    1315 
    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>&#8613;</em></span></th> 
     41              <th><span>Action</span><span class="sort"><em>&#8613;</em></span></th> 
     42              <th><span>Response</span><span class="sort"><em>&#8613;</em></span></th> 
     43              <th><span>Description</span><span class="sort"><em>&#8613;</em></span></th> 
     44              <th><span>Referrer</span><span class="sort"><em>&#8613;</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> 
    5172        </div> 
    52          
    53         <a href="http://opensource.thinkrelevance.com"><div id="footer"> 
    54         <!-- footer --> 
    55         &nbsp; 
    56         </div></a> 
    57          
    58         </body> 
     73</body> 
    5974 
    6075</html> 
  • rubygems/tarantula/trunk/lib/relevance/tarantula/result.rb

    r273 r296  
    5555      success_codes.member?(response.code) 
    5656    end 
    57     def method_missing(meth, *args) 
     57    def method_missing(meth, *args)   
    5858      super unless ALLOW_NNN_FOR =~ meth.to_s 
    5959      (allow_errors_for[$1] ||= []).push(*args) 
  • rubygems/tarantula/trunk/test/relevance/tarantula/html_reporter_test.rb

    r273 r296  
    3232  it "creates a report based on tarantula results" do     
    3333    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) 
    3535    Relevance::Tarantula::HtmlReporter.report(test_output_dir, results) 
    3636    File.should.exist @index 
  • rubygems/tarantula/trunk/test/relevance/tarantula/html_report_helper_test.rb

    r273 r296  
    1717  it "can wrap text in a line number table" do 
    1818    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>&#8613;</em></span></th><th class="sort left"><span>Line</span><span class="sort"><em>&#8613;</em></span></th></tr></thead><tr><td>1</td><td>Line 1</td></tr><tr><td>2</td><td>Line 2</td></tr></table>     
     21END 
    2022  end   
    2123end