summaryrefslogtreecommitdiff
path: root/ext/json/tests/json_encode_exceptions.phpt
diff options
context:
space:
mode:
authorAndrea Faulds <ajf@ajf.me>2017-10-22 19:41:23 +0100
committerAndrea Faulds <ajf@ajf.me>2017-10-22 19:41:23 +0100
commite823770515bd0530bd3c09ea273c720b4df33734 (patch)
tree0d33cb3518feb5efa23114198ad9377d030e0900 /ext/json/tests/json_encode_exceptions.phpt
parentd5127cec6ae020a23624a1d4e9da342a33d90cc0 (diff)
downloadphp-git-e823770515bd0530bd3c09ea273c720b4df33734.tar.gz
Merge JSON_THROW_ON_ERROR
Diffstat (limited to 'ext/json/tests/json_encode_exceptions.phpt')
-rw-r--r--ext/json/tests/json_encode_exceptions.phpt56
1 files changed, 56 insertions, 0 deletions
diff --git a/ext/json/tests/json_encode_exceptions.phpt b/ext/json/tests/json_encode_exceptions.phpt
new file mode 100644
index 0000000000..7da2f9cdd0
--- /dev/null
+++ b/ext/json/tests/json_encode_exceptions.phpt
@@ -0,0 +1,56 @@
+--TEST--
+Test json_encode() function : JSON_THROW_ON_ERROR flag
+--FILE--
+<?php
+
+try {
+ var_dump(json_encode("\x80", JSON_THROW_ON_ERROR));
+} catch (JsonException $e) {
+ var_dump($e);
+}
+
+// JSON_PARTIAL_OUTPUT_ON_ERROR is incompatible with exceptions
+// So it overrides it for the sake of working with wrappers that add the
+// JSON_THROW_ON_ERROR flag
+var_dump(json_encode("\x80", JSON_THROW_ON_ERROR | JSON_PARTIAL_OUTPUT_ON_ERROR));
+var_dump(json_last_error());
+var_dump(json_last_error_msg());
+
+?>
+--EXPECTF--
+object(JsonException)#1 (7) {
+ ["message":protected]=>
+ string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"
+ ["string":"Exception":private]=>
+ string(0) ""
+ ["code":protected]=>
+ int(5)
+ ["file":protected]=>
+ string(%d) "%s"
+ ["line":protected]=>
+ int(%d)
+ ["trace":"Exception":private]=>
+ array(1) {
+ [0]=>
+ array(4) {
+ ["file"]=>
+ string(%d) "%s"
+ ["line"]=>
+ int(%d)
+ ["function"]=>
+ string(11) "json_encode"
+ ["args"]=>
+ array(2) {
+ [0]=>
+ string(1) "%s"
+ [1]=>
+ int(4194304)
+ }
+ }
+ }
+ ["previous":"Exception":private]=>
+ NULL
+}
+string(4) "null"
+int(5)
+string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"