Class: RSpec::Core::Formatters::HtmlPrinter
- Inherits:
-
Object
- Object
- RSpec::Core::Formatters::HtmlPrinter
- Defined in:
- lib/magicspec/generators/magicspec/config/override.rb,
lib/magicspec/generators/magicspec/app/spec/support/formatters/html_override.rb
Constant Summary collapse
- YALE_REPORT_HEADER =
<<-EOF <div class="rspec-report container"> <div id="rspec-header"> <div id="label"> <h1>Yale Automation Report</h1> </div> <div id="display-filters"> <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label> <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label> <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label> </div> <div id="summary"> <p id="totals"> </p> <p id="duration"> </p> </div> <div id="chart"> <div id="container" style="min-width: 200px; height: 200px; margin: 0 auto"></div> <script> $(function () { var chart; $(document).ready(function () { // Build the chart $('#container').highcharts({ chart: { plotBackgroundColor: null, plotBorderWidth: null, plotShadow: false }, title: { text: 'Test Results' }, tooltip: { pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: false }, showInLegend: true } }, series: [{ type: 'pie', name: 'Browser share', data: [ ['Pass', 10], ['Fail', 15], { name: 'Not Implemented', y: 5, sliced: true, selected: true } ] }] }); }); }); </script> </div> <div id="deets"> <table class="table table-bordered table-condensed table-responsive"> <tr> <td>Date</td> <td id="Date">#{Time.now.to_s}</td> </tr> <tr> <td>Time</td> <td id="Time">12 PM</td> </tr> </table> </div> </div> <div class="results"> EOF
- YALE_GLOBAL_STYLES =
<<-EOF #rspec-header { background: #65C400; color: #fff; height: 250px; margin: 10px 10px 10px 10px; } .rspec-report h1 { margin: 0px 10px 0px 10px; padding: 10px; font-family: "Lucida Grande", Helvetica, sans-serif; font-size: 1.8em; position: absolute; } #deets { float:left; margin: 60px 10px 0px 20px; position: absolute; } #chart { float:right; margin: 10px 10px 0px 60px; } #label { float:left; } #display-filters { float:left; padding: 28px 0 0 40%; font-family: "Lucida Grande", Helvetica, sans-serif; } #summary { float:right; padding: 5px 10px; font-family: "Lucida Grande", Helvetica, sans-serif; text-align: right; } #summary p { margin: 0 0 0 2px; } #summary #totals { font-size: 1.2em; } .example_group { margin: 0 10px 5px; background: #fff; } dl { margin: 0; padding: 0 0 5px; font: normal 11px "Lucida Grande", Helvetica, sans-serif; } dt { padding: 3px; background: #65C400; color: #fff; font-weight: bold; } dd { margin: 5px 0 5px 5px; padding: 3px 3px 3px 18px; } dd .duration { padding-left: 5px; text-align: right; right: 0px; float:right; } dd.example.passed { border-left: 5px solid #65C400; border-bottom: 1px solid #65C400; background: #DBFFB4; color: #3D7700; } dd.example.not_implemented { border-left: 5px solid #FAF834; border-bottom: 1px solid #FAF834; background: #FCFB98; color: #131313; } dd.example.pending_fixed { border-left: 5px solid #0000C2; border-bottom: 1px solid #0000C2; color: #0000C2; background: #D3FBFF; } dd.example.failed { border-left: 5px solid #C20000; border-bottom: 1px solid #C20000; color: #C20000; background: #FFFBD3; } dt.not_implemented { color: #000000; background: #FAF834; } dt.pending_fixed { color: #FFFFFF; background: #C40D0D; } dt.failed { color: #FFFFFF; background: #C40D0D; } #rspec-header.not_implemented { color: #000000; background: #FAF834; } #rspec-header.pending_fixed { color: #FFFFFF; background: #C40D0D; } #rspec-header.failed { color: #FFFFFF; background: #C40D0D; } .backtrace { color: #000; font-size: 12px; } a { color: #BE5C00; } /* Ruby code, style similar to vibrant ink */ .ruby { font-size: 12px; font-family: monospace; color: white; background-color: black; padding: 0.1em 0 0.2em 0; } .ruby .keyword { color: #FF6600; } .ruby .constant { color: #339999; } .ruby .attribute { color: white; } .ruby .global { color: white; } .ruby .module { color: white; } .ruby .class { color: white; } .ruby .string { color: #66FF00; } .ruby .ident { color: white; } .ruby .method { color: #FFCC00; } .ruby .number { color: white; } .ruby .char { color: white; } .ruby .comment { color: #9933CC; } .ruby .symbol { color: white; } .ruby .regex { color: #44B4CC; } .ruby .punct { color: white; } .ruby .escape { color: white; } .ruby .interp { color: white; } .ruby .expr { color: white; } .ruby .offending { background-color: gray; } .ruby .linenum { width: 75px; padding: 0.1em 1em 0.2em 0; color: #000000; background-color: #FFFBD3; } EOF
- YALE_HTML_HEADER =
<<-EOF <!DOCTYPE html> <html lang='en'> <head> <title>RSpec results</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Expires" content="-1" /> <meta http-equiv="Pragma" content="no-cache" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src='http://code.jquery.com/jquery-1.10.1.min.js'></script>" <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"> <script src='http://code.highcharts.com/highcharts.js'></script> <style type="text/css"> body { margin: 0; padding: 0; background: #fff; font-size: 80%; } </style> <script type="text/javascript"> // <![CDATA[ #{GLOBAL_SCRIPTS} // ]]> </script> <style type="text/css"> #{YALE_GLOBAL_STYLES} </style> </head> <body> EOF
Instance Method Summary collapse
- #print_example_group_start(group_id, description, number_of_parents) ⇒ Object
- #print_html_start ⇒ Object
- #print_summary(was_dry_run, duration, example_count, failure_count, pending_count) ⇒ Object
Instance Method Details
#print_example_group_start(group_id, description, number_of_parents) ⇒ Object
16 17 18 19 20 |
# File 'lib/magicspec/generators/magicspec/app/spec/support/formatters/html_override.rb', line 16 def print_example_group_start( group_id, description, number_of_parents ) @output.puts "<div id=\"div_group_#{group_id}\" class=\"example_group passed\">" @output.puts " <dl #{indentation_style(number_of_parents)}>" @output.puts " <dt id=\"example_group_#{group_id}\" class=\"passed\">#{h(description)}</dt>" end |
#print_html_start ⇒ Object
14 15 16 17 |
# File 'lib/magicspec/generators/magicspec/config/override.rb', line 14 def print_html_start @output.puts YALE_HTML_HEADER @output.puts YALE_REPORT_HEADER end |
#print_summary(was_dry_run, duration, example_count, failure_count, pending_count) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/magicspec/generators/magicspec/config/override.rb', line 19 def print_summary( was_dry_run, duration, example_count, failure_count, pending_count ) # TODO - kill dry_run? if was_dry_run totals = "This was a dry-run" else totals = "#{example_count} example#{'s' unless example_count == 1}, " totals << "#{failure_count} failure#{'s' unless failure_count == 1}" totals << ", #{pending_count} pending" if pending_count > 0 end formatted_duration = sprintf("%.5f", duration) @output.puts "<script type=\"text/javascript\">document.getElementById('duration').innerHTML = \"Finished in <strong>#{formatted_duration} seconds</strong>\";</script>" @output.puts "<script type=\"text/javascript\">document.getElementById('totals').innerHTML = \"#{totals}\";</script>" @output.puts "<script type=\"text/javascript\">document.getElementById('browser').innerHTML = \"#{Uname.sysname}\";</script>" @output.puts "<script type=\"text/javascript\">localStorage.g=JSON.stringify([['Pass',#{example_count}],['Fail',#{failure_count}],['Pending',#{pending_count}]])</script>" @output.puts "</div>" @output.puts "</div>" @output.puts "</body>" @output.puts "</html>" gmail = Gmail.new("[email protected]","") gmail.deliver do to "[email protected]" subject "Test is complete!" html_part do content_type 'text/html; charset=UTF-8' body "<p>Done!</p>" end #add_file "/path/to/some_image.jpg" end end |