diff --git a/lib/ObjectSerializer.php b/lib/ObjectSerializer.php index 84817b8..6a4e649 100755 --- a/lib/ObjectSerializer.php +++ b/lib/ObjectSerializer.php @@ -30,7 +30,7 @@ public static function setDateTimeFormat($format) public static function removeSpecialCharacters($string) { - return preg_replace('/[<>`|\\\\]/', '', $string); + return preg_replace('/[<>`|]/', '', $string); } /** diff --git a/tests/tests.php b/tests/tests.php index eb139ae..b174c00 100644 --- a/tests/tests.php +++ b/tests/tests.php @@ -133,8 +133,8 @@ private function getPaymentPayloadRequiredFieldsOnly( ]), ]); $userData = new UserData([ - "first_name" => "|Jan\ko|", - "last_name" => "\\`", + "first_name" => "|Janko|", + "last_name" => "`", "email" => "janko.hrasko@example.com", ]); $bankTransfer = new BankTransfer(); @@ -164,14 +164,14 @@ private function getPaymentPayload( ]); $userData = new UserData([ - "first_name" => "|Jan\ko|", - "last_name" => "\\`", + "first_name" => "|Janko|", + "last_name" => "`", "email" => "janko.hrasko@example.com", ]); $bankTransfer = new BankTransfer(); $billingAddress = new Address([ - "street_name" => " " "12", "town_name" => "Tn", "post_code" => "97405", @@ -740,6 +740,40 @@ public function testLoanPrecalculation() $first_offer = $response_list[0]; $this->assertTrue(! is_null($first_offer->getLoanInterestRate())); } + + public function testRemoveSpecialCharacters() + { + $this->assertEquals('helloworld', ObjectSerializer::removeSpecialCharacters('helloassertEquals('helloworld', ObjectSerializer::removeSpecialCharacters('hl`l|oo|r`ld')); + $this->assertEquals('hello\"world', ObjectSerializer::removeSpecialCharacters('hello\"world')); + $this->assertEquals('hello\\nworld', ObjectSerializer::removeSpecialCharacters('hello\\nworld')); + $this->assertEquals('hello\\\\world', ObjectSerializer::removeSpecialCharacters('hello\\\\world')); + $this->assertEquals('', ObjectSerializer::removeSpecialCharacters('<>`|')); + $this->assertEquals('', ObjectSerializer::removeSpecialCharacters('')); + $this->assertEquals('normalstring', ObjectSerializer::removeSpecialCharacters('normalstring')); + $this->assertEquals('test\\data', ObjectSerializer::removeSpecialCharacters('test<\\>data')); + $this->assertEquals('path\\file', ObjectSerializer::removeSpecialCharacters('path|\\|file')); + $this->assertEquals('code\\function', ObjectSerializer::removeSpecialCharacters('code`\\`function')); + + $input = '..."protocolVersion":"ECv1","signedMessage":"{\"encryptedMessage\"...'; + $expected = '..."protocolVersion":"ECv1","signedMessage":"{\"encryptedMessage\"...'; + $this->assertEquals($expected, ObjectSerializer::removeSpecialCharacters($input)); + + $input = '...\"protocolVersion\":\"ECv1\",\"signedMessage\":\"{\\\"encryptedMessage\\\"...'; + $expected = '...\"protocolVersion\":\"ECv1\",\"signedMessage\":\"{\\\"encryptedMessage\\\"...'; + $this->assertEquals($expected, ObjectSerializer::removeSpecialCharacters($input)); + + $jsonInput = '{"name":"John \"Doe\"","message":"Hello\\nWorld","path":"C:\\\\Users\\\\test"}'; + $expectedJson = '{"name":"John \"Doe\"","message":"Hello\\nWorld","path":"C:\\\\Users\\\\test"}'; + $this->assertEquals($expectedJson, ObjectSerializer::removeSpecialCharacters($jsonInput)); + + $googlePayInput = '{"protocolVersion":"ECv1","signedMessage":"{\"encryptedMessage\":\"data\",\"tag\":\"signature\"}"}'; + $this->assertEquals($googlePayInput, ObjectSerializer::removeSpecialCharacters($googlePayInput)); + + $mixedInput = 'hello\"test\"|value`more\\n'; + $expectedMixed = 'helloworld\"test\\"valuemore\\n'; + $this->assertEquals($expectedMixed, ObjectSerializer::removeSpecialCharacters($mixedInput)); + } } function mock_addAuthHeader($headers)