rspec-core 2.99.2 → 3.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +14 -6
  2. checksums.yaml.gz.sig +2 -0
  3. data.tar.gz.sig +0 -0
  4. data/Changelog.md +103 -191
  5. data/License.txt +1 -0
  6. data/README.md +4 -25
  7. data/features/Upgrade.md +2 -14
  8. data/features/command_line/dry_run.feature +29 -0
  9. data/features/command_line/example_name_option.feature +1 -1
  10. data/features/command_line/fail_fast.feature +26 -0
  11. data/features/command_line/format_option.feature +3 -3
  12. data/features/command_line/line_number_option.feature +16 -11
  13. data/features/command_line/order.feature +2 -3
  14. data/features/command_line/pattern_option.feature +3 -3
  15. data/features/command_line/randomization.feature +63 -0
  16. data/features/command_line/require_option.feature +2 -2
  17. data/features/command_line/ruby.feature +1 -1
  18. data/features/configuration/alias_example_to.feature +13 -22
  19. data/features/configuration/{backtrace_clean_patterns.feature → backtrace_exclusion_patterns.feature} +17 -14
  20. data/features/configuration/custom_settings.feature +11 -11
  21. data/features/configuration/overriding_global_ordering.feature +93 -0
  22. data/features/configuration/profile.feature +13 -13
  23. data/features/configuration/read_options_from_file.feature +7 -7
  24. data/features/example_groups/basic_structure.feature +1 -1
  25. data/features/example_groups/shared_context.feature +8 -8
  26. data/features/example_groups/shared_examples.feature +6 -14
  27. data/features/expectation_framework_integration/configure_expectation_framework.feature +27 -122
  28. data/features/filtering/exclusion_filters.feature +2 -5
  29. data/features/filtering/inclusion_filters.feature +1 -5
  30. data/features/formatters/json_formatter.feature +2 -2
  31. data/features/formatters/text_formatter.feature +4 -4
  32. data/features/helper_methods/arbitrary_methods.feature +2 -2
  33. data/features/helper_methods/let.feature +5 -5
  34. data/features/helper_methods/modules.feature +5 -8
  35. data/features/hooks/around_hooks.feature +2 -2
  36. data/features/hooks/before_and_after_hooks.feature +14 -14
  37. data/features/hooks/filtering.feature +12 -14
  38. data/features/metadata/described_class.feature +1 -1
  39. data/features/metadata/user_defined.feature +16 -29
  40. data/features/mock_framework_integration/use_flexmock.feature +1 -1
  41. data/features/mock_framework_integration/use_mocha.feature +1 -1
  42. data/features/mock_framework_integration/use_rr.feature +1 -1
  43. data/features/mock_framework_integration/use_rspec.feature +5 -5
  44. data/features/pending/pending_examples.feature +5 -5
  45. data/features/spec_files/arbitrary_file_suffix.feature +1 -1
  46. data/features/step_definitions/additional_cli_steps.rb +3 -3
  47. data/features/subject/explicit_subject.feature +8 -8
  48. data/features/subject/implicit_receiver.feature +29 -0
  49. data/features/subject/implicit_subject.feature +4 -4
  50. data/features/support/env.rb +10 -3
  51. data/features/support/require_expect_syntax_in_aruba_specs.rb +16 -0
  52. data/lib/rspec/core.rb +11 -48
  53. data/lib/rspec/core/backport_random.rb +302 -0
  54. data/lib/rspec/core/backtrace_formatter.rb +65 -0
  55. data/lib/rspec/core/command_line.rb +7 -18
  56. data/lib/rspec/core/configuration.rb +202 -507
  57. data/lib/rspec/core/configuration_options.rb +17 -30
  58. data/lib/rspec/core/example.rb +29 -39
  59. data/lib/rspec/core/example_group.rb +166 -259
  60. data/lib/rspec/core/filter_manager.rb +30 -47
  61. data/lib/rspec/core/flat_map.rb +17 -0
  62. data/lib/rspec/core/formatters.rb +0 -138
  63. data/lib/rspec/core/formatters/base_formatter.rb +46 -1
  64. data/lib/rspec/core/formatters/base_text_formatter.rb +38 -61
  65. data/lib/rspec/core/formatters/deprecation_formatter.rb +21 -52
  66. data/lib/rspec/core/formatters/helpers.rb +0 -28
  67. data/lib/rspec/core/formatters/html_formatter.rb +1 -1
  68. data/lib/rspec/core/formatters/json_formatter.rb +38 -9
  69. data/lib/rspec/core/formatters/snippet_extractor.rb +14 -5
  70. data/lib/rspec/core/hooks.rb +55 -39
  71. data/lib/rspec/core/memoized_helpers.rb +17 -167
  72. data/lib/rspec/core/metadata.rb +16 -64
  73. data/lib/rspec/core/option_parser.rb +30 -39
  74. data/lib/rspec/core/ordering.rb +154 -0
  75. data/lib/rspec/core/pending.rb +12 -69
  76. data/lib/rspec/core/project_initializer.rb +12 -10
  77. data/lib/rspec/core/rake_task.rb +5 -108
  78. data/lib/rspec/core/reporter.rb +15 -18
  79. data/lib/rspec/core/runner.rb +16 -30
  80. data/lib/rspec/core/shared_context.rb +3 -5
  81. data/lib/rspec/core/shared_example_group.rb +3 -51
  82. data/lib/rspec/core/shared_example_group/collection.rb +1 -19
  83. data/lib/rspec/core/version.rb +1 -1
  84. data/lib/rspec/core/warnings.rb +22 -0
  85. data/lib/rspec/core/world.rb +12 -8
  86. data/spec/command_line/order_spec.rb +20 -23
  87. data/spec/rspec/core/backtrace_formatter_spec.rb +216 -0
  88. data/spec/rspec/core/command_line_spec.rb +32 -48
  89. data/spec/rspec/core/configuration_options_spec.rb +19 -50
  90. data/spec/rspec/core/configuration_spec.rb +142 -713
  91. data/spec/rspec/core/drb_command_line_spec.rb +2 -0
  92. data/spec/rspec/core/dsl_spec.rb +0 -1
  93. data/spec/rspec/core/example_group_spec.rb +192 -223
  94. data/spec/rspec/core/example_spec.rb +40 -16
  95. data/spec/rspec/core/filter_manager_spec.rb +2 -2
  96. data/spec/rspec/core/formatters/base_formatter_spec.rb +0 -41
  97. data/spec/rspec/core/formatters/base_text_formatter_spec.rb +5 -123
  98. data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +2 -87
  99. data/spec/rspec/core/formatters/documentation_formatter_spec.rb +2 -3
  100. data/spec/rspec/core/formatters/{text_mate_formatted.html → html_formatted-1.8.7-jruby.html} +44 -25
  101. data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +477 -0
  102. data/spec/rspec/core/formatters/{html_formatted.html → html_formatted-1.8.7.html} +42 -25
  103. data/spec/rspec/core/formatters/html_formatted-1.9.2.html +425 -0
  104. data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +416 -0
  105. data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +477 -0
  106. data/spec/rspec/core/formatters/html_formatted-1.9.3.html +419 -0
  107. data/spec/rspec/core/formatters/html_formatted-2.0.0.html +425 -0
  108. data/spec/rspec/core/formatters/html_formatter_spec.rb +21 -46
  109. data/spec/rspec/core/formatters/json_formatter_spec.rb +97 -8
  110. data/spec/rspec/core/hooks_filtering_spec.rb +5 -5
  111. data/spec/rspec/core/hooks_spec.rb +61 -47
  112. data/spec/rspec/core/memoized_helpers_spec.rb +20 -322
  113. data/spec/rspec/core/metadata_spec.rb +1 -24
  114. data/spec/rspec/core/option_parser_spec.rb +20 -62
  115. data/spec/rspec/core/ordering_spec.rb +102 -0
  116. data/spec/rspec/core/pending_example_spec.rb +0 -40
  117. data/spec/rspec/core/project_initializer_spec.rb +1 -25
  118. data/spec/rspec/core/rake_task_spec.rb +5 -72
  119. data/spec/rspec/core/random_spec.rb +47 -0
  120. data/spec/rspec/core/reporter_spec.rb +23 -48
  121. data/spec/rspec/core/runner_spec.rb +31 -39
  122. data/spec/rspec/core/shared_context_spec.rb +3 -15
  123. data/spec/rspec/core/shared_example_group/collection_spec.rb +4 -17
  124. data/spec/rspec/core/shared_example_group_spec.rb +12 -45
  125. data/spec/rspec/core/{deprecation_spec.rb → warnings_spec.rb} +3 -1
  126. data/spec/rspec/core_spec.rb +4 -21
  127. data/spec/spec_helper.rb +41 -5
  128. data/spec/support/helper_methods.rb +0 -29
  129. data/spec/support/sandboxed_mock_space.rb +0 -16
  130. data/spec/support/shared_example_groups.rb +7 -36
  131. data/spec/support/stderr_splitter.rb +36 -0
  132. metadata +163 -157
  133. metadata.gz.sig +1 -0
  134. data/exe/autospec +0 -13
  135. data/features/Autotest.md +0 -38
  136. data/features/configuration/treat_symbols_as_metadata_keys_with_true_values.feature +0 -52
  137. data/features/subject/attribute_of_subject.feature +0 -124
  138. data/features/subject/one_liner_syntax.feature +0 -71
  139. data/lib/autotest/discover.rb +0 -10
  140. data/lib/autotest/rspec2.rb +0 -77
  141. data/lib/rspec/core/backtrace_cleaner.rb +0 -46
  142. data/lib/rspec/core/backward_compatibility.rb +0 -55
  143. data/lib/rspec/core/caller_filter.rb +0 -60
  144. data/lib/rspec/core/deprecated_mutable_array_proxy.rb +0 -32
  145. data/lib/rspec/core/deprecation.rb +0 -26
  146. data/lib/rspec/core/extensions/instance_eval_with_args.rb +0 -44
  147. data/lib/rspec/core/extensions/kernel.rb +0 -9
  148. data/lib/rspec/core/extensions/module_eval_with_args.rb +0 -38
  149. data/lib/rspec/core/extensions/ordered.rb +0 -27
  150. data/lib/rspec/core/formatters/console_codes.rb +0 -42
  151. data/lib/rspec/core/formatters/text_mate_formatter.rb +0 -34
  152. data/lib/rspec/core/metadata_hash_builder.rb +0 -97
  153. data/lib/rspec/core/minitest_assertions_adapter.rb +0 -28
  154. data/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
  155. data/spec/autotest/discover_spec.rb +0 -49
  156. data/spec/autotest/failed_results_re_spec.rb +0 -45
  157. data/spec/autotest/rspec_spec.rb +0 -133
  158. data/spec/rspec/core/backtrace_cleaner_spec.rb +0 -68
  159. data/spec/rspec/core/caller_filter_spec.rb +0 -58
  160. data/spec/rspec/core/deprecations_spec.rb +0 -59
  161. data/spec/rspec/core/formatters/console_codes_spec.rb +0 -50
  162. data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +0 -107
  163. data/spec/rspec/core/kernel_extensions_spec.rb +0 -9
  164. data/spec/rspec/core/pending_spec.rb +0 -27
  165. data/spec/support/silence_dsl_deprecations.rb +0 -32
