Annotation of embedaddon/php/ext/json/tests/serialize.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: json_encode() Serialization tests
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded("json")) print "skip"; ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: class NonSerializingTest
! 9: {
! 10: public $data;
! 11:
! 12: public function __construct($data)
! 13: {
! 14: $this->data = $data;
! 15: }
! 16: }
! 17:
! 18: class SerializingTest extends NonSerializingTest implements JsonSerializable
! 19: {
! 20: public function jsonSerialize()
! 21: {
! 22: return $this->data;
! 23: }
! 24: }
! 25:
! 26: class ValueSerializingTest extends SerializingTest
! 27: {
! 28: public function jsonSerialize()
! 29: {
! 30: return array_values(is_array($this->data) ? $this->data : get_object_vars($this->data));
! 31: }
! 32: }
! 33:
! 34: class SelfSerializingTest extends SerializingTest
! 35: {
! 36: public function jsonSerialize()
! 37: {
! 38: return $this;
! 39: }
! 40: }
! 41:
! 42: $adata = array(
! 43: 'str' => 'foo',
! 44: 'int' => 1,
! 45: 'float' => 2.3,
! 46: 'bool' => false,
! 47: 'nil' => null,
! 48: 'arr' => array(1,2,3),
! 49: 'obj' => new StdClass,
! 50: );
! 51:
! 52: $ndata = array_values($adata);
! 53:
! 54: $odata = (object)$adata;
! 55:
! 56: foreach(array('NonSerializingTest','SerializingTest','ValueSerializingTest','SelfSerializingTest') as $class) {
! 57: echo "==$class==\n";
! 58: echo json_encode(new $class($adata)), "\n";
! 59: echo json_encode(new $class($ndata)), "\n";
! 60: echo json_encode(new $class($odata)), "\n";
! 61: }
! 62: --EXPECT--
! 63: ==NonSerializingTest==
! 64: {"data":{"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}}
! 65: {"data":["foo",1,2.3,false,null,[1,2,3],{}]}
! 66: {"data":{"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}}
! 67: ==SerializingTest==
! 68: {"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}
! 69: ["foo",1,2.3,false,null,[1,2,3],{}]
! 70: {"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}
! 71: ==ValueSerializingTest==
! 72: ["foo",1,2.3,false,null,[1,2,3],{}]
! 73: ["foo",1,2.3,false,null,[1,2,3],{}]
! 74: ["foo",1,2.3,false,null,[1,2,3],{}]
! 75: ==SelfSerializingTest==
! 76: {"data":{"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}}
! 77: {"data":["foo",1,2.3,false,null,[1,2,3],{}]}
! 78: {"data":{"str":"foo","int":1,"float":2.3,"bool":false,"nil":null,"arr":[1,2,3],"obj":{}}}
! 79:
! 80:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>