adhearsion 2.3.0 → 2.3.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +3 -0
- data/LICENSE +1 -1
- data/README.markdown +2 -2
- data/adhearsion.gemspec +0 -1
- data/lib/adhearsion/punchblock_plugin/initializer.rb +1 -1
- data/lib/adhearsion/version.rb +1 -1
- data/spec/adhearsion/call_controller/dial_spec.rb +56 -57
- data/spec/adhearsion/call_controller/input_spec.rb +11 -16
- data/spec/adhearsion/call_controller/menu_dsl/menu_builder_spec.rb +6 -6
- data/spec/adhearsion/call_controller/menu_dsl/menu_spec.rb +10 -10
- data/spec/adhearsion/call_controller/output/async_player_spec.rb +3 -3
- data/spec/adhearsion/call_controller/output/player_spec.rb +1 -1
- data/spec/adhearsion/call_controller/output_spec.rb +2 -7
- data/spec/adhearsion/call_controller/record_spec.rb +11 -18
- data/spec/adhearsion/call_controller_spec.rb +35 -35
- data/spec/adhearsion/call_spec.rb +49 -35
- data/spec/adhearsion/calls_spec.rb +2 -2
- data/spec/adhearsion/console_spec.rb +22 -23
- data/spec/adhearsion/events_spec.rb +3 -3
- data/spec/adhearsion/initializer_spec.rb +33 -35
- data/spec/adhearsion/logging_spec.rb +3 -3
- data/spec/adhearsion/outbound_call_spec.rb +21 -19
- data/spec/adhearsion/plugin_spec.rb +9 -11
- data/spec/adhearsion/process_spec.rb +15 -14
- data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +37 -42
- data/spec/adhearsion/punchblock_plugin_spec.rb +2 -2
- data/spec/adhearsion/router/evented_route_spec.rb +1 -1
- data/spec/adhearsion/router/openended_route_spec.rb +5 -5
- data/spec/adhearsion/router/route_spec.rb +9 -9
- data/spec/adhearsion/router/unaccepting_route_spec.rb +6 -6
- data/spec/adhearsion/router_spec.rb +8 -8
- data/spec/adhearsion/statistics_spec.rb +1 -1
- data/spec/adhearsion_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -2
- data/spec/support/call_controller_test_helpers.rb +11 -8
- data/spec/support/initializer_stubs.rb +1 -1
- data/spec/support/punchblock_mocks.rb +3 -2
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb14c1255a1538690eeda472f1eb7ca04b8fc9d6
|
4
|
+
data.tar.gz: 1d44d386568202e8250ab989f2d3fa76d9ada702
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfb2b6fe75db610496304c8de2ccb4b81a004c8820d2998758a0a5b2f2742ea4a47f0082f847ad9da33f4f7247ab0396e7c550447f857326a976226210246e27
|
7
|
+
data.tar.gz: 2f3dc960267aead3512dcafcf44b5db6e239d35f58f74133f5d9592876941b2dbeef2af8f457a9b6b39291b22cc51672a99262862e8a5969bd92086ce3c20ff8
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# [develop](https://github.com/adhearsion/adhearsion)
|
2
2
|
|
3
|
+
# [2.3.1](https://github.com/adhearsion/adhearsion/compare/v2.3.0...v2.3.1) - [2013-03-28](https://rubygems.org/gems/adhearsion/versions/2.3.1)
|
4
|
+
* Bugfix: Fix a leftover Celluloid deprecation warning
|
5
|
+
|
3
6
|
# [2.3.0](https://github.com/adhearsion/adhearsion/compare/v2.2.1...v2.3.0) - [2013-03-25](https://rubygems.org/gems/adhearsion/versions/2.3.0)
|
4
7
|
* Feature: Allow specifying a renderer per invocation of `#menu`, `#interruptible_play`, `#ask`, `#play` and `#play!`
|
5
8
|
|
data/LICENSE
CHANGED
data/README.markdown
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Adhearsion is an open-source voice application development framework. Adhearsion users write applications atop the framework with Ruby and **call into their code**.
|
4
4
|
|
5
|
-
Adhearsion rests above a lower-level telephony platform, for example [Asterisk](http://asterisk.org) or [Voxeo PRISM](http://voxeolabs.com/prism/), and provides a framework for integrating with various resources, such as SQL, LDAP and XMPP (Jabber).
|
5
|
+
Adhearsion rests above a lower-level telephony platform, for example [Asterisk](http://asterisk.org), [FreeSWTICH](http://freeswitch.org) or [Voxeo PRISM](http://voxeolabs.com/prism/), and provides a framework for integrating with various resources, such as SQL, LDAP and XMPP (Jabber).
|
6
6
|
|
7
7
|
## Features
|
8
8
|
|
@@ -66,4 +66,4 @@ There is a pre-commit hook that runs encoding checks available in pre-commit. To
|
|
66
66
|
|
67
67
|
### Copyright
|
68
68
|
|
69
|
-
Copyright (c)
|
69
|
+
Copyright (c) 2013 Adhearsion Foundation Inc. MIT LICENSE (see LICENSE for details).
|
data/adhearsion.gemspec
CHANGED
@@ -38,7 +38,6 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.add_development_dependency 'aruba', "~> 0.4"
|
39
39
|
s.add_development_dependency 'ci_reporter'
|
40
40
|
s.add_development_dependency 'cucumber'
|
41
|
-
s.add_development_dependency 'flexmock'
|
42
41
|
s.add_development_dependency 'guard-cucumber'
|
43
42
|
s.add_development_dependency 'guard-rspec'
|
44
43
|
s.add_development_dependency 'rspec', ["~> 2.11"]
|
@@ -150,7 +150,7 @@ module Adhearsion
|
|
150
150
|
|
151
151
|
def dispatch_call_event(event)
|
152
152
|
if call = Adhearsion.active_calls[event.target_call_id]
|
153
|
-
call.deliver_message
|
153
|
+
call.async.deliver_message event
|
154
154
|
else
|
155
155
|
logger.error "Event received for inactive call #{event.target_call_id}: #{event.inspect}"
|
156
156
|
end
|
data/lib/adhearsion/version.rb
CHANGED
@@ -9,28 +9,29 @@ module Adhearsion
|
|
9
9
|
|
10
10
|
let(:to) { 'sip:foo@bar.com' }
|
11
11
|
let(:other_call_id) { new_uuid }
|
12
|
-
let(:other_mock_call) {
|
12
|
+
let(:other_mock_call) { OutboundCall.new }
|
13
13
|
|
14
14
|
let(:second_to) { 'sip:baz@bar.com' }
|
15
15
|
let(:second_other_call_id) { new_uuid }
|
16
|
-
let(:second_other_mock_call) {
|
16
|
+
let(:second_other_mock_call) { OutboundCall.new }
|
17
17
|
|
18
18
|
let(:mock_answered) { Punchblock::Event::Answered.new }
|
19
19
|
|
20
20
|
let(:latch) { CountDownLatch.new 1 }
|
21
21
|
|
22
|
+
before do
|
23
|
+
other_mock_call.stub id: other_call_id, write_command: true
|
24
|
+
second_other_mock_call.stub id: second_other_call_id, write_command: true
|
25
|
+
end
|
26
|
+
|
22
27
|
def mock_end(reason = :hangup)
|
23
|
-
|
28
|
+
Punchblock::Event::End.new.tap { |event| event.stub reason: reason }
|
24
29
|
end
|
25
30
|
|
26
31
|
describe "#dial" do
|
27
|
-
before do
|
28
|
-
other_mock_call
|
29
|
-
end
|
30
|
-
|
31
32
|
it "should dial the call to the correct endpoint and return a dial status object" do
|
32
|
-
|
33
|
-
|
33
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
34
|
+
other_mock_call.should_receive(:dial).with(to, :from => 'foo').once
|
34
35
|
dial_thread = Thread.new do
|
35
36
|
subject.dial(to, :from => 'foo').should be_a Dial::DialStatus
|
36
37
|
end
|
@@ -40,9 +41,9 @@ module Adhearsion
|
|
40
41
|
end
|
41
42
|
|
42
43
|
it "should default the caller ID to that of the original call" do
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
call.stub :from => 'sip:foo@bar.com'
|
45
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
46
|
+
other_mock_call.should_receive(:dial).with(to, :from => 'sip:foo@bar.com').once
|
46
47
|
dial_thread = Thread.new do
|
47
48
|
subject.dial to
|
48
49
|
end
|
@@ -63,9 +64,9 @@ module Adhearsion
|
|
63
64
|
|
64
65
|
describe "without a block" do
|
65
66
|
before do
|
66
|
-
|
67
|
-
|
68
|
-
|
67
|
+
other_mock_call.should_receive(:dial).once.with(to, options)
|
68
|
+
other_mock_call.should_receive(:hangup).once
|
69
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
69
70
|
end
|
70
71
|
|
71
72
|
it "blocks the original controller until the new call ends" do
|
@@ -89,8 +90,8 @@ module Adhearsion
|
|
89
90
|
end
|
90
91
|
|
91
92
|
it "joins the new call to the existing one on answer" do
|
92
|
-
|
93
|
-
|
93
|
+
call.should_receive(:answer).once
|
94
|
+
other_mock_call.should_receive(:join).once.with(call)
|
94
95
|
|
95
96
|
dial_in_thread
|
96
97
|
|
@@ -103,8 +104,8 @@ module Adhearsion
|
|
103
104
|
end
|
104
105
|
|
105
106
|
it "hangs up the new call when the dial unblocks" do
|
106
|
-
|
107
|
-
|
107
|
+
call.should_receive(:answer).once
|
108
|
+
other_mock_call.should_receive(:join).once.with(call)
|
108
109
|
|
109
110
|
dial_in_thread
|
110
111
|
|
@@ -150,8 +151,8 @@ module Adhearsion
|
|
150
151
|
|
151
152
|
context "when the call is answered and joined" do
|
152
153
|
it "has an overall dial status of :answer" do
|
153
|
-
|
154
|
-
|
154
|
+
call.should_receive(:answer).once
|
155
|
+
other_mock_call.should_receive(:join).once.with(call)
|
155
156
|
|
156
157
|
t = dial_in_thread
|
157
158
|
|
@@ -179,7 +180,7 @@ module Adhearsion
|
|
179
180
|
end
|
180
181
|
|
181
182
|
it "should not make any outbound calls" do
|
182
|
-
|
183
|
+
OutboundCall.should_receive(:new).never
|
183
184
|
expect { subject.dial to, options }.to raise_error
|
184
185
|
end
|
185
186
|
end
|
@@ -190,16 +191,14 @@ module Adhearsion
|
|
190
191
|
let(:second_other_options) { options }
|
191
192
|
|
192
193
|
before do
|
193
|
-
second_other_mock_call
|
194
|
-
|
195
|
-
flexmock(OutboundCall).should_receive(:new).and_return other_mock_call, second_other_mock_call
|
194
|
+
OutboundCall.should_receive(:new).and_return other_mock_call, second_other_mock_call
|
196
195
|
|
197
|
-
|
198
|
-
|
196
|
+
other_mock_call.should_receive(:dial).once.with(to, other_options)
|
197
|
+
other_mock_call.should_receive(:hangup).once
|
199
198
|
|
200
|
-
|
201
|
-
|
202
|
-
|
199
|
+
second_other_mock_call.should_receive(:dial).once.with(second_to, second_other_options)
|
200
|
+
second_other_mock_call.should_receive(:join).never
|
201
|
+
second_other_mock_call.should_receive(:hangup).once
|
203
202
|
end
|
204
203
|
|
205
204
|
def dial_in_thread
|
@@ -211,9 +210,9 @@ module Adhearsion
|
|
211
210
|
end
|
212
211
|
|
213
212
|
it "dials all parties and joins the first one to answer, hanging up the rest" do
|
214
|
-
|
215
|
-
|
216
|
-
|
213
|
+
call.should_receive(:answer).once
|
214
|
+
other_mock_call.should_receive(:join).once.with(call)
|
215
|
+
second_other_mock_call.should_receive(:hangup).once
|
217
216
|
|
218
217
|
t = dial_in_thread
|
219
218
|
|
@@ -236,9 +235,9 @@ module Adhearsion
|
|
236
235
|
end
|
237
236
|
|
238
237
|
it "unblocks when the joined call unjoins, allowing it to proceed further" do
|
239
|
-
|
240
|
-
|
241
|
-
|
238
|
+
call.should_receive(:answer).once
|
239
|
+
other_mock_call.should_receive(:join).once.with(call)
|
240
|
+
second_other_mock_call.should_receive(:hangup).once
|
242
241
|
|
243
242
|
t = dial_in_thread
|
244
243
|
|
@@ -349,9 +348,9 @@ module Adhearsion
|
|
349
348
|
|
350
349
|
context "when a call is answered and joined, and the other ends with an error" do
|
351
350
|
it "has an overall dial status of :answer" do
|
352
|
-
|
353
|
-
|
354
|
-
|
351
|
+
call.should_receive(:answer).once
|
352
|
+
other_mock_call.should_receive(:join).once.with(call)
|
353
|
+
second_other_mock_call.should_receive(:hangup).once
|
355
354
|
|
356
355
|
t = dial_in_thread
|
357
356
|
|
@@ -375,9 +374,9 @@ module Adhearsion
|
|
375
374
|
let(:timeout) { 3 }
|
376
375
|
|
377
376
|
it "should abort the dial after the specified timeout" do
|
378
|
-
|
379
|
-
|
380
|
-
|
377
|
+
other_mock_call.should_receive(:dial).once
|
378
|
+
other_mock_call.should_receive(:hangup).once
|
379
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
381
380
|
|
382
381
|
time = Time.now
|
383
382
|
|
@@ -397,11 +396,11 @@ module Adhearsion
|
|
397
396
|
|
398
397
|
describe "if someone answers before the timeout elapses" do
|
399
398
|
it "should not abort until the far end hangs up" do
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
399
|
+
other_mock_call.should_receive(:dial).once.with(to, hash_including(:timeout => timeout))
|
400
|
+
call.should_receive(:answer).once
|
401
|
+
other_mock_call.should_receive(:join).once.with(call)
|
402
|
+
other_mock_call.should_receive(:hangup).once
|
403
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
405
404
|
|
406
405
|
time = Time.now
|
407
406
|
|
@@ -451,15 +450,15 @@ module Adhearsion
|
|
451
450
|
let(:options) { {:confirm => confirmation_controller} }
|
452
451
|
|
453
452
|
before do
|
454
|
-
|
455
|
-
|
453
|
+
other_mock_call.should_receive(:dial).once
|
454
|
+
OutboundCall.should_receive(:new).and_return other_mock_call
|
456
455
|
end
|
457
456
|
|
458
457
|
context "with confirmation controller metadata specified" do
|
459
458
|
let(:options) { {:confirm => confirmation_controller, :confirm_metadata => {:foo => 'bar'}} }
|
460
459
|
|
461
460
|
it "should set the metadata on the controller" do
|
462
|
-
|
461
|
+
other_mock_call.should_receive(:hangup).twice.and_return do
|
463
462
|
other_mock_call << mock_end
|
464
463
|
end
|
465
464
|
other_mock_call['confirm'] = false
|
@@ -479,7 +478,7 @@ module Adhearsion
|
|
479
478
|
|
480
479
|
context "when an outbound call is answered" do
|
481
480
|
it "should execute the specified confirmation controller" do
|
482
|
-
|
481
|
+
other_mock_call.should_receive(:hangup).twice.and_return do
|
483
482
|
other_mock_call << mock_end
|
484
483
|
end
|
485
484
|
other_mock_call['confirm'] = false
|
@@ -495,10 +494,10 @@ module Adhearsion
|
|
495
494
|
end
|
496
495
|
|
497
496
|
it "should join the calls if the call is still active after execution of the call controller" do
|
498
|
-
|
497
|
+
other_mock_call.should_receive(:hangup).once
|
499
498
|
other_mock_call['confirm'] = true
|
500
|
-
|
501
|
-
|
499
|
+
call.should_receive(:answer).once
|
500
|
+
other_mock_call.should_receive(:join).once.with(call)
|
502
501
|
|
503
502
|
t = dial_in_thread
|
504
503
|
|
@@ -515,12 +514,12 @@ module Adhearsion
|
|
515
514
|
end
|
516
515
|
|
517
516
|
it "should not join the calls if the call is not active after execution of the call controller" do
|
518
|
-
|
517
|
+
other_mock_call.should_receive(:hangup).twice.and_return do
|
519
518
|
other_mock_call << mock_end
|
520
519
|
end
|
521
520
|
other_mock_call['confirm'] = false
|
522
|
-
|
523
|
-
|
521
|
+
call.should_receive(:answer).never
|
522
|
+
other_mock_call.should_receive(:join).never.with(call)
|
524
523
|
|
525
524
|
t = dial_in_thread
|
526
525
|
|
@@ -87,12 +87,7 @@ module Adhearsion
|
|
87
87
|
let(:utterance) { 'dtmf-5' }
|
88
88
|
|
89
89
|
def expect_component_complete_event
|
90
|
-
|
91
|
-
flexmock(complete_event).should_receive(:reason => flexmock(:utterance => utterance, :name => :input))
|
92
|
-
flexmock(Punchblock::Component::Input).new_instances do |input|
|
93
|
-
input.should_receive(:complete?).and_return(false)
|
94
|
-
input.should_receive(:complete_event).and_return(complete_event)
|
95
|
-
end
|
90
|
+
expect_input_component_complete_event utterance
|
96
91
|
end
|
97
92
|
|
98
93
|
it "sends the correct input component" do
|
@@ -103,7 +98,7 @@ module Adhearsion
|
|
103
98
|
|
104
99
|
it "returns the correct pressed digit" do
|
105
100
|
expect_component_complete_event
|
106
|
-
subject.should_receive(:execute_component_and_await_completion).once.with(Punchblock::Component::Input).and_return input_component
|
101
|
+
subject.should_receive(:execute_component_and_await_completion).once.with(kind_of(Punchblock::Component::Input)).and_return input_component
|
107
102
|
subject.wait_for_digit(timeout).should be == '5'
|
108
103
|
end
|
109
104
|
|
@@ -112,7 +107,7 @@ module Adhearsion
|
|
112
107
|
|
113
108
|
it "returns the correct pressed digit" do
|
114
109
|
expect_component_complete_event
|
115
|
-
subject.should_receive(:execute_component_and_await_completion).once.with(Punchblock::Component::Input).and_return input_component
|
110
|
+
subject.should_receive(:execute_component_and_await_completion).once.with(kind_of(Punchblock::Component::Input)).and_return input_component
|
116
111
|
subject.wait_for_digit(timeout).should be == '5'
|
117
112
|
end
|
118
113
|
end
|
@@ -130,13 +125,13 @@ module Adhearsion
|
|
130
125
|
end # wait_for_digit
|
131
126
|
|
132
127
|
describe "#jump_to" do
|
133
|
-
let(:match_object) {
|
128
|
+
let(:match_object) { Class.new }
|
134
129
|
let(:overrides) { Hash.new(:extension => "1") }
|
135
130
|
let(:block) { Proc.new {} }
|
136
131
|
|
137
132
|
it "calls instance_exec if the match object has a block" do
|
138
|
-
match_object.
|
139
|
-
subject.should_receive(:instance_exec).with(overrides[:extension], block)
|
133
|
+
match_object.stub(:block => block)
|
134
|
+
subject.should_receive(:instance_exec).with(overrides[:extension], &block)
|
140
135
|
subject.jump_to(match_object, overrides)
|
141
136
|
end
|
142
137
|
|
@@ -167,8 +162,8 @@ module Adhearsion
|
|
167
162
|
let(:response) { '1234' }
|
168
163
|
|
169
164
|
before do
|
170
|
-
|
171
|
-
|
165
|
+
menu_instance.stub :status => status, :result => response
|
166
|
+
MenuDSL::Menu.should_receive(:new).and_return(menu_instance)
|
172
167
|
end
|
173
168
|
|
174
169
|
it "exits the function if MenuResultDone" do
|
@@ -272,8 +267,8 @@ module Adhearsion
|
|
272
267
|
let(:result_found) { MenuDSL::Menu::MenuResultFound.new(:match_object, :new_extension) }
|
273
268
|
|
274
269
|
before do
|
275
|
-
|
276
|
-
|
270
|
+
menu_instance
|
271
|
+
MenuDSL::Menu.should_receive(:new).and_return(menu_instance)
|
277
272
|
end
|
278
273
|
|
279
274
|
it "exits the function if MenuResultDone" do
|
@@ -298,7 +293,7 @@ module Adhearsion
|
|
298
293
|
end
|
299
294
|
|
300
295
|
it "plays audio, then executes timeout hook if input times out" do
|
301
|
-
menu_instance.should_receive(:continue).and_return(result_get_another_or_timeout
|
296
|
+
menu_instance.should_receive(:continue).and_return(result_get_another_or_timeout)
|
302
297
|
subject.should_receive(:play_sound_files_for_menu).once.with(menu_instance, sound_files).and_return(nil)
|
303
298
|
result = subject.ask sound_files
|
304
299
|
result.menu.should be menu_instance
|
@@ -11,7 +11,7 @@ module Adhearsion
|
|
11
11
|
|
12
12
|
describe "#build" do
|
13
13
|
it "sets the context and instance_eval's the block" do
|
14
|
-
|
14
|
+
subject.should_receive(:foo).with(:bar)
|
15
15
|
subject.build do
|
16
16
|
foo :bar
|
17
17
|
end
|
@@ -34,18 +34,18 @@ module Adhearsion
|
|
34
34
|
end
|
35
35
|
|
36
36
|
it "creates a pattern based on a payload" do
|
37
|
-
|
37
|
+
MenuDSL::MatchCalculator.should_receive(:build_with_pattern).with("1", Object)
|
38
38
|
subject.match "1", Object
|
39
39
|
end
|
40
40
|
|
41
41
|
it "creates a pattern based on a block" do
|
42
|
-
|
42
|
+
MenuDSL::MatchCalculator.should_receive(:build_with_pattern).with("1", nil, &match_block)
|
43
43
|
subject.match("1", &match_block)
|
44
44
|
end
|
45
45
|
|
46
46
|
it "creates multiple patterns if multiple arguments are passed in" do
|
47
|
-
|
48
|
-
|
47
|
+
MenuDSL::MatchCalculator.should_receive(:build_with_pattern).with(1, Object)
|
48
|
+
MenuDSL::MatchCalculator.should_receive(:build_with_pattern).with(2, Object)
|
49
49
|
subject.match(1, 2, Object)
|
50
50
|
end
|
51
51
|
end#match
|
@@ -68,7 +68,7 @@ module Adhearsion
|
|
68
68
|
let(:expected_pattern) { MenuDSL::MatchCalculator.build_with_pattern("1", Object) }
|
69
69
|
|
70
70
|
it "returns the generated patterns" do
|
71
|
-
|
71
|
+
MenuDSL::MatchCalculator.should_receive(:build_with_pattern).with("1", Object).at_least(:once).and_return(expected_pattern)
|
72
72
|
subject.match("1", Object)
|
73
73
|
subject.weighted_match_calculators.should be == [expected_pattern]
|
74
74
|
end
|
@@ -153,8 +153,8 @@ module Adhearsion
|
|
153
153
|
its(:builder) { should be_a MenuBuilder }
|
154
154
|
|
155
155
|
it "should evaluate the block on the builder object" do
|
156
|
-
mock_menu_builder =
|
157
|
-
|
156
|
+
mock_menu_builder = MenuBuilder.new
|
157
|
+
MenuBuilder.should_receive(:new).and_return(mock_menu_builder)
|
158
158
|
mock_menu_builder.should_receive(:match).once.with(1)
|
159
159
|
Menu.new { match 1 }
|
160
160
|
end
|
@@ -212,8 +212,8 @@ module Adhearsion
|
|
212
212
|
|
213
213
|
describe "#execute_invalid_hook" do
|
214
214
|
it "calls the builder's execute_hook_for with :invalid" do
|
215
|
-
mock_menu_builder =
|
216
|
-
|
215
|
+
mock_menu_builder = MenuBuilder.new
|
216
|
+
MenuBuilder.should_receive(:new).and_return(mock_menu_builder)
|
217
217
|
mock_menu_builder.should_receive(:execute_hook_for).with(:invalid, "")
|
218
218
|
menu_instance = Menu.new
|
219
219
|
menu_instance.execute_invalid_hook
|
@@ -222,8 +222,8 @@ module Adhearsion
|
|
222
222
|
|
223
223
|
describe "#execute_timeout_hook" do
|
224
224
|
it "calls the builder's execute_hook_for with :timeout" do
|
225
|
-
mock_menu_builder =
|
226
|
-
|
225
|
+
mock_menu_builder = MenuBuilder.new
|
226
|
+
MenuBuilder.should_receive(:new).and_return(mock_menu_builder)
|
227
227
|
mock_menu_builder.should_receive(:execute_hook_for).with(:timeout, "")
|
228
228
|
menu_instance = Menu.new
|
229
229
|
menu_instance.execute_timeout_hook
|
@@ -232,8 +232,8 @@ module Adhearsion
|
|
232
232
|
|
233
233
|
describe "#execute_failure_hook" do
|
234
234
|
it "calls the builder's execute_hook_for with :failure" do
|
235
|
-
mock_menu_builder =
|
236
|
-
|
235
|
+
mock_menu_builder = MenuBuilder.new
|
236
|
+
MenuBuilder.should_receive(:new).and_return(mock_menu_builder)
|
237
237
|
mock_menu_builder.should_receive(:execute_hook_for).with(:failure, "")
|
238
238
|
menu_instance = Menu.new
|
239
239
|
menu_instance.execute_failure_hook
|
@@ -242,8 +242,8 @@ module Adhearsion
|
|
242
242
|
|
243
243
|
describe "#execute_validator_hook" do
|
244
244
|
it "calls the builder's execute_hook_for with :validator" do
|
245
|
-
mock_menu_builder =
|
246
|
-
|
245
|
+
mock_menu_builder = MenuBuilder.new
|
246
|
+
MenuBuilder.should_receive(:new).and_return(mock_menu_builder)
|
247
247
|
mock_menu_builder.should_receive(:execute_hook_for).with(:validator, "")
|
248
248
|
menu_instance = Menu.new
|
249
249
|
menu_instance.execute_validator_hook
|