@@ -1,9 +1,10 @@
1
- <html lang="en">
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
2
3
  <head>
3
4
  <title>RSpec results</title>
4
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta http-equiv="Expires" content="-1">
6
- <meta http-equiv="Pragma" content="no-cache">
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <meta http-equiv="Expires" content="-1" />
7
+ <meta http-equiv="Pragma" content="no-cache" />
7
8
  <style type="text/css">
8
9
  body {
9
10
  margin: 0;
@@ -265,14 +266,14 @@ a {
265
266
  </div>
266
267
 
267
268
  <div id="display-filters">
268
- <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked onchange="apply_filters()" value="1"> <label for="passed_checkbox">Passed</label>
269
- <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked onchange="apply_filters()" value="2"> <label for="failed_checkbox">Failed</label>
270
- <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked onchange="apply_filters()" value="3"> <label for="pending_checkbox">Pending</label>
269
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
270
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
271
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
271
272
  </div>
272
273
 
273
274
  <div id="summary">
274
- <p id="totals"> </p>
275
- <p id="duration"> </p>
275
+ <p id="totals">&#160;</p>
276
+ <p id="duration">&#160;</p>
276
277
  </div>
277
278
  </div>
278
279
 
@@ -315,11 +316,21 @@ a {
315
316
  <span class="duration">n.nnnns</span>
316
317
  <div class="failure" id="failure_1">
317
318
  <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
318
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18</pre></div>
319
- <pre class="ruby"><code><span class="linenum">16</span> <span class="ident">context</span> <span class="punct">"</span><span class="string">with content that would pass</span><span class="punct">"</span> <span class="keyword">do</span>
320
- <span class="linenum">17</span> <span class="ident">it</span> <span class="punct">"</span><span class="string">fails</span><span class="punct">"</span> <span class="keyword">do</span>
321
- <span class="offending"><span class="linenum">18</span> <span class="ident">pending</span> <span class="keyword">do</span></span>
322
- <span class="linenum">19</span> <span class="ident">expect</span><span class="punct">(</span><span class="number">1</span><span class="punct">).</span><span class="ident">to</span> <span class="ident">eq</span><span class="punct">(</span><span class="number">1</span><span class="punct">)</span>
319
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18
320
+ ./spec/support/sandboxed_mock_space.rb:33:in `run'
321
+ ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
322
+ ./spec/support/sandboxed_mock_space.rb:32:in `run'
323
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
324
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59
325
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
326
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59
327
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
328
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58
329
+ ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
330
+ <pre class="ruby"><code><span class="linenum">16</span> context <span class="string"><span class="delimiter">&quot;</span><span class="content">with content that would pass</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
331
+ <span class="linenum">17</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
332
+ <span class="offending"><span class="linenum">18</span> pending <span class="keyword">do</span></span>
333
+ <span class="linenum">19</span> expect(<span class="integer">1</span>).to eq(<span class="integer">1</span>)
323
334
  <span class="linenum">20</span> <span class="keyword">end</span></code></pre>
324
335
  </div>
325
336
  </dd>
@@ -329,9 +340,7 @@ a {
329
340
  <dl style="margin-left: 0px;">
330
341
  <dt id="example_group_5" class="passed">passing spec</dt>
331
342
  <script type="text/javascript">moveProgressBar('57.1');</script>
332
- <dd class="example passed">
333
- <span class="passed_spec_name">passes</span><span class="duration">n.nnnns</span>
334
- </dd>
343
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
335
344
  </dl>
336
345
  </div>
337
346
  <div id="div_group_6" class="example_group passed">
@@ -350,10 +359,20 @@ expected: 2
350
359
 
351
360
  (compared using ==)
352
361
  </pre></div>
353
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33</pre></div>
354
- <pre class="ruby"><code><span class="linenum">31</span><span class="ident">describe</span> <span class="punct">"</span><span class="string">failing spec</span><span class="punct">"</span> <span class="keyword">do</span>
355
- <span class="linenum">32</span> <span class="ident">it</span> <span class="punct">"</span><span class="string">fails</span><span class="punct">"</span> <span class="keyword">do</span>
356
- <span class="offending"><span class="linenum">33</span> <span class="ident">expect</span><span class="punct">(</span><span class="number">1</span><span class="punct">).</span><span class="ident">to</span> <span class="ident">eq</span><span class="punct">(</span><span class="number">2</span><span class="punct">)</span></span>
362
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33
363
+ ./spec/support/sandboxed_mock_space.rb:33:in `run'
364
+ ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
365
+ ./spec/support/sandboxed_mock_space.rb:32:in `run'
366
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `generated_html'
367
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59
368
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
369
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59
370
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
371
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58
372
+ ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
373
+ <pre class="ruby"><code><span class="linenum">31</span>describe <span class="string"><span class="delimiter">&quot;</span><span class="content">failing spec</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
374
+ <span class="linenum">32</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
375
+ <span class="offending"><span class="linenum">33</span> expect(<span class="integer">1</span>).to eq(<span class="integer">2</span>)</span>
357
376
  <span class="linenum">34</span> <span class="keyword">end</span>
358
377
  <span class="linenum">35</span><span class="keyword">end</span></code></pre>
359
378
  </div>
@@ -371,7 +390,7 @@ expected: 2
371
390
  <span class="duration">n.nnnns</span>
372
391
  <div class="failure" id="failure_3">
373
392
  <div class="message"><pre>foo</pre></div>
374
- <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:41</pre></div>
393
+ <div class="backtrace"><pre>(erb):1</pre></div>
375
394
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
376
395
  </div>
377
396
  </dd>
@@ -381,14 +400,12 @@ expected: 2
381
400
  <span class="duration">n.nnnns</span>
382
401
  <div class="failure" id="failure_4">
383
402
  <div class="message"><pre>Exception</pre></div>
384
- <div class="backtrace"><pre></pre></div>
403
+ <div class="backtrace"><pre>/foo.html.erb:1:in `&lt;main&gt;': foo (RuntimeError)</pre></div>
385
404
  <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
386
405
  </div>
387
406
  </dd>
388
407
  </dl>
389
408
  </div>
390
-
391
- 2 deprecation warnings total
392
409
  <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
393
410
  <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
394
411
  </div>
@@ -0,0 +1,425 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
3
+ <head>
4
+ <title>RSpec results</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <meta http-equiv="Expires" content="-1" />
7
+ <meta http-equiv="Pragma" content="no-cache" />
8
+ <style type="text/css">
9
+ body {
10
+ margin: 0;
11
+ padding: 0;
12
+ background: #fff;
13
+ font-size: 80%;
14
+ }
15
+ </style>
16
+ <script type="text/javascript">
17
+ // <![CDATA[
18
+
19
+ function addClass(element_id, classname) {
20
+ document.getElementById(element_id).className += (" " + classname);
21
+ }
22
+
23
+ function removeClass(element_id, classname) {
24
+ var elem = document.getElementById(element_id);
25
+ var classlist = elem.className.replace(classname,'');
26
+ elem.className = classlist;
27
+ }
28
+
29
+ function moveProgressBar(percentDone) {
30
+ document.getElementById("rspec-header").style.width = percentDone +"%";
31
+ }
32
+
33
+ function makeRed(element_id) {
34
+ removeClass(element_id, 'passed');
35
+ removeClass(element_id, 'not_implemented');
36
+ addClass(element_id,'failed');
37
+ }
38
+
39
+ function makeYellow(element_id) {
40
+ var elem = document.getElementById(element_id);
41
+ if (elem.className.indexOf("failed") == -1) { // class doesn't includes failed
42
+ if (elem.className.indexOf("not_implemented") == -1) { // class doesn't include not_implemented
43
+ removeClass(element_id, 'passed');
44
+ addClass(element_id,'not_implemented');
45
+ }
46
+ }
47
+ }
48
+
49
+ function apply_filters() {
50
+ var passed_filter = document.getElementById('passed_checkbox').checked;
51
+ var failed_filter = document.getElementById('failed_checkbox').checked;
52
+ var pending_filter = document.getElementById('pending_checkbox').checked;
53
+
54
+ assign_display_style("example passed", passed_filter);
55
+ assign_display_style("example failed", failed_filter);
56
+ assign_display_style("example not_implemented", pending_filter);
57
+
58
+ assign_display_style_for_group("example_group passed", passed_filter);
59
+ assign_display_style_for_group("example_group not_implemented", pending_filter, pending_filter || passed_filter);
60
+ assign_display_style_for_group("example_group failed", failed_filter, failed_filter || pending_filter || passed_filter);
61
+ }
62
+
63
+ function get_display_style(display_flag) {
64
+ var style_mode = 'none';
65
+ if (display_flag == true) {
66
+ style_mode = 'block';
67
+ }
68
+ return style_mode;
69
+ }
70
+
71
+ function assign_display_style(classname, display_flag) {
72
+ var style_mode = get_display_style(display_flag);
73
+ var elems = document.getElementsByClassName(classname)
74
+ for (var i=0; i<elems.length;i++) {
75
+ elems[i].style.display = style_mode;
76
+ }
77
+ }
78
+
79
+ function assign_display_style_for_group(classname, display_flag, subgroup_flag) {
80
+ var display_style_mode = get_display_style(display_flag);
81
+ var subgroup_style_mode = get_display_style(subgroup_flag);
82
+ var elems = document.getElementsByClassName(classname)
83
+ for (var i=0; i<elems.length;i++) {
84
+ var style_mode = display_style_mode;
85
+ if ((display_flag != subgroup_flag) && (elems[i].getElementsByTagName('dt')[0].innerHTML.indexOf(", ") != -1)) {
86
+ elems[i].style.display = subgroup_style_mode;
87
+ } else {
88
+ elems[i].style.display = display_style_mode;
89
+ }
90
+ }
91
+ }
92
+
93
+ // ]]>
94
+ </script>
95
+ <style type="text/css">
96
+ #rspec-header {
97
+ background: #65C400; color: #fff; height: 4em;
98
+ }
99
+
100
+ .rspec-report h1 {
101
+ margin: 0px 10px 0px 10px;
102
+ padding: 10px;
103
+ font-family: "Lucida Grande", Helvetica, sans-serif;
104
+ font-size: 1.8em;
105
+ position: absolute;
106
+ }
107
+
108
+ #label {
109
+ float:left;
110
+ }
111
+
112
+ #display-filters {
113
+ float:left;
114
+ padding: 28px 0 0 40%;
115
+ font-family: "Lucida Grande", Helvetica, sans-serif;
116
+ }
117
+
118
+ #summary {
119
+ float:right;
120
+ padding: 5px 10px;
121
+ font-family: "Lucida Grande", Helvetica, sans-serif;
122
+ text-align: right;
123
+ }
124
+
125
+ #summary p {
126
+ margin: 0 0 0 2px;
127
+ }
128
+
129
+ #summary #totals {
130
+ font-size: 1.2em;
131
+ }
132
+
133
+ .example_group {
134
+ margin: 0 10px 5px;
135
+ background: #fff;
136
+ }
137
+
138
+ dl {
139
+ margin: 0; padding: 0 0 5px;
140
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
141
+ }
142
+
143
+ dt {
144
+ padding: 3px;
145
+ background: #65C400;
146
+ color: #fff;
147
+ font-weight: bold;
148
+ }
149
+
150
+ dd {
151
+ margin: 5px 0 5px 5px;
152
+ padding: 3px 3px 3px 18px;
153
+ }
154
+
155
+ dd .duration {
156
+ padding-left: 5px;
157
+ text-align: right;
158
+ right: 0px;
159
+ float:right;
160
+ }
161
+
162
+ dd.example.passed {
163
+ border-left: 5px solid #65C400;
164
+ border-bottom: 1px solid #65C400;
165
+ background: #DBFFB4; color: #3D7700;
166
+ }
167
+
168
+ dd.example.not_implemented {
169
+ border-left: 5px solid #FAF834;
170
+ border-bottom: 1px solid #FAF834;
171
+ background: #FCFB98; color: #131313;
172
+ }
173
+
174
+ dd.example.pending_fixed {
175
+ border-left: 5px solid #0000C2;
176
+ border-bottom: 1px solid #0000C2;
177
+ color: #0000C2; background: #D3FBFF;
178
+ }
179
+
180
+ dd.example.failed {
181
+ border-left: 5px solid #C20000;
182
+ border-bottom: 1px solid #C20000;
183
+ color: #C20000; background: #FFFBD3;
184
+ }
185
+
186
+
187
+ dt.not_implemented {
188
+ color: #000000; background: #FAF834;
189
+ }
190
+
191
+ dt.pending_fixed {
192
+ color: #FFFFFF; background: #C40D0D;
193
+ }
194
+
195
+ dt.failed {
196
+ color: #FFFFFF; background: #C40D0D;
197
+ }
198
+
199
+
200
+ #rspec-header.not_implemented {
201
+ color: #000000; background: #FAF834;
202
+ }
203
+
204
+ #rspec-header.pending_fixed {
205
+ color: #FFFFFF; background: #C40D0D;
206
+ }
207
+
208
+ #rspec-header.failed {
209
+ color: #FFFFFF; background: #C40D0D;
210
+ }
211
+
212
+
213
+ .backtrace {
214
+ color: #000;
215
+ font-size: 12px;
216
+ }
217
+
218
+ a {
219
+ color: #BE5C00;
220
+ }
221
+
222
+ /* Ruby code, style similar to vibrant ink */
223
+ .ruby {
224
+ font-size: 12px;
225
+ font-family: monospace;
226
+ color: white;
227
+ background-color: black;
228
+ padding: 0.1em 0 0.2em 0;
229
+ }
230
+
231
+ .ruby .keyword { color: #FF6600; }
232
+ .ruby .constant { color: #339999; }
233
+ .ruby .attribute { color: white; }
234
+ .ruby .global { color: white; }
235
+ .ruby .module { color: white; }
236
+ .ruby .class { color: white; }
237
+ .ruby .string { color: #66FF00; }
238
+ .ruby .ident { color: white; }
239
+ .ruby .method { color: #FFCC00; }
240
+ .ruby .number { color: white; }
241
+ .ruby .char { color: white; }
242
+ .ruby .comment { color: #9933CC; }
243
+ .ruby .symbol { color: white; }
244
+ .ruby .regex { color: #44B4CC; }
245
+ .ruby .punct { color: white; }
246
+ .ruby .escape { color: white; }
247
+ .ruby .interp { color: white; }
248
+ .ruby .expr { color: white; }
249
+
250
+ .ruby .offending { background-color: gray; }
251
+ .ruby .linenum {
252
+ width: 75px;
253
+ padding: 0.1em 1em 0.2em 0;
254
+ color: #000000;
255
+ background-color: #FFFBD3;
256
+ }
257
+
258
+ </style>
259
+ </head>
260
+ <body>
261
+ <div class="rspec-report">
262
+
263
+ <div id="rspec-header">
264
+ <div id="label">
265
+ <h1>RSpec Code Examples</h1>
266
+ </div>
267
+
268
+ <div id="display-filters">
269
+ <input id="passed_checkbox" name="passed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="1" /> <label for="passed_checkbox">Passed</label>
270
+ <input id="failed_checkbox" name="failed_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="2" /> <label for="failed_checkbox">Failed</label>
271
+ <input id="pending_checkbox" name="pending_checkbox" type="checkbox" checked="checked" onchange="apply_filters()" value="3" /> <label for="pending_checkbox">Pending</label>
272
+ </div>
273
+
274
+ <div id="summary">
275
+ <p id="totals">&#160;</p>
276
+ <p id="duration">&#160;</p>
277
+ </div>
278
+ </div>
279
+
280
+
281
+ <div class="results">
282
+ <div id="div_group_1" class="example_group passed">
283
+ <dl style="margin-left: 0px;">
284
+ <dt id="example_group_1" class="passed">pending spec with no implementation</dt>
285
+ <script type="text/javascript">makeYellow('rspec-header');</script>
286
+ <script type="text/javascript">makeYellow('div_group_1');</script>
287
+ <script type="text/javascript">makeYellow('example_group_1');</script>
288
+ <script type="text/javascript">moveProgressBar('14.2');</script>
289
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: Not yet implemented)</span></dd>
290
+ </dl>
291
+ </div>
292
+ <div id="div_group_2" class="example_group passed">
293
+ <dl style="margin-left: 0px;">
294
+ <dt id="example_group_2" class="passed">pending command with block format</dt>
295
+ </dl>
296
+ </div>
297
+ <div id="div_group_3" class="example_group passed">
298
+ <dl style="margin-left: 15px;">
299
+ <dt id="example_group_3" class="passed">with content that would fail</dt>
300
+ <script type="text/javascript">makeYellow('rspec-header');</script>
301
+ <script type="text/javascript">makeYellow('div_group_3');</script>
302
+ <script type="text/javascript">makeYellow('example_group_3');</script>
303
+ <script type="text/javascript">moveProgressBar('28.5');</script>
304
+ <dd class="example not_implemented"><span class="not_implemented_spec_name">is pending (PENDING: No reason given)</span></dd>
305
+ </dl>
306
+ </div>
307
+ <div id="div_group_4" class="example_group passed">
308
+ <dl style="margin-left: 15px;">
309
+ <dt id="example_group_4" class="passed">with content that would pass</dt>
310
+ <script type="text/javascript">makeRed('rspec-header');</script>
311
+ <script type="text/javascript">makeRed('div_group_4');</script>
312
+ <script type="text/javascript">makeRed('example_group_4');</script>
313
+ <script type="text/javascript">moveProgressBar('42.8');</script>
314
+ <dd class="example pending_fixed">
315
+ <span class="failed_spec_name">fails</span>
316
+ <span class="duration">n.nnnns</span>
317
+ <div class="failure" id="failure_1">
318
+ <div class="message"><pre>RSpec::Core::Pending::PendingExampleFixedError</pre></div>
319
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:18:in `block (3 levels) in &lt;top (required)&gt;'
320
+ ./spec/support/sandboxed_mock_space.rb:33:in `block in run'
321
+ ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
322
+ ./spec/support/sandboxed_mock_space.rb:32:in `run'
323
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `block (2 levels) in &lt;module:Formatters&gt;'
324
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (5 levels) in &lt;module:Formatters&gt;'
325
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
326
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (4 levels) in &lt;module:Formatters&gt;'
327
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
328
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `block (3 levels) in &lt;module:Formatters&gt;'
329
+ ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
330
+ <pre class="ruby"><code><span class="linenum">16</span> context <span class="string"><span class="delimiter">&quot;</span><span class="content">with content that would pass</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
331
+ <span class="linenum">17</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
332
+ <span class="offending"><span class="linenum">18</span> pending <span class="keyword">do</span></span>
333
+ <span class="linenum">19</span> expect(<span class="integer">1</span>).to eq(<span class="integer">1</span>)
334
+ <span class="linenum">20</span> <span class="keyword">end</span></code></pre>
335
+ </div>
336
+ </dd>
337
+ </dl>
338
+ </div>
339
+ <div id="div_group_5" class="example_group passed">
340
+ <dl style="margin-left: 0px;">
341
+ <dt id="example_group_5" class="passed">passing spec</dt>
342
+ <script type="text/javascript">moveProgressBar('57.1');</script>
343
+ <dd class="example passed"><span class="passed_spec_name">passes</span><span class='duration'>n.nnnns</span></dd>
344
+ </dl>
345
+ </div>
346
+ <div id="div_group_6" class="example_group passed">
347
+ <dl style="margin-left: 0px;">
348
+ <dt id="example_group_6" class="passed">failing spec</dt>
349
+ <script type="text/javascript">makeRed('div_group_6');</script>
350
+ <script type="text/javascript">makeRed('example_group_6');</script>
351
+ <script type="text/javascript">moveProgressBar('71.4');</script>
352
+ <dd class="example failed">
353
+ <span class="failed_spec_name">fails</span>
354
+ <span class="duration">n.nnnns</span>
355
+ <div class="failure" id="failure_2">
356
+ <div class="message"><pre>
357
+ expected: 2
358
+ got: 1
359
+
360
+ (compared using ==)
361
+ </pre></div>
362
+ <div class="backtrace"><pre>./spec/rspec/core/resources/formatter_specs.rb:33:in `block (2 levels) in &lt;top (required)&gt;'
363
+ ./spec/support/sandboxed_mock_space.rb:33:in `block in run'
364
+ ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
365
+ ./spec/support/sandboxed_mock_space.rb:32:in `run'
366
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `block (2 levels) in &lt;module:Formatters&gt;'
367
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (5 levels) in &lt;module:Formatters&gt;'
368
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
369
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (4 levels) in &lt;module:Formatters&gt;'
370
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
371
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `block (3 levels) in &lt;module:Formatters&gt;'
372
+ ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
373
+ <pre class="ruby"><code><span class="linenum">31</span>describe <span class="string"><span class="delimiter">&quot;</span><span class="content">failing spec</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
374
+ <span class="linenum">32</span> it <span class="string"><span class="delimiter">&quot;</span><span class="content">fails</span><span class="delimiter">&quot;</span></span> <span class="keyword">do</span>
375
+ <span class="offending"><span class="linenum">33</span> expect(<span class="integer">1</span>).to eq(<span class="integer">2</span>)</span>
376
+ <span class="linenum">34</span> <span class="keyword">end</span>
377
+ <span class="linenum">35</span><span class="keyword">end</span></code></pre>
378
+ </div>
379
+ </dd>
380
+ </dl>
381
+ </div>
382
+ <div id="div_group_7" class="example_group passed">
383
+ <dl style="margin-left: 0px;">
384
+ <dt id="example_group_7" class="passed">a failing spec with odd backtraces</dt>
385
+ <script type="text/javascript">makeRed('div_group_7');</script>
386
+ <script type="text/javascript">makeRed('example_group_7');</script>
387
+ <script type="text/javascript">moveProgressBar('85.7');</script>
388
+ <dd class="example failed">
389
+ <span class="failed_spec_name">fails with a backtrace that has no file</span>
390
+ <span class="duration">n.nnnns</span>
391
+ <div class="failure" id="failure_3">
392
+ <div class="message"><pre>foo</pre></div>
393
+ <div class="backtrace"><pre>(erb):1:in `&lt;main&gt;'
394
+ ./spec/rspec/core/resources/formatter_specs.rb:41:in `block (2 levels) in &lt;top (required)&gt;'
395
+ ./spec/support/sandboxed_mock_space.rb:33:in `block in run'
396
+ ./spec/support/sandboxed_mock_space.rb:72:in `sandboxed'
397
+ ./spec/support/sandboxed_mock_space.rb:32:in `run'
398
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:37:in `block (2 levels) in &lt;module:Formatters&gt;'
399
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (5 levels) in &lt;module:Formatters&gt;'
400
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `open'
401
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:59:in `block (4 levels) in &lt;module:Formatters&gt;'
402
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `chdir'
403
+ ./spec/rspec/core/formatters/html_formatter_spec.rb:58:in `block (3 levels) in &lt;module:Formatters&gt;'
404
+ ./spec/support/sandboxed_mock_space.rb:38:in `sandboxed'</pre></div>
405
+ <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for (erb)</span></code></pre>
406
+ </div>
407
+ </dd>
408
+ <script type="text/javascript">moveProgressBar('100.0');</script>
409
+ <dd class="example failed">
410
+ <span class="failed_spec_name">fails with a backtrace containing an erb file</span>
411
+ <span class="duration">n.nnnns</span>
412
+ <div class="failure" id="failure_4">
413
+ <div class="message"><pre>Exception</pre></div>
414
+ <div class="backtrace"><pre>/foo.html.erb:1:in `&lt;main&gt;': foo (RuntimeError)</pre></div>
415
+ <pre class="ruby"><code><span class="linenum">-1</span><span class="comment"># Couldn't get snippet for /foo.html.erb</span></code></pre>
416
+ </div>
417
+ </dd>
418
+ </dl>
419
+ </div>
420
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>n.nnnn seconds</strong>";</script>
421
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "7 examples, 4 failures, 2 pending";</script>
422
+ </div>
423
+ </div>
424
+ </body>
425
+ </html>