rspec 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/CHANGES +17 -0
  2. data/Rakefile +7 -4
  3. data/failing_examples/README.txt +7 -0
  4. data/failing_examples/diffing_spec.rb +36 -0
  5. data/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
  6. data/failing_examples/failure_in_setup.rb +10 -0
  7. data/failing_examples/failure_in_teardown.rb +10 -0
  8. data/failing_examples/mocking_example.rb +40 -0
  9. data/failing_examples/mocking_with_flexmock.rb +26 -0
  10. data/failing_examples/mocking_with_mocha.rb +25 -0
  11. data/failing_examples/mocking_with_rr.rb +27 -0
  12. data/failing_examples/partial_mock_example.rb +20 -0
  13. data/failing_examples/predicate_example.rb +29 -0
  14. data/failing_examples/raising_example.rb +47 -0
  15. data/failing_examples/spec_helper.rb +3 -0
  16. data/failing_examples/syntax_error_example.rb +7 -0
  17. data/failing_examples/team_spec.rb +44 -0
  18. data/failing_examples/timeout_behaviour.rb +7 -0
  19. data/lib/autotest/rspec.rb +21 -35
  20. data/lib/spec.rb +0 -7
  21. data/lib/spec/example/example_group_methods.rb +10 -4
  22. data/lib/spec/example/example_methods.rb +4 -0
  23. data/lib/spec/interop/test.rb +3 -1
  24. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +1 -0
  25. data/lib/spec/matchers/raise_error.rb +19 -15
  26. data/lib/spec/runner.rb +14 -0
  27. data/lib/spec/runner/formatter/story/html_formatter.rb +3 -0
  28. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +4 -1
  29. data/lib/spec/runner/option_parser.rb +5 -33
  30. data/lib/spec/runner/options.rb +51 -18
  31. data/lib/spec/runner/spec_parser.rb +49 -31
  32. data/lib/spec/story/runner.rb +0 -2
  33. data/lib/spec/story/step.rb +8 -6
  34. data/lib/spec/story/world.rb +1 -0
  35. data/lib/spec/version.rb +22 -22
  36. data/pre_commit/lib/pre_commit.rb +4 -0
  37. data/pre_commit/lib/pre_commit/core.rb +50 -0
  38. data/pre_commit/lib/pre_commit/pre_commit.rb +54 -0
  39. data/pre_commit/lib/pre_commit/rspec.rb +111 -0
  40. data/pre_commit/lib/pre_commit/rspec_on_rails.rb +313 -0
  41. data/pre_commit/spec/pre_commit/pre_commit_spec.rb +15 -0
  42. data/pre_commit/spec/pre_commit/rspec_on_rails_spec.rb +36 -0
  43. data/pre_commit/spec/spec_helper.rb +3 -0
  44. data/pre_commit/spec/spec_suite.rb +11 -0
  45. data/rake_tasks/examples.rake +7 -0
  46. data/rake_tasks/examples_with_rcov.rake +9 -0
  47. data/rake_tasks/failing_examples_with_html.rake +9 -0
  48. data/rake_tasks/verify_rcov.rake +7 -0
  49. data/spec/README.jruby +15 -0
  50. data/spec/autotest/rspec_spec.rb +11 -80
  51. data/spec/autotest_helper.rb +2 -1
  52. data/spec/autotest_matchers.rb +47 -0
  53. data/spec/rspec_suite.rb +1 -1
  54. data/spec/spec.opts +6 -0
  55. data/spec/spec/example/example_group_methods_spec.rb +11 -2
  56. data/spec/spec/example/example_methods_spec.rb +69 -56
  57. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  58. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  59. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  60. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  61. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  62. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  63. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  64. data/spec/spec/interop/test/unit/spec_spec.rb +45 -0
  65. data/spec/spec/interop/test/unit/testcase_spec.rb +39 -4
  66. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +1 -1
  67. data/spec/spec/matchers/raise_error_spec.rb +7 -1
  68. data/spec/spec/mocks/bug_report_10263.rb +1 -1
  69. data/spec/spec/runner/command_line_spec.rb +3 -2
  70. data/spec/spec/runner/empty_file.txt +0 -0
  71. data/spec/spec/runner/examples.txt +2 -0
  72. data/spec/spec/runner/failed.txt +3 -0
  73. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  74. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
  75. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  76. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
  77. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +365 -0
  78. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +54 -54
  79. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
  80. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +365 -0
  81. data/spec/spec/runner/option_parser_spec.rb +50 -49
  82. data/spec/spec/runner/options_spec.rb +72 -2
  83. data/spec/spec/runner/resources/a_bar.rb +0 -0
  84. data/spec/spec/runner/resources/a_foo.rb +0 -0
  85. data/spec/spec/runner/resources/a_spec.rb +1 -0
  86. data/spec/spec/runner/spec.opts +2 -0
  87. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
  88. data/spec/spec/runner/spec_parser_spec.rb +31 -76
  89. data/spec/spec/runner/spec_spaced.opts +2 -0
  90. data/spec/spec/spec_classes.rb +4 -0
  91. data/spec/spec/story/step_spec.rb +22 -0
  92. data/spec/spec/story/world_spec.rb +7 -0
  93. data/stories/interop/test_case_with_should_methods +1 -1
  94. metadata +85 -5
  95. data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +0 -20
  96. data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +0 -34
@@ -0,0 +1,387 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+ <div class="rspec-report">
22
+ <script type="text/javascript">
23
+ // <![CDATA[
24
+ function moveProgressBar(percentDone) {
25
+ document.getElementById("rspec-header").style.width = percentDone +"%";
26
+ }
27
+ function makeRed(element_id) {
28
+ document.getElementById(element_id).style.background = '#C40D0D';
29
+ document.getElementById(element_id).style.color = '#FFFFFF';
30
+ }
31
+
32
+ function makeYellow(element_id) {
33
+ if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
34
+ {
35
+ document.getElementById(element_id).style.background = '#FAF834';
36
+ document.getElementById(element_id).style.color = '#000000';
37
+ }
38
+ else
39
+ {
40
+ document.getElementById(element_id).style.background = '#FAF834';
41
+ document.getElementById(element_id).style.color = '#000000';
42
+ }
43
+ }
44
+
45
+ // ]]>
46
+ </script>
47
+ <style type="text/css">
48
+ #rspec-header {
49
+ background: #65C400; color: #fff;
50
+ }
51
+
52
+ .rspec-report h1 {
53
+ margin: 0px 10px 0px 10px;
54
+ padding: 10px;
55
+ font-family: "Lucida Grande", Helvetica, sans-serif;
56
+ font-size: 1.8em;
57
+ }
58
+
59
+ #summary {
60
+ margin: 0; padding: 5px 10px;
61
+ font-family: "Lucida Grande", Helvetica, sans-serif;
62
+ text-align: right;
63
+ position: absolute;
64
+ top: 0px;
65
+ right: 0px;
66
+ }
67
+
68
+ #summary p {
69
+ margin: 0 0 0 2px;
70
+ }
71
+
72
+ #summary #totals {
73
+ font-size: 1.2em;
74
+ }
75
+
76
+ .example_group {
77
+ margin: 0 10px 5px;
78
+ background: #fff;
79
+ }
80
+
81
+ dl {
82
+ margin: 0; padding: 0 0 5px;
83
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
84
+ }
85
+
86
+ dt {
87
+ padding: 3px;
88
+ background: #65C400;
89
+ color: #fff;
90
+ font-weight: bold;
91
+ }
92
+
93
+ dd {
94
+ margin: 5px 0 5px 5px;
95
+ padding: 3px 3px 3px 18px;
96
+ }
97
+
98
+ dd.spec.passed {
99
+ border-left: 5px solid #65C400;
100
+ border-bottom: 1px solid #65C400;
101
+ background: #DBFFB4; color: #3D7700;
102
+ }
103
+
104
+ dd.spec.failed {
105
+ border-left: 5px solid #C20000;
106
+ border-bottom: 1px solid #C20000;
107
+ color: #C20000; background: #FFFBD3;
108
+ }
109
+
110
+ dd.spec.not_implemented {
111
+ border-left: 5px solid #FAF834;
112
+ border-bottom: 1px solid #FAF834;
113
+ background: #FCFB98; color: #131313;
114
+ }
115
+
116
+ dd.spec.pending_fixed {
117
+ border-left: 5px solid #0000C2;
118
+ border-bottom: 1px solid #0000C2;
119
+ color: #0000C2; background: #D3FBFF;
120
+ }
121
+
122
+ .backtrace {
123
+ color: #000;
124
+ font-size: 12px;
125
+ }
126
+
127
+ a {
128
+ color: #BE5C00;
129
+ }
130
+
131
+ /* Ruby code, style similar to vibrant ink */
132
+ .ruby {
133
+ font-size: 12px;
134
+ font-family: monospace;
135
+ color: white;
136
+ background-color: black;
137
+ padding: 0.1em 0 0.2em 0;
138
+ }
139
+
140
+ .ruby .keyword { color: #FF6600; }
141
+ .ruby .constant { color: #339999; }
142
+ .ruby .attribute { color: white; }
143
+ .ruby .global { color: white; }
144
+ .ruby .module { color: white; }
145
+ .ruby .class { color: white; }
146
+ .ruby .string { color: #66FF00; }
147
+ .ruby .ident { color: white; }
148
+ .ruby .method { color: #FFCC00; }
149
+ .ruby .number { color: white; }
150
+ .ruby .char { color: white; }
151
+ .ruby .comment { color: #9933CC; }
152
+ .ruby .symbol { color: white; }
153
+ .ruby .regex { color: #44B4CC; }
154
+ .ruby .punct { color: white; }
155
+ .ruby .escape { color: white; }
156
+ .ruby .interp { color: white; }
157
+ .ruby .expr { color: white; }
158
+
159
+ .ruby .offending { background-color: gray; }
160
+ .ruby .linenum {
161
+ width: 75px;
162
+ padding: 0.1em 1em 0.2em 0;
163
+ color: #000000;
164
+ background-color: #FFFBD3;
165
+ }
166
+
167
+ </style>
168
+
169
+ <div id="rspec-header">
170
+ <h1>RSpec Results</h1>
171
+
172
+ <div id="summary">
173
+ <p id="totals">&nbsp;</p>
174
+ <p id="duration">&nbsp;</p>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="results">
179
+ <div class="example_group">
180
+ <dl>
181
+ <dt id="example_group_1">Mocker</dt>
182
+ <script type="text/javascript">moveProgressBar('5.8');</script>
183
+ <dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
184
+ <script type="text/javascript">makeRed('rspec-header');</script>
185
+ <script type="text/javascript">makeRed('example_group_1');</script>
186
+ <script type="text/javascript">moveProgressBar('11.7');</script>
187
+ <dd class="spec failed">
188
+ <span class="failed_spec_name">should fail when expected message not received</span>
189
+ <div class="failure" id="failure_1">
190
+ <div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
191
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:13:in `should_receive'
192
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
193
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
194
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
195
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
196
+ <pre class="ruby"><code><span class="linenum">11</span> it "should fail when expected message not received" do
197
+ <span class="linenum">12</span> mock = mock("poke me")
198
+ <span class="offending"><span class="linenum">13</span> mock.should_receive(:poke)</span>
199
+ <span class="linenum">14</span> end
200
+ <span class="linenum">15</span>
201
+ <span class="linenum">16</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
202
+ </div>
203
+ </dd>
204
+ <script type="text/javascript">moveProgressBar('17.6');</script>
205
+ <dd class="spec failed">
206
+ <span class="failed_spec_name">should fail when messages are received out of order</span>
207
+ <div class="failure" id="failure_2">
208
+ <div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
209
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:22:in `three'
210
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:16:in `instance_eval'
211
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
212
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
213
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
214
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
215
+ <pre class="ruby"><code><span class="linenum">20</span> mock.should_receive(:three).ordered
216
+ <span class="linenum">21</span> mock.one
217
+ <span class="offending"><span class="linenum">22</span> mock.three</span>
218
+ <span class="linenum">23</span> mock.two
219
+ <span class="linenum">24</span> end
220
+ <span class="linenum">25</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
221
+ </div>
222
+ </dd>
223
+ <script type="text/javascript">moveProgressBar('23.5');</script>
224
+ <dd class="spec failed">
225
+ <span class="failed_spec_name">should get yelled at when sending unexpected messages</span>
226
+ <div class="failure" id="failure_3">
227
+ <div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
228
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:28:in `should_not_receive'
229
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
230
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
231
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
232
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
233
+ <pre class="ruby"><code><span class="linenum">26</span> it "should get yelled at when sending unexpected messages" do
234
+ <span class="linenum">27</span> mock = mock("don't talk to me")
235
+ <span class="offending"><span class="linenum">28</span> mock.should_not_receive(:any_message_at_all)</span>
236
+ <span class="linenum">29</span> mock.any_message_at_all
237
+ <span class="linenum">30</span> end
238
+ <span class="linenum">31</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
239
+ </div>
240
+ </dd>
241
+ <script type="text/javascript">moveProgressBar('29.4');</script>
242
+ <dd class="spec pending_fixed">
243
+ <span class="failed_spec_name">has a bug we need to fix</span>
244
+ <div class="failure" id="failure_4">
245
+ <div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
246
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:33:in `pending'
247
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/mocking_example.rb:33:in `instance_eval'
248
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
249
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
250
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
251
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
252
+ <pre class="ruby"><code><span class="linenum">31</span>
253
+ <span class="linenum">32</span> it "has a bug we need to fix" do
254
+ <span class="offending"><span class="linenum">33</span> pending "here is the bug" do</span>
255
+ <span class="linenum">34</span> # Actually, no. It's fixed. This will fail because it passes :-)
256
+ <span class="linenum">35</span> mock = mock("Bug")
257
+ <span class="linenum">36</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
258
+ </div>
259
+ </dd>
260
+ </dl>
261
+ </div>
262
+ <div class="example_group">
263
+ <dl>
264
+ <dt id="example_group_2">Running specs with --diff</dt>
265
+ <script type="text/javascript">makeRed('example_group_2');</script>
266
+ <script type="text/javascript">moveProgressBar('35.2');</script>
267
+ <dd class="spec failed">
268
+ <span class="failed_spec_name">should print diff of different strings</span>
269
+ <div class="failure" id="failure_5">
270
+ <div class="message"><pre>expected: &quot;RSpec is a\nbehaviour driven development\nframework for Ruby\n&quot;,
271
+ got: &quot;RSpec is a\nbehavior driven development\nframework for Ruby\n&quot; (using ==)
272
+ Diff:
273
+ @@ -1,4 +1,4 @@
274
+ RSpec is a
275
+ -behavior driven development
276
+ +behaviour driven development
277
+ framework for Ruby
278
+ </pre></div>
279
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:13:in `=='
280
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
281
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
282
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
283
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
284
+ <pre class="ruby"><code><span class="linenum">11</span>framework for Ruby
285
+ <span class="linenum">12</span>EOF
286
+ <span class="offending"><span class="linenum">13</span> usa.should == uk</span>
287
+ <span class="linenum">14</span> end
288
+ <span class="linenum">15</span>
289
+ <span class="linenum">16</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
290
+ </div>
291
+ </dd>
292
+ <script type="text/javascript">moveProgressBar('41.1');</script>
293
+ <dd class="spec failed">
294
+ <span class="failed_spec_name">should print diff of different objects' pretty representation</span>
295
+ <div class="failure" id="failure_6">
296
+ <div class="message"><pre>expected &lt;Animal
297
+ name=bob,
298
+ species=tortoise
299
+ &gt;
300
+ , got &lt;Animal
301
+ name=bob,
302
+ species=giraffe
303
+ &gt;
304
+ (using .eql?)
305
+ Diff:
306
+ @@ -1,5 +1,5 @@
307
+ &lt;Animal
308
+ name=bob,
309
+ -species=giraffe
310
+ +species=tortoise
311
+ &gt;
312
+ </pre></div>
313
+ <div class="backtrace"><pre>/Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:34:in `should'
314
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/./failing_examples/diffing_spec.rb:31:in `instance_eval'
315
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:24:in `run'
316
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
317
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `chdir'
318
+ /Users/david/projects/ruby/jruby/testsuites/rspec/target/rspec/spec/spec/runner/formatter/html_formatter_spec.rb:20:in `instance_eval'</pre></div>
319
+ <pre class="ruby"><code><span class="linenum">32</span> expected = Animal.new "bob", "giraffe"
320
+ <span class="linenum">33</span> actual = Animal.new "bob", "tortoise"
321
+ <span class="offending"><span class="linenum">34</span> expected.should eql(actual)</span>
322
+ <span class="linenum">35</span> end
323
+ <span class="linenum">36</span>end
324
+ <span class="linenum">37</span><span class="comment"># gem install syntax to get syntax highlighting</span></code></pre>
325
+ </div>
326
+ </dd>
327
+ </dl>
328
+ </div>
329
+ <div class="example_group">
330
+ <dl>
331
+ <dt id="example_group_3">A consumer of a stub</dt>
332
+ <script type="text/javascript">moveProgressBar('47.0');</script>
333
+ <dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
334
+ </dl>
335
+ </div>
336
+ <div class="example_group">
337
+ <dl>
338
+ <dt id="example_group_4">A stubbed method on a class</dt>
339
+ <script type="text/javascript">moveProgressBar('52.9');</script>
340
+ <dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
341
+ <script type="text/javascript">moveProgressBar('58.8');</script>
342
+ <dd class="spec passed"><span class="passed_spec_name">should revert to the original method after each spec</span></dd>
343
+ <script type="text/javascript">moveProgressBar('64.7');</script>
344
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
345
+ </dl>
346
+ </div>
347
+ <div class="example_group">
348
+ <dl>
349
+ <dt id="example_group_5">A mock</dt>
350
+ <script type="text/javascript">moveProgressBar('70.5');</script>
351
+ <dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
352
+ <script type="text/javascript">moveProgressBar('76.4');</script>
353
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock</span></dd>
354
+ <script type="text/javascript">moveProgressBar('82.3');</script>
355
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
356
+ </dl>
357
+ </div>
358
+ <div class="example_group">
359
+ <dl>
360
+ <dt id="example_group_6">pending example (using pending method)</dt>
361
+ <script type="text/javascript">makeYellow('example_group_6');</script>
362
+ <script type="text/javascript">moveProgressBar('88.2');</script>
363
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
364
+ </dl>
365
+ </div>
366
+ <div class="example_group">
367
+ <dl>
368
+ <dt id="example_group_7">pending example (with no block)</dt>
369
+ <script type="text/javascript">makeYellow('example_group_7');</script>
370
+ <script type="text/javascript">moveProgressBar('94.1');</script>
371
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
372
+ </dl>
373
+ </div>
374
+ <div class="example_group">
375
+ <dl>
376
+ <dt id="example_group_8">pending example (with block for pending)</dt>
377
+ <script type="text/javascript">makeYellow('example_group_8');</script>
378
+ <script type="text/javascript">moveProgressBar('100.0');</script>
379
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
380
+ </dl>
381
+ </div>
382
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
383
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "17 examples, 6 failures, 3 pending";</script>
384
+ </div>
385
+ </div>
386
+ </body>
387
+ </html>
@@ -0,0 +1,371 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+ <div class="rspec-report">
22
+ <script type="text/javascript">
23
+ // <![CDATA[
24
+ function moveProgressBar(percentDone) {
25
+ document.getElementById("rspec-header").style.width = percentDone +"%";
26
+ }
27
+ function makeRed(element_id) {
28
+ document.getElementById(element_id).style.background = '#C40D0D';
29
+ document.getElementById(element_id).style.color = '#FFFFFF';
30
+ }
31
+
32
+ function makeYellow(element_id) {
33
+ if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
34
+ {
35
+ document.getElementById(element_id).style.background = '#FAF834';
36
+ document.getElementById(element_id).style.color = '#000000';
37
+ }
38
+ else
39
+ {
40
+ document.getElementById(element_id).style.background = '#FAF834';
41
+ document.getElementById(element_id).style.color = '#000000';
42
+ }
43
+ }
44
+
45
+ // ]]>
46
+ </script>
47
+ <style type="text/css">
48
+ #rspec-header {
49
+ background: #65C400; color: #fff;
50
+ }
51
+
52
+ .rspec-report h1 {
53
+ margin: 0px 10px 0px 10px;
54
+ padding: 10px;
55
+ font-family: "Lucida Grande", Helvetica, sans-serif;
56
+ font-size: 1.8em;
57
+ }
58
+
59
+ #summary {
60
+ margin: 0; padding: 5px 10px;
61
+ font-family: "Lucida Grande", Helvetica, sans-serif;
62
+ text-align: right;
63
+ position: absolute;
64
+ top: 0px;
65
+ right: 0px;
66
+ }
67
+
68
+ #summary p {
69
+ margin: 0 0 0 2px;
70
+ }
71
+
72
+ #summary #totals {
73
+ font-size: 1.2em;
74
+ }
75
+
76
+ .example_group {
77
+ margin: 0 10px 5px;
78
+ background: #fff;
79
+ }
80
+
81
+ dl {
82
+ margin: 0; padding: 0 0 5px;
83
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
84
+ }
85
+
86
+ dt {
87
+ padding: 3px;
88
+ background: #65C400;
89
+ color: #fff;
90
+ font-weight: bold;
91
+ }
92
+
93
+ dd {
94
+ margin: 5px 0 5px 5px;
95
+ padding: 3px 3px 3px 18px;
96
+ }
97
+
98
+ dd.spec.passed {
99
+ border-left: 5px solid #65C400;
100
+ border-bottom: 1px solid #65C400;
101
+ background: #DBFFB4; color: #3D7700;
102
+ }
103
+
104
+ dd.spec.failed {
105
+ border-left: 5px solid #C20000;
106
+ border-bottom: 1px solid #C20000;
107
+ color: #C20000; background: #FFFBD3;
108
+ }
109
+
110
+ dd.spec.not_implemented {
111
+ border-left: 5px solid #FAF834;
112
+ border-bottom: 1px solid #FAF834;
113
+ background: #FCFB98; color: #131313;
114
+ }
115
+
116
+ dd.spec.pending_fixed {
117
+ border-left: 5px solid #0000C2;
118
+ border-bottom: 1px solid #0000C2;
119
+ color: #0000C2; background: #D3FBFF;
120
+ }
121
+
122
+ .backtrace {
123
+ color: #000;
124
+ font-size: 12px;
125
+ }
126
+
127
+ a {
128
+ color: #BE5C00;
129
+ }
130
+
131
+ /* Ruby code, style similar to vibrant ink */
132
+ .ruby {
133
+ font-size: 12px;
134
+ font-family: monospace;
135
+ color: white;
136
+ background-color: black;
137
+ padding: 0.1em 0 0.2em 0;
138
+ }
139
+
140
+ .ruby .keyword { color: #FF6600; }
141
+ .ruby .constant { color: #339999; }
142
+ .ruby .attribute { color: white; }
143
+ .ruby .global { color: white; }
144
+ .ruby .module { color: white; }
145
+ .ruby .class { color: white; }
146
+ .ruby .string { color: #66FF00; }
147
+ .ruby .ident { color: white; }
148
+ .ruby .method { color: #FFCC00; }
149
+ .ruby .number { color: white; }
150
+ .ruby .char { color: white; }
151
+ .ruby .comment { color: #9933CC; }
152
+ .ruby .symbol { color: white; }
153
+ .ruby .regex { color: #44B4CC; }
154
+ .ruby .punct { color: white; }
155
+ .ruby .escape { color: white; }
156
+ .ruby .interp { color: white; }
157
+ .ruby .expr { color: white; }
158
+
159
+ .ruby .offending { background-color: gray; }
160
+ .ruby .linenum {
161
+ width: 75px;
162
+ padding: 0.1em 1em 0.2em 0;
163
+ color: #000000;
164
+ background-color: #FFFBD3;
165
+ }
166
+
167
+ </style>
168
+
169
+ <div id="rspec-header">
170
+ <h1>RSpec Results</h1>
171
+
172
+ <div id="summary">
173
+ <p id="totals">&nbsp;</p>
174
+ <p id="duration">&nbsp;</p>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="results">
179
+ <div class="example_group">
180
+ <dl>
181
+ <dt id="example_group_1">Mocker</dt>
182
+ <script type="text/javascript">moveProgressBar('5.8');</script>
183
+ <dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
184
+ <script type="text/javascript">makeRed('rspec-header');</script>
185
+ <script type="text/javascript">makeRed('example_group_1');</script>
186
+ <script type="text/javascript">moveProgressBar('11.7');</script>
187
+ <dd class="spec failed">
188
+ <span class="failed_spec_name">should fail when expected message not received</span>
189
+ <div class="failure" id="failure_1">
190
+ <div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
191
+ <div class="backtrace"><pre>./failing_examples/mocking_example.rb:13:
192
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
193
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
194
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
195
+ <pre class="ruby"><code><span class="linenum">11</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should fail when expected message not received</span><span class="punct">&quot;</span> <span class="keyword">do</span>
196
+ <span class="linenum">12</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">poke me</span><span class="punct">&quot;)</span>
197
+ <span class="offending"><span class="linenum">13</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
198
+ <span class="linenum">14</span> <span class="keyword">end</span>
199
+ <span class="linenum">15</span> </code></pre>
200
+ </div>
201
+ </dd>
202
+ <script type="text/javascript">moveProgressBar('17.6');</script>
203
+ <dd class="spec failed">
204
+ <span class="failed_spec_name">should fail when messages are received out of order</span>
205
+ <div class="failure" id="failure_2">
206
+ <div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
207
+ <div class="backtrace"><pre>./failing_examples/mocking_example.rb:22:
208
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
209
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
210
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
211
+ <pre class="ruby"><code><span class="linenum">20</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
212
+ <span class="linenum">21</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
213
+ <span class="offending"><span class="linenum">22</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
214
+ <span class="linenum">23</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">two</span>
215
+ <span class="linenum">24</span> <span class="keyword">end</span></code></pre>
216
+ </div>
217
+ </dd>
218
+ <script type="text/javascript">moveProgressBar('23.5');</script>
219
+ <dd class="spec failed">
220
+ <span class="failed_spec_name">should get yelled at when sending unexpected messages</span>
221
+ <div class="failure" id="failure_3">
222
+ <div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
223
+ <div class="backtrace"><pre>./failing_examples/mocking_example.rb:28:
224
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
225
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
226
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
227
+ <pre class="ruby"><code><span class="linenum">26</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should get yelled at when sending unexpected messages</span><span class="punct">&quot;</span> <span class="keyword">do</span>
228
+ <span class="linenum">27</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">don't talk to me</span><span class="punct">&quot;)</span>
229
+ <span class="offending"><span class="linenum">28</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span></span>
230
+ <span class="linenum">29</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">any_message_at_all</span>
231
+ <span class="linenum">30</span> <span class="keyword">end</span></code></pre>
232
+ </div>
233
+ </dd>
234
+ <script type="text/javascript">moveProgressBar('29.4');</script>
235
+ <dd class="spec pending_fixed">
236
+ <span class="failed_spec_name">has a bug we need to fix</span>
237
+ <div class="failure" id="failure_4">
238
+ <div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
239
+ <div class="backtrace"><pre>./failing_examples/mocking_example.rb:33:
240
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
241
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
242
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
243
+ <pre class="ruby"><code><span class="linenum">31</span>
244
+ <span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">has a bug we need to fix</span><span class="punct">&quot;</span> <span class="keyword">do</span>
245
+ <span class="offending"><span class="linenum">33</span> <span class="ident">pending</span> <span class="punct">&quot;</span><span class="string">here is the bug</span><span class="punct">&quot;</span> <span class="keyword">do</span></span>
246
+ <span class="linenum">34</span> <span class="comment"># Actually, no. It's fixed. This will fail because it passes :-)</span>
247
+ <span class="linenum">35</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">Bug</span><span class="punct">&quot;)</span></code></pre>
248
+ </div>
249
+ </dd>
250
+ </dl>
251
+ </div>
252
+ <div class="example_group">
253
+ <dl>
254
+ <dt id="example_group_2">Running specs with --diff</dt>
255
+ <script type="text/javascript">makeRed('example_group_2');</script>
256
+ <script type="text/javascript">moveProgressBar('35.2');</script>
257
+ <dd class="spec failed">
258
+ <span class="failed_spec_name">should print diff of different strings</span>
259
+ <div class="failure" id="failure_5">
260
+ <div class="message"><pre>expected: &quot;RSpec is a\nbehaviour driven development\nframework for Ruby\n&quot;,
261
+ got: &quot;RSpec is a\nbehavior driven development\nframework for Ruby\n&quot; (using ==)
262
+ Diff:
263
+ @@ -1,4 +1,4 @@
264
+ RSpec is a
265
+ -behavior driven development
266
+ +behaviour driven development
267
+ framework for Ruby
268
+ </pre></div>
269
+ <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:13:
270
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
271
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
272
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
273
+ <pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
274
+ <span class="linenum">12</span><span class="constant">EOF</span>
275
+ <span class="offending"><span class="linenum">13</span> <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
276
+ <span class="linenum">14</span> <span class="keyword">end</span></code></pre>
277
+ </div>
278
+ </dd>
279
+ <script type="text/javascript">moveProgressBar('41.1');</script>
280
+ <dd class="spec failed">
281
+ <span class="failed_spec_name">should print diff of different objects' pretty representation</span>
282
+ <div class="failure" id="failure_6">
283
+ <div class="message"><pre>expected &lt;Animal
284
+ name=bob,
285
+ species=tortoise
286
+ &gt;
287
+ , got &lt;Animal
288
+ name=bob,
289
+ species=giraffe
290
+ &gt;
291
+ (using .eql?)
292
+ Diff:
293
+ @@ -1,5 +1,5 @@
294
+ &lt;Animal
295
+ name=bob,
296
+ -species=giraffe
297
+ +species=tortoise
298
+ &gt;
299
+ </pre></div>
300
+ <div class="backtrace"><pre>./failing_examples/diffing_spec.rb:34:
301
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:17:
302
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:in `chdir'
303
+ ./spec/spec/runner/formatter/html_formatter_spec.rb:13:</pre></div>
304
+ <pre class="ruby"><code><span class="linenum">32</span> <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">giraffe</span><span class="punct">&quot;</span>
305
+ <span class="linenum">33</span> <span class="ident">actual</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">tortoise</span><span class="punct">&quot;</span>
306
+ <span class="offending"><span class="linenum">34</span> <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
307
+ <span class="linenum">35</span> <span class="keyword">end</span>
308
+ <span class="linenum">36</span><span class="keyword">end</span></code></pre>
309
+ </div>
310
+ </dd>
311
+ </dl>
312
+ </div>
313
+ <div class="example_group">
314
+ <dl>
315
+ <dt id="example_group_3">A consumer of a stub</dt>
316
+ <script type="text/javascript">moveProgressBar('47.0');</script>
317
+ <dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
318
+ </dl>
319
+ </div>
320
+ <div class="example_group">
321
+ <dl>
322
+ <dt id="example_group_4">A stubbed method on a class</dt>
323
+ <script type="text/javascript">moveProgressBar('52.9');</script>
324
+ <dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
325
+ <script type="text/javascript">moveProgressBar('58.8');</script>
326
+ <dd class="spec passed"><span class="passed_spec_name">should revert to the original method after each spec</span></dd>
327
+ <script type="text/javascript">moveProgressBar('64.7');</script>
328
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
329
+ </dl>
330
+ </div>
331
+ <div class="example_group">
332
+ <dl>
333
+ <dt id="example_group_5">A mock</dt>
334
+ <script type="text/javascript">moveProgressBar('70.5');</script>
335
+ <dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
336
+ <script type="text/javascript">moveProgressBar('76.4');</script>
337
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock</span></dd>
338
+ <script type="text/javascript">moveProgressBar('82.3');</script>
339
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
340
+ </dl>
341
+ </div>
342
+ <div class="example_group">
343
+ <dl>
344
+ <dt id="example_group_6">pending example (using pending method)</dt>
345
+ <script type="text/javascript">makeYellow('example_group_6');</script>
346
+ <script type="text/javascript">moveProgressBar('88.2');</script>
347
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
348
+ </dl>
349
+ </div>
350
+ <div class="example_group">
351
+ <dl>
352
+ <dt id="example_group_7">pending example (with no block)</dt>
353
+ <script type="text/javascript">makeYellow('example_group_7');</script>
354
+ <script type="text/javascript">moveProgressBar('94.1');</script>
355
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
356
+ </dl>
357
+ </div>
358
+ <div class="example_group">
359
+ <dl>
360
+ <dt id="example_group_8">pending example (with block for pending)</dt>
361
+ <script type="text/javascript">makeYellow('example_group_8');</script>
362
+ <script type="text/javascript">moveProgressBar('100.0');</script>
363
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
364
+ </dl>
365
+ </div>
366
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
367
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "17 examples, 6 failures, 3 pending";</script>
368
+ </div>
369
+ </div>
370
+ </body>
371
+ </html>