Changeset 240
- Timestamp:
- 02/28/08 11:17:32 (6 months ago)
- Files:
-
- rubygems/tarantula/trunk/lib/relevance/tarantula.rb (modified) (3 diffs)
- rubygems/tarantula/trunk/lib/relevance/tarantula/detail.html.erb (modified) (1 diff)
- rubygems/tarantula/trunk/lib/relevance/tarantula/html_reporter.rb (modified) (2 diffs)
- rubygems/tarantula/trunk/lib/relevance/tarantula/html_report_helper.rb (added)
- rubygems/tarantula/trunk/test/relevance/tarantula/html_reporter_test.rb (modified) (3 diffs)
- rubygems/tarantula/trunk/test/relevance/tarantula/html_report_helper_test.rb (added)
- rubygems/tarantula/trunk/test/test_helper.rb (modified) (1 diff)
- rubygems/tarantula/trunk/vendor (added)
- rubygems/tarantula/trunk/vendor/xss-shield (added)
- rubygems/tarantula/trunk/vendor/xss-shield/init.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield/erb_hacks.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield/haml_hacks.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield/safe_string.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/lib/xss_shield/secure_helpers.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/MIT-LICENSE (added)
- rubygems/tarantula/trunk/vendor/xss-shield/README (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test/test_actionview_integration.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test/test_erb.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test/test_haml.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test/test_helpers.rb (added)
- rubygems/tarantula/trunk/vendor/xss-shield/test/test_safe_string.rb (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
rubygems/tarantula/trunk/lib/relevance/tarantula.rb
r233 r240 1 1 require 'forwardable' 2 3 TARANTULA_ROOT = File.expand_path(File.join(File.dirname(__FILE__), "../..")) 4 5 # bringing in xss-shield requires a bunch of other dependencies 6 # still not certain about this, if it ruins your world please let me know 7 require 'erb' 8 gem 'activesupport' 9 gem 'actionpack' 10 require 'active_support' 11 require 'action_controller' 12 xss_shield_path = File.join(TARANTULA_ROOT, %w{vendor xss-shield}) 13 $: << File.join(xss_shield_path, "lib") 14 require File.join(xss_shield_path, "init") 15 16 gem 'facets' 17 gem 'htmlentities' 2 18 3 19 require 'facets/enumerable/injecting' 4 20 require 'facets/kernel/metaclass' 5 6 gem 'htmlentities'7 21 require 'htmlentities' 8 22 … … 25 39 end 26 40 end 41 27 42 28 43 require 'relevance/core_extensions/test_case' … … 41 56 require 'relevance/tarantula/form_submission' 42 57 require 'relevance/tarantula/html_reporter' 58 require 'relevance/tarantula/html_report_helper' 43 59 44 60 require 'relevance/tarantula/tidy_handler' if ENV['TIDY_PATH'] rubygems/tarantula/trunk/lib/relevance/tarantula/detail.html.erb
r235 r240 21 21 <% if data %> 22 22 <h3>Data</h3> 23 <%= Relevance::Tarantula::HtmlReporter.wrap_in_line_number_table(data) %>23 <%= wrap_in_line_number_table(data) %> 24 24 <% end %> 25 25 <% if body %> 26 26 <h3>Body</h3> 27 <%= Relevance::Tarantula::HtmlReporter.wrap_in_line_number_table(body) %>27 <%= wrap_in_line_number_table(body) %> 28 28 <% end %> 29 29 <% if log %> 30 <h3>Log</h3> 31 <%= Relevance::Tarantula::HtmlReporter.wrap_in_line_number_table(log)%>30 <h3>Log</h3> 31 <%= wrap_in_line_number_table(log) {|line| wrap_stack_trace_line(line)} %> 32 32 <% end %> 33 33 </div> rubygems/tarantula/trunk/lib/relevance/tarantula/html_reporter.rb
r235 r240 4 4 def self.report(basedir, results) 5 5 self.new(basedir, results) 6 end7 8 def self.wrap_in_line_number_table(text)9 x = Builder::XmlMarkup.new10 x.table(:class => "tablesorter") do11 x.thead do12 x.tr do13 x.th("Line \#")14 x.th("Line")15 end16 end17 text.split("\n").each_with_index do |line, index|18 x.tr do19 x.td(index+1)20 x.td(line)21 end22 end23 end24 x.target!25 6 end 26 7 … … 66 47 template = ERB.new(template("detail.html.erb")) 67 48 results.successes.each do |result| 49 result.extend HtmlReportHelper 68 50 output(result.file_name, template.result(result.send(:binding))) 69 51 end 70 52 results.failures.each do |result| 53 result.extend HtmlReportHelper 71 54 output(result.file_name, template.result(result.send(:binding))) 72 55 end rubygems/tarantula/trunk/test/relevance/tarantula/html_reporter_test.rb
r235 r240 14 14 :response => stub(:code => 200, :body => "<h1>header</h1>\n<p>text</p>"), 15 15 :referrer => "/random/#{rand(100)}", 16 :log => "sample log value", 16 :log => <<-END, 17 Made-up stack trace: 18 /some_module/some_class.rb:697:in `bad_method' 19 /some_module/other_class.rb:12345677:in `long_method' 20 this link should be <a href="#">escaped</a> 21 blah blah blah 22 END 17 23 :data => "{:param1 => :value, :param2 => :another_value}" 18 24 ) … … 26 32 it "creates a report based on tarantula results" do 27 33 results = stub_everything(:successes => @results, :failures => @results) 28 # ERB::Util.expects(:h).with(:foo).returns(:data_stub)29 34 Relevance::Tarantula::HtmlReporter.report(test_output_dir, results) 30 35 File.should.exist @index … … 34 39 end 35 40 36 describe "Relevance::Tarantula::HtmlReporter output processing" do37 include Relevance::Tarantula38 def turn_off_report_output39 Relevance::Tarantula::HtmlReporter.any_instance.stubs(:output)40 end41 42 before do43 turn_off_report_output44 @result = Relevance::Tarantula::Result.new(45 :success => true,46 :method => "stub_method",47 :url => "stub_url",48 :response => stub(:code => 200, :body => "stub_body"),49 :referrer => "stub_referrer",50 :data => "stub_data"51 )52 end53 54 it "can wrap text in a line number table" do55 html = Relevance::Tarantula::HtmlReporter.wrap_in_line_number_table("Line 1\nLine 2")56 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>"57 end58 endrubygems/tarantula/trunk/test/test_helper.rb
r201 r240 1 1 basedir = File.dirname(__FILE__) 2 2 $:.unshift "#{basedir}/../lib" 3 require 'rubygems' 3 require 'rubygems' 4 4 gem 'ruby-debug' 5 5 gem 'test-spec'
