From 19bffdb25c9b70d290e935106dd39aef141a3efc Mon Sep 17 00:00:00 2001 From: Cameron Koegel Date: Tue, 9 Nov 2021 14:50:30 -0500 Subject: [PATCH 1/3] DX-2291 Added Encoding for Special Characters --- src/Voice/Bxml/Response.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Voice/Bxml/Response.php b/src/Voice/Bxml/Response.php index ed24d75..90c56e2 100644 --- a/src/Voice/Bxml/Response.php +++ b/src/Voice/Bxml/Response.php @@ -26,6 +26,11 @@ public function __construct() { * @param Verb $verb The verb to add to the list */ public function addVerb($verb) { + foreach($verb as $key => $value) { + if(gettype($value) == "string") { + $verb->$key = htmlspecialchars($value, ENT_XML1 | ENT_QUOTES, 'UTF-8'); + } + } array_push($this->verbs, $verb); } From d91e18823966e6d708e2baf441473826b2b1f026 Mon Sep 17 00:00:00 2001 From: Cameron Koegel Date: Tue, 9 Nov 2021 16:09:07 -0500 Subject: [PATCH 2/3] added comment --- src/Voice/Bxml/Response.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Voice/Bxml/Response.php b/src/Voice/Bxml/Response.php index 90c56e2..7e36efc 100644 --- a/src/Voice/Bxml/Response.php +++ b/src/Voice/Bxml/Response.php @@ -26,7 +26,7 @@ public function __construct() { * @param Verb $verb The verb to add to the list */ public function addVerb($verb) { - foreach($verb as $key => $value) { + foreach($verb as $key => $value) { // encodes any verb attributes of type string to avoid php character encoding bug if(gettype($value) == "string") { $verb->$key = htmlspecialchars($value, ENT_XML1 | ENT_QUOTES, 'UTF-8'); } From befe9e4d698d2dbb1fa2aaa475a0b9c12f6260b9 Mon Sep 17 00:00:00 2001 From: Cameron Koegel Date: Tue, 9 Nov 2021 16:55:36 -0500 Subject: [PATCH 3/3] Fixed encoding and added test --- src/Voice/Bxml/Response.php | 2 +- tests/BxmlTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Voice/Bxml/Response.php b/src/Voice/Bxml/Response.php index 7e36efc..35ede23 100644 --- a/src/Voice/Bxml/Response.php +++ b/src/Voice/Bxml/Response.php @@ -28,7 +28,7 @@ public function __construct() { public function addVerb($verb) { foreach($verb as $key => $value) { // encodes any verb attributes of type string to avoid php character encoding bug if(gettype($value) == "string") { - $verb->$key = htmlspecialchars($value, ENT_XML1 | ENT_QUOTES, 'UTF-8'); + $verb->$key = htmlspecialchars($value, ENT_XML1, 'UTF-8'); } } array_push($this->verbs, $verb); diff --git a/tests/BxmlTest.php b/tests/BxmlTest.php index c1f0e49..0e5f301 100644 --- a/tests/BxmlTest.php +++ b/tests/BxmlTest.php @@ -178,6 +178,18 @@ public function testSpeakSentence() { $this->assertEquals($expectedXml, $responseXml); } + public function testSpeakSentenceEncode() { + $speakSentence = new BandwidthLib\Voice\Bxml\SpeakSentence("These characters cause problems < > &"); + $speakSentence->voice("susan"); + $speakSentence->locale("en_US"); + $speakSentence->gender("female"); + $response = new BandwidthLib\Voice\Bxml\Response(); + $response->addVerb($speakSentence); + $expectedXml = 'These characters cause problems < > &'; + $responseXml = $response->toBxml(); + $this->assertEquals($expectedXml, $responseXml); + } + public function testSpeakSentenceSSML() { $speakSentence = new BandwidthLib\Voice\Bxml\SpeakSentence('Hello, you have reached the home of Antonio Mendoza.Please leave a message.'); $response = new BandwidthLib\Voice\Bxml\Response();