adhearsion 2.3.0 → 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|