dchelimsky-rspec 1.1.11.7 → 1.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/History.txt +1 -1
  2. data/features/support/helpers/story_helper.rb +0 -3
  3. data/lib/spec/example/example_group_methods.rb +1 -1
  4. data/lib/spec/matchers.rb +1 -1
  5. data/lib/spec/mocks.rb +3 -3
  6. data/lib/spec/mocks/argument_expectation.rb +14 -14
  7. data/lib/spec/mocks/framework.rb +1 -1
  8. data/lib/spec/mocks/message_expectation.rb +1 -1
  9. data/lib/spec/mocks/mock.rb +3 -4
  10. data/lib/spec/mocks/spec_methods.rb +10 -1
  11. data/lib/spec/version.rb +2 -2
  12. data/rspec.gemspec +3 -3
  13. data/spec/spec/mocks/hash_including_matcher_spec.rb +4 -4
  14. data/spec/spec/mocks/hash_not_including_matcher_spec.rb +3 -3
  15. data/spec/spec/mocks/mock_spec.rb +25 -0
  16. data/spec/spec/runner/reporter_spec.rb +1 -1
  17. data/spec/spec_helper.rb +0 -1
  18. metadata +3 -3
  19. data/lib/spec/mocks/argument_constraints.rb +0 -237
  20. data/lib/spec/runner/formatter/story/html_formatter.rb +0 -174
  21. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -194
  22. data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +0 -42
  23. data/lib/spec/story.rb +0 -10
  24. data/lib/spec/story/extensions.rb +0 -3
  25. data/lib/spec/story/extensions/main.rb +0 -86
  26. data/lib/spec/story/extensions/regexp.rb +0 -9
  27. data/lib/spec/story/extensions/string.rb +0 -9
  28. data/lib/spec/story/given_scenario.rb +0 -14
  29. data/lib/spec/story/runner.rb +0 -57
  30. data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
  31. data/lib/spec/story/runner/scenario_collector.rb +0 -18
  32. data/lib/spec/story/runner/scenario_runner.rb +0 -54
  33. data/lib/spec/story/runner/story_mediator.rb +0 -137
  34. data/lib/spec/story/runner/story_parser.rb +0 -247
  35. data/lib/spec/story/runner/story_runner.rb +0 -74
  36. data/lib/spec/story/scenario.rb +0 -14
  37. data/lib/spec/story/step.rb +0 -70
  38. data/lib/spec/story/step_group.rb +0 -89
  39. data/lib/spec/story/step_mother.rb +0 -38
  40. data/lib/spec/story/story.rb +0 -39
  41. data/lib/spec/story/world.rb +0 -124
  42. data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
  43. data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -95
  44. data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -145
  45. data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -135
  46. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -600
  47. data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +0 -82
  48. data/spec/spec/story/builders.rb +0 -46
  49. data/spec/spec/story/extensions/main_spec.rb +0 -161
  50. data/spec/spec/story/extensions_spec.rb +0 -14
  51. data/spec/spec/story/given_scenario_spec.rb +0 -27
  52. data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -90
  53. data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
  54. data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
  55. data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
  56. data/spec/spec/story/runner/story_parser_spec.rb +0 -401
  57. data/spec/spec/story/runner/story_runner_spec.rb +0 -294
  58. data/spec/spec/story/runner_spec.rb +0 -93
  59. data/spec/spec/story/scenario_spec.rb +0 -18
  60. data/spec/spec/story/step_group_spec.rb +0 -157
  61. data/spec/spec/story/step_mother_spec.rb +0 -84
  62. data/spec/spec/story/step_spec.rb +0 -272
  63. data/spec/spec/story/story_helper.rb +0 -2
  64. data/spec/spec/story/story_spec.rb +0 -84
  65. data/spec/spec/story/world_spec.rb +0 -423
  66. data/story_server/prototype/javascripts/builder.js +0 -136
  67. data/story_server/prototype/javascripts/controls.js +0 -972
  68. data/story_server/prototype/javascripts/dragdrop.js +0 -976
  69. data/story_server/prototype/javascripts/effects.js +0 -1117
  70. data/story_server/prototype/javascripts/prototype.js +0 -4140
  71. data/story_server/prototype/javascripts/rspec.js +0 -149
  72. data/story_server/prototype/javascripts/scriptaculous.js +0 -58
  73. data/story_server/prototype/javascripts/slider.js +0 -276
  74. data/story_server/prototype/javascripts/sound.js +0 -55
  75. data/story_server/prototype/javascripts/unittest.js +0 -568
  76. data/story_server/prototype/lib/server.rb +0 -24
  77. data/story_server/prototype/stories.html +0 -176
  78. data/story_server/prototype/stylesheets/rspec.css +0 -136
  79. data/story_server/prototype/stylesheets/test.css +0 -90
@@ -1,294 +0,0 @@
1
- require File.dirname(__FILE__) + '/../story_helper'
2
-
3
- module Spec
4
- module Story
5
- module Runner
6
- describe StoryRunner do
7
- it 'should collect all the stories' do
8
- # given
9
- story_runner = StoryRunner.new(stub('scenario_runner'))
10
-
11
- # when
12
- story_runner.Story 'title1', 'narrative1' do end
13
- story_runner.Story 'title2', 'narrative2' do end
14
- stories = story_runner.stories
15
-
16
- # then
17
- story_runner.should have(2).stories
18
- stories.first.title.should == 'title1'
19
- stories.first.narrative.should == 'narrative1'
20
- stories.last.title.should == 'title2'
21
- stories.last.narrative.should == 'narrative2'
22
- end
23
-
24
- it 'should gather all the scenarios in the stories' do
25
- # given
26
- story_runner = StoryRunner.new(stub('scenario_runner'))
27
-
28
- # when
29
- story_runner.Story "story1", "narrative1" do
30
- Scenario "scenario1" do end
31
- Scenario "scenario2" do end
32
- end
33
- story_runner.Story "story2", "narrative2" do
34
- Scenario "scenario3" do end
35
- end
36
- scenarios = story_runner.scenarios
37
-
38
- # then
39
- story_runner.should have(3).scenarios
40
- scenarios[0].name.should == 'scenario1'
41
- scenarios[1].name.should == 'scenario2'
42
- scenarios[2].name.should == 'scenario3'
43
- end
44
-
45
- # captures worlds passed into a ScenarioRunner
46
- class ScenarioWorldCatcher
47
- attr_accessor :worlds
48
- def run(scenario, world)
49
- (@worlds ||= []) << world
50
- end
51
- end
52
-
53
- it 'should run each scenario in a separate object' do
54
- # given
55
- scenario_world_catcher = ScenarioWorldCatcher.new
56
- story_runner = StoryRunner.new(scenario_world_catcher)
57
- story_runner.Story 'story', 'narrative' do
58
- Scenario 'scenario1' do end
59
- Scenario 'scenario2' do end
60
- end
61
-
62
- # when
63
- story_runner.run_stories
64
-
65
- # then
66
- worlds = scenario_world_catcher.worlds
67
- scenario_world_catcher.should have(2).worlds
68
- worlds[0].should_not == worlds[1]
69
- end
70
-
71
- it "should return false if the scenario runner returns false ever" do
72
- #given
73
- stub_scenario_runner = stub_everything
74
- story_runner = StoryRunner.new(stub_scenario_runner)
75
- story_runner.Story 'story', 'narrative' do
76
- Scenario 'scenario1' do end
77
- Scenario 'scenario2' do end
78
- end
79
-
80
- # expect
81
- stub_scenario_runner.should_receive(:run).once.and_return(false,true)
82
-
83
- # when
84
- success = story_runner.run_stories
85
-
86
- #then
87
- success.should == false
88
- end
89
-
90
- it "should return true if the scenario runner returns true for all scenarios" do
91
- #given
92
- stub_scenario_runner = stub_everything
93
- story_runner = StoryRunner.new(stub_scenario_runner)
94
- story_runner.Story 'story', 'narrative' do
95
- Scenario 'scenario1' do end
96
- Scenario 'scenario2' do end
97
- end
98
-
99
- # expect
100
- stub_scenario_runner.should_receive(:run).once.and_return(true,true)
101
-
102
- # when
103
- success = story_runner.run_stories
104
-
105
- #then
106
- success.should == true
107
- end
108
-
109
- it 'should use the provided world creator to create worlds' do
110
- # given
111
- stub_scenario_runner = stub_everything
112
- mock_world_creator = mock('world creator')
113
- story_runner = StoryRunner.new(stub_scenario_runner, mock_world_creator)
114
- story_runner.Story 'story', 'narrative' do
115
- Scenario 'scenario1' do end
116
- Scenario 'scenario2' do end
117
- end
118
-
119
- # expect
120
- mock_world_creator.should_receive(:create).twice
121
-
122
- # when
123
- story_runner.run_stories
124
-
125
- # then
126
- end
127
-
128
- it 'should notify listeners of the scenario count when the run starts' do
129
- # given
130
- story_runner = StoryRunner.new(stub_everything)
131
- mock_listener1 = stub_everything('listener1')
132
- mock_listener2 = stub_everything('listener2')
133
- story_runner.add_listener(mock_listener1)
134
- story_runner.add_listener(mock_listener2)
135
-
136
- story_runner.Story 'story1', 'narrative1' do
137
- Scenario 'scenario1' do end
138
- end
139
- story_runner.Story 'story2', 'narrative2' do
140
- Scenario 'scenario2' do end
141
- Scenario 'scenario3' do end
142
- end
143
-
144
- # expect
145
- mock_listener1.should_receive(:run_started).with(3)
146
- mock_listener2.should_receive(:run_started).with(3)
147
-
148
- # when
149
- story_runner.run_stories
150
-
151
- # then
152
- end
153
-
154
- it 'should notify listeners when a story starts' do
155
- # given
156
- story_runner = StoryRunner.new(stub_everything)
157
- mock_listener1 = stub_everything('listener1')
158
- mock_listener2 = stub_everything('listener2')
159
- story_runner.add_listener(mock_listener1)
160
- story_runner.add_listener(mock_listener2)
161
-
162
- story_runner.Story 'story1', 'narrative1' do
163
- Scenario 'scenario1' do end
164
- end
165
- story_runner.Story 'story2', 'narrative2' do
166
- Scenario 'scenario2' do end
167
- Scenario 'scenario3' do end
168
- end
169
-
170
- # expect
171
- mock_listener1.should_receive(:story_started).with('story1', 'narrative1')
172
- mock_listener1.should_receive(:story_ended).with('story1', 'narrative1')
173
- mock_listener2.should_receive(:story_started).with('story2', 'narrative2')
174
- mock_listener2.should_receive(:story_ended).with('story2', 'narrative2')
175
-
176
- # when
177
- story_runner.run_stories
178
-
179
- # then
180
- end
181
-
182
- it 'should notify listeners when the run ends' do
183
- # given
184
- story_runner = StoryRunner.new(stub_everything)
185
- mock_listener1 = stub_everything('listener1')
186
- mock_listener2 = stub_everything('listener2')
187
- story_runner.add_listener mock_listener1
188
- story_runner.add_listener mock_listener2
189
- story_runner.Story 'story1', 'narrative1' do
190
- Scenario 'scenario1' do end
191
- end
192
-
193
- # expect
194
- mock_listener1.should_receive(:run_ended)
195
- mock_listener2.should_receive(:run_ended)
196
-
197
- # when
198
- story_runner.run_stories
199
-
200
- # then
201
- end
202
-
203
- it 'should run a story in an instance of a specified class' do
204
- # given
205
- scenario_world_catcher = ScenarioWorldCatcher.new
206
- story_runner = StoryRunner.new(scenario_world_catcher)
207
- story_runner.Story 'title', 'narrative', :type => String do
208
- Scenario 'scenario' do end
209
- end
210
-
211
- # when
212
- story_runner.run_stories
213
-
214
- # then
215
- scenario_world_catcher.worlds[0].should be_kind_of(String)
216
- scenario_world_catcher.worlds[0].should be_kind_of(World)
217
- end
218
-
219
- it 'should pass initialization params through to the constructed instance' do
220
- # given
221
- scenario_world_catcher = ScenarioWorldCatcher.new
222
- story_runner = StoryRunner.new(scenario_world_catcher)
223
- story_runner.Story 'title', 'narrative', :type => Array, :args => [3] do
224
- Scenario 'scenario' do end
225
- end
226
-
227
- # when
228
- story_runner.run_stories
229
-
230
- # then
231
- scenario_world_catcher.worlds[0].should be_kind_of(Array)
232
- scenario_world_catcher.worlds[0].size.should == 3
233
- end
234
-
235
- it 'should find a scenario in the current story by name' do
236
- # given
237
- story_runner = StoryRunner.new(ScenarioRunner.new)
238
- scenario = nil
239
-
240
- story_runner.Story 'title', 'narrative' do
241
- Scenario 'first scenario' do
242
- end
243
- Scenario 'second scenario' do
244
- scenario = StoryRunner.scenario_from_current_story 'first scenario'
245
- end
246
- end
247
-
248
- # when
249
- story_runner.run_stories
250
-
251
- # then
252
- scenario.name.should == 'first scenario'
253
- end
254
-
255
- it "should clean the steps between stories" do
256
- #given
257
- story_runner = StoryRunner.new(ScenarioRunner.new)
258
- result = mock 'result'
259
-
260
- step1 = Step.new('step') do
261
- result.one
262
- end
263
- steps1 = StepGroup.new
264
- steps1.add :when, step1
265
-
266
- story_runner.Story 'title', 'narrative', :steps_for => steps1 do
267
- Scenario 'first scenario' do
268
- When 'step'
269
- end
270
- end
271
-
272
- step2 = Step.new('step') do
273
- result.two
274
- end
275
- steps2 = StepGroup.new
276
- steps2.add :when, step2
277
-
278
- story_runner.Story 'title2', 'narrative', :steps_for => steps2 do
279
- Scenario 'second scenario' do
280
- When 'step'
281
- end
282
- end
283
-
284
- #then
285
- result.should_receive(:one)
286
- result.should_receive(:two)
287
-
288
- #when
289
- story_runner.run_stories
290
- end
291
- end
292
- end
293
- end
294
- end
@@ -1,93 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
- require 'spec/runner/formatter/story/plain_text_formatter'
3
- require 'spec/runner/formatter/story/html_formatter'
4
-
5
- module Spec
6
- module Story
7
- describe Runner, "module" do
8
- before(:each) do
9
- @world_creator = World.dup
10
- @runner_module = Runner.dup
11
- @runner_module.instance_eval {@story_runner = nil}
12
- @runner_module.stub!(:register_exit_hook)
13
- end
14
-
15
- def create_options(args=[])
16
- Spec::Runner::OptionParser.parse(args, StringIO.new, StringIO.new)
17
- end
18
-
19
- it 'should wire up a singleton StoryRunner' do
20
- @runner_module.story_runner.should_not be_nil
21
- end
22
-
23
- it 'should set its options based on ARGV' do
24
- # given
25
- @runner_module.should_receive(:run_options).and_return(
26
- create_options(['--dry-run'])
27
- )
28
-
29
- # when
30
- options = @runner_module.run_options
31
-
32
- # then
33
- options.dry_run.should be_true
34
- end
35
-
36
- describe "initialization" do
37
-
38
- before(:each) do
39
- # given
40
- @story_runner = mock('story runner', :null_object => true)
41
- @scenario_runner = mock('scenario runner', :null_object => true)
42
- @world_creator = mock('world', :null_object => true)
43
-
44
- @runner_module.stub!(:world_creator).and_return(@world_creator)
45
- @runner_module.stub!(:create_story_runner).and_return(@story_runner)
46
- @runner_module.stub!(:scenario_runner).and_return(@scenario_runner)
47
- end
48
-
49
- it 'should add a reporter to the runner classes' do
50
- @runner_module.should_receive(:run_options).and_return(
51
- create_options
52
- )
53
-
54
- # expect
55
- @world_creator.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
56
- @story_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
57
- @scenario_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
58
-
59
- # when
60
- @runner_module.story_runner
61
- end
62
-
63
- it 'should add a documenter to the runner classes if one is specified' do
64
-
65
- @runner_module.should_receive(:run_options).and_return(
66
- create_options(["--format","html"])
67
- )
68
-
69
- # expect
70
- @world_creator.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
71
- @story_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
72
- @scenario_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
73
-
74
- # when
75
- @runner_module.story_runner
76
- end
77
-
78
- it 'should add any registered listener to the runner classes' do
79
- # given
80
- listener = Object.new
81
-
82
- # expect
83
- @world_creator.should_receive(:add_listener).with(listener)
84
- @story_runner.should_receive(:add_listener).with(listener)
85
- @scenario_runner.should_receive(:add_listener).with(listener)
86
-
87
- # when
88
- @runner_module.register_listener listener
89
- end
90
- end
91
- end
92
- end
93
- end
@@ -1,18 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- module Spec
4
- module Story
5
- describe Scenario do
6
- it 'should not raise an error if no body is supplied' do
7
- # given
8
- story = StoryBuilder.new.to_story
9
-
10
- # when
11
- error = exception_from { Scenario.new story, 'name' }
12
-
13
- # then
14
- error.should be_nil
15
- end
16
- end
17
- end
18
- end
@@ -1,157 +0,0 @@
1
- require File.dirname(__FILE__) + '/story_helper'
2
-
3
- module Spec
4
- module Story
5
- describe StepGroup do
6
- before(:each) do
7
- @step_group = StepGroup.new
8
- end
9
-
10
- it "should not find a matcher if empty" do
11
- @step_group.find(:given, "this and that").should be_nil
12
- end
13
-
14
- it "should create a given_scenario matcher" do
15
- step = @step_group.given_scenario("this and that") {}
16
- @step_group.find(:given_scenario, "this and that").should_not be_nil
17
- @step_group.find(:given_scenario, "this and that").should equal(step)
18
- end
19
-
20
- it "should create a given matcher" do
21
- step = @step_group.given("this and that") {}
22
- @step_group.find(:given, "this and that").should equal(step)
23
- end
24
-
25
- it "should create a when matcher" do
26
- step = @step_group.when("this and that") {}
27
- @step_group.find(:when, "this and that").should equal(step)
28
- end
29
-
30
- it "should create a them matcher" do
31
- step = @step_group.then("this and that") {}
32
- @step_group.find(:then, "this and that").should equal(step)
33
- end
34
-
35
- it "should add a matcher object" do
36
- step = Step.new("this and that") {}
37
- @step_group.add(:given, step)
38
- @step_group.find(:given, "this and that").should equal(step)
39
- end
40
-
41
- it "should add it matchers to another StepGroup (with one given)" do
42
- source = StepGroup.new
43
- target = StepGroup.new
44
- step = source.given("this and that") {}
45
- source.add_to target
46
- target.find(:given, "this and that").should equal(step)
47
- end
48
-
49
- it "should add it matchers to another StepGroup (with some of each type)" do
50
- source = StepGroup.new
51
- target = StepGroup.new
52
- given_scenario = source.given_scenario("1") {}
53
- given = source.given("1") {}
54
- when1 = source.when("1") {}
55
- when2 = source.when("2") {}
56
- then1 = source.then("1") {}
57
- then2 = source.then("2") {}
58
- then3 = source.then("3") {}
59
- source.add_to target
60
- target.find(:given_scenario, "1").should equal(given_scenario)
61
- target.find(:given, "1").should equal(given)
62
- target.find(:when, "1").should equal(when1)
63
- target.find(:when, "2").should equal(when2)
64
- target.find(:then, "1").should equal(then1)
65
- target.find(:then, "2").should equal(then2)
66
- target.find(:then, "3").should equal(then3)
67
- end
68
-
69
- it "should append another collection" do
70
- matchers_to_append = StepGroup.new
71
- step = matchers_to_append.given("this and that") {}
72
- @step_group << matchers_to_append
73
- @step_group.find(:given, "this and that").should equal(step)
74
- end
75
-
76
- it "should append several other collections" do
77
- matchers_to_append = StepGroup.new
78
- more_matchers_to_append = StepGroup.new
79
- first_matcher = matchers_to_append.given("this and that") {}
80
- second_matcher = more_matchers_to_append.given("and the other") {}
81
- @step_group << matchers_to_append
82
- @step_group << more_matchers_to_append
83
- @step_group.find(:given, "this and that").should equal(first_matcher)
84
- @step_group.find(:given, "and the other").should equal(second_matcher)
85
- end
86
-
87
- it "should yield itself on initialization" do
88
- begin
89
- $step_group_spec_step = nil
90
- matchers = StepGroup.new do |matchers|
91
- $step_group_spec_step = matchers.given("foo") {}
92
- end
93
- $step_group_spec_step.matches?("foo").should be_true
94
- ensure
95
- $step_group_spec_step = nil
96
- end
97
- end
98
-
99
- it "should support defaults" do
100
- class StepGroupSubclass < StepGroup
101
- steps do |add|
102
- add.given("foo") {}
103
- end
104
- end
105
- StepGroupSubclass.new.find(:given, "foo").should_not be_nil
106
- end
107
-
108
- it "should create a Given" do
109
- sub = Class.new(StepGroup).new
110
- step = sub.Given("foo") {}
111
- sub.find(:given, "foo").should == step
112
- end
113
-
114
- it "should create a When" do
115
- sub = Class.new(StepGroup).new
116
- step = sub.When("foo") {}
117
- sub.find(:when, "foo").should == step
118
- end
119
-
120
- it "should create a Then" do
121
- sub = Class.new(StepGroup).new
122
- step = sub.Then("foo") {}
123
- sub.find(:then, "foo").should == step
124
- end
125
-
126
- it "should create steps in a block" do
127
- sub = Class.new(StepGroup).new do
128
- Given("a given") {}
129
- When("a when") {}
130
- Then("a then") {}
131
- end
132
- sub.find(:given, "a given").should_not be_nil
133
- sub.find(:when, "a when").should_not be_nil
134
- sub.find(:then, "a then").should_not be_nil
135
- end
136
-
137
- it "should clear itself" do
138
- step = @step_group.given("this and that") {}
139
- @step_group.clear
140
- @step_group.find(:given, "this and that").should be_nil
141
- end
142
-
143
- it "should tell you when it is empty" do
144
- @step_group.should be_empty
145
- end
146
-
147
- it "should tell you when it is not empty" do
148
- @step_group.given("this and that") {}
149
- @step_group.should_not be_empty
150
- end
151
-
152
- it "should handle << nil" do
153
- @step_group << nil
154
- end
155
- end
156
- end
157
- end