Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F94319317
TwimlTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Dec 5, 19:27
Size
13 KB
Mime Type
text/x-php
Expires
Sat, Dec 7, 19:27 (2 d)
Engine
blob
Format
Raw Data
Handle
22741153
Attached To
rPH Phabricator
TwimlTest.php
View Options
<?php
use
\Mockery
as
m
;
require_once
'Twilio/Twiml.php'
;
class
TwimlTest
extends
PHPUnit_Framework_TestCase
{
function
tearDown
()
{
m
::
close
();
}
function
testEmptyResponse
()
{
$r
=
new
Services_Twilio_Twiml
();
$expected
=
'<Response></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
,
"Should be an empty response"
);
}
public
function
testSayBasic
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"Hello Monkey"
);
$expected
=
'<Response><Say>Hello Monkey</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayLoopThree
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"Hello Monkey"
,
array
(
"loop"
=>
3
));
$expected
=
'<Response><Say loop="3">Hello Monkey</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayLoopThreeWoman
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"Hello Monkey"
,
array
(
"loop"
=>
3
,
"voice"
=>
"woman"
));
$expected
=
'<Response><Say loop="3" voice="woman">'
.
'Hello Monkey</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayConvienceMethod
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"Hello Monkey"
,
array
(
"language"
=>
"fr"
));
$expected
=
'<Response><Say language="fr">'
.
'Hello Monkey</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayUTF8
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"é tü & må"
);
$expected
=
'<Response><Say>'
.
'é tü & må</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayNamedEntities
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"é tü & må"
);
$expected
=
'<Response><Say>'
.
'é tü & må</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSayNumericEntities
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
"é tü & må"
);
$expected
=
'<Response><Say>'
.
'é tü & må</Say></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testPlayBasic
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
play
(
"hello-monkey.mp3"
);
$expected
=
'<Response><Play>hello-monkey.mp3</Play></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testPlayLoopThree
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
play
(
"hello-monkey.mp3"
,
array
(
"loop"
=>
3
));
$expected
=
'<Response><Play loop="3">'
.
'hello-monkey.mp3</Play></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testPlayConvienceMethod
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
play
(
"hello-monkey.mp3"
,
array
(
"loop"
=>
3
));
$expected
=
'<Response><Play loop="3">'
.
'hello-monkey.mp3</Play></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Record Verb
public
function
testRecord
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
();
$expected
=
'<Response><Record></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRecordActionMethod
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
(
array
(
"action"
=>
"example.com"
,
"method"
=>
"GET"
));
$expected
=
'<Response><Record action="example.com" '
.
'method="GET"></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testBooleanBecomesString
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
(
array
(
"transcribe"
=>
true
));
$expected
=
'<Response><Record transcribe="true" '
.
'></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRecordMaxLengthKeyTimeout
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
(
array
(
"timeout"
=>
4
,
"finishOnKey"
=>
"#"
,
"maxLength"
=>
30
));
$expected
=
'<Response><Record timeout="4" finishOnKey="#" '
.
'maxLength="30"></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRecordConvienceMethod
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
(
array
(
"transcribeCallback"
=>
"example.com"
));
$expected
=
'<Response><Record '
.
'transcribeCallback="example.com"></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRecordAddAttribute
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
record
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Record foo="bar"></Record></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Redirect Verb
public
function
testRedirect
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
redirect
();
$expected
=
'<Response><Redirect></Redirect></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testAmpersandEscaping
()
{
$r
=
new
Services_Twilio_Twiml
();
$test_amp
=
"test&two&three"
;
$r
->
redirect
(
$test_amp
);
$expected
=
'<Response><Redirect>'
.
'test&two&three</Redirect></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRedirectConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
redirect
();
$expected
=
'<Response><Redirect></Redirect></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testRedirectAddAttribute
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
redirect
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Redirect foo="bar"></Redirect></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Hangup Verb
public
function
testHangup
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
hangup
();
$expected
=
'<Response><Hangup></Hangup></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testHangupConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
hangup
();
$expected
=
'<Response><Hangup></Hangup></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testHangupAddAttribute
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
hangup
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Hangup foo="bar"></Hangup></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Pause Verb
public
function
testPause
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
pause
();
$expected
=
'<Response><Pause></Pause></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testPauseConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
pause
();
$expected
=
'<Response><Pause></Pause></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testPauseAddAttribute
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
pause
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Pause foo="bar"></Pause></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Dial Verb
public
function
testDial
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
dial
(
"1231231234"
);
$expected
=
'<Response><Dial>1231231234</Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testDialConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
dial
();
$expected
=
'<Response><Dial></Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testDialAddNumber
()
{
$r
=
new
Services_Twilio_Twiml
();
$d
=
$r
->
dial
();
$d
->
number
(
"1231231234"
);
$expected
=
'<Response><Dial><Number>'
.
'1231231234</Number></Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testDialAddConference
()
{
$r
=
new
Services_Twilio_Twiml
();
$d
=
$r
->
dial
();
$d
->
conference
(
"MyRoom"
);
$expected
=
'<Response><Dial><Conference>'
.
'MyRoom</Conference></Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testDialAddConferenceConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$d
=
$r
->
dial
();
$d
->
conference
(
"MyRoom"
,
array
(
"startConferenceOnEnter"
=>
"false"
));
$expected
=
'<Response><Dial><Conference startConferenceOnEnter='
.
'"false">MyRoom</Conference></Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testDialAddAttribute
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
dial
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Dial foo="bar"></Dial></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
//Test Gather Verb
public
function
testGather
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
gather
();
$expected
=
'<Response><Gather></Gather></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testGatherMethodAction
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
gather
(
array
(
"action"
=>
"example.com"
,
"method"
=>
"GET"
));
$expected
=
'<Response><Gather action="example.com" '
.
'method="GET"></Gather></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testGatherActionWithParams
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
gather
(
array
(
"action"
=>
"record.php?action=recordPageNow"
.
"&id=4&page=3"
));
$expected
=
'<Response><Gather action="record.php?action='
.
'recordPageNow&id=4&page=3"></Gather></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testGatherNestedVerbs
(){
$r
=
new
Services_Twilio_Twiml
();
$g
=
$r
->
gather
(
array
(
"action"
=>
"example.com"
,
"method"
=>
"GET"
));
$g
->
say
(
"Hello World"
);
$g
->
play
(
"helloworld.mp3"
);
$g
->
pause
();
$expected
=
'
<Response>
<Gather action="example.com" method="GET">
<Say>Hello World</Say>
<Play>helloworld.mp3</Play>
<Pause></Pause>
</Gather>
</Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testGatherNestedVerbsConvienceMethods
(){
$r
=
new
Services_Twilio_Twiml
();
$g
=
$r
->
gather
(
array
(
"action"
=>
"example.com"
,
"method"
=>
"GET"
));
$g
->
say
(
"Hello World"
);
$g
->
play
(
"helloworld.mp3"
);
$g
->
pause
();
$expected
=
'
<Response>
<Gather action="example.com" method="GET">
<Say>Hello World</Say>
<Play>helloworld.mp3</Play>
<Pause></Pause>
</Gather>
</Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testGatherAddAttribute
(){
$r
=
new
Services_Twilio_Twiml
();
$r
->
gather
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Gather foo="bar"></Gather></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSms
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
sms
(
"Hello World"
);
$expected
=
'<Response><Sms>Hello World</Sms></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSmsConvience
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
sms
(
"Hello World"
);
$expected
=
'<Response><Sms>Hello World</Sms></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testSmsAddAttribute
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
sms
(
array
(
"foo"
=>
"bar"
));
$expected
=
'<Response><Sms foo="bar"></Sms></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
public
function
testReject
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
reject
();
$expected
=
'<Response><Reject></Reject></Response>'
;
$this
->
assertXmlStringEqualsXmlString
(
$expected
,
$r
);
}
function
testGeneration
()
{
$r
=
new
Services_Twilio_Twiml
();
$r
->
say
(
'hello'
);
$r
->
dial
()->
number
(
'123'
,
array
(
'sendDigits'
=>
'456'
));
$r
->
gather
(
array
(
'timeout'
=>
15
));
$doc
=
simplexml_load_string
(
$r
);
$this
->
assertEquals
(
'Response'
,
$doc
->
getName
());
$this
->
assertEquals
(
'hello'
,
(
string
)
$doc
->
Say
);
$this
->
assertEquals
(
'456'
,
(
string
)
$doc
->
Dial
->
Number
[
'sendDigits'
]);
$this
->
assertEquals
(
'123'
,
(
string
)
$doc
->
Dial
->
Number
);
$this
->
assertEquals
(
'15'
,
(
string
)
$doc
->
Gather
[
'timeout'
]);
}
}
Event Timeline
Log In to Comment