Fix field mask for php in json (#5591) * Fix field mask for php in json * Update byte size
diff --git a/php/tests/encode_decode_test.php b/php/tests/encode_decode_test.php index 6aaca84..61527e8 100644 --- a/php/tests/encode_decode_test.php +++ b/php/tests/encode_decode_test.php
@@ -14,6 +14,7 @@ use Foo\TestUnpackedMessage; use Google\Protobuf\Any; use Google\Protobuf\DoubleValue; +use Google\Protobuf\FieldMask; use Google\Protobuf\FloatValue; use Google\Protobuf\Int32Value; use Google\Protobuf\UInt32Value; @@ -266,6 +267,40 @@ } + public function testJsonEncodeDecodeOneof() + { + $m = new TestMessage(); + + $m->setOneofEnum(TestEnum::ONE); + $data = $m->serializeToJsonString(); + $n = new TestMessage(); + $n->mergeFromJsonString($data); + $this->assertSame("oneof_enum", $n->getMyOneof()); + $this->assertSame(TestEnum::ONE, $n->getOneofEnum()); + + $m->setOneofString("a"); + $data = $m->serializeToJsonString(); + $n = new TestMessage(); + $n->mergeFromJsonString($data); + $this->assertSame("oneof_string", $n->getMyOneof()); + $this->assertSame("a", $n->getOneofString()); + + $m->setOneofBytes("bbbb"); + $data = $m->serializeToJsonString(); + $n = new TestMessage(); + $n->mergeFromJsonString($data); + $this->assertSame("oneof_bytes", $n->getMyOneof()); + $this->assertSame("bbbb", $n->getOneofBytes()); + + $sub_m = new Sub(); + $m->setOneofMessage($sub_m); + $data = $m->serializeToJsonString(); + $n = new TestMessage(); + $n->mergeFromJsonString($data); + $this->assertSame("oneof_message", $n->getMyOneof()); + $this->assertFalse(is_null($n->getOneofMessage())); + } + public function testPackedEncode() { $from = new TestPackedMessage(); @@ -1070,4 +1105,27 @@ $m->serializeToJsonString()); } + public function testDecodeTopLevelFieldMask() + { + $m = new TestMessage(); + $m->setMapStringString(['a'=>'abcdefg']); + $data1 = $m->serializeToJsonString(); + $n = new TestMessage(); + $n->mergeFromJsonString($data1); + $data2 = $n->serializeToJsonString(); + $this->assertSame($data1, $data2); + + $m = new FieldMask(); + $m->mergeFromJsonString("\"foo.barBaz,qux\""); + $this->assertSame("foo.bar_baz", $m->getPaths()[0]); + $this->assertSame("qux", $m->getPaths()[1]); + } + + public function testEncodeTopLevelFieldMask() + { + $m = new FieldMask(); + $m->setPaths(["foo.bar_baz", "qux"]); + $this->assertSame("\"foo.barBaz,qux\"", $m->serializeToJsonString()); + } + }
diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php index 38c3809..83deaba 100644 --- a/php/tests/generated_class_test.php +++ b/php/tests/generated_class_test.php
@@ -1329,7 +1329,7 @@ 'optional_double' => 1.6, 'optional_bool' => true, 'optional_string' => 'a', - 'optional_bytes' => 'b', + 'optional_bytes' => 'bbbb', 'optional_enum' => TestEnum::ONE, 'optional_message' => new Sub([ 'a' => 33 @@ -1348,7 +1348,7 @@ 'repeated_double' => [1.6, 2.6], 'repeated_bool' => [true, false], 'repeated_string' => ['a', 'c'], - 'repeated_bytes' => ['b', 'd'], + 'repeated_bytes' => ['bbbb', 'dddd'], 'repeated_enum' => [TestEnum::ZERO, TestEnum::ONE], 'repeated_message' => [new Sub(['a' => 34]), new Sub(['a' => 35])], @@ -1366,7 +1366,7 @@ 'map_int32_double' => [1 => 3.6], 'map_bool_bool' => [true => true], 'map_string_string' => ['e' => 'e'], - 'map_int32_bytes' => [1 => 'f'], + 'map_int32_bytes' => [1 => 'ffff'], 'map_int32_enum' => [1 => TestEnum::ONE], 'map_int32_message' => [1 => new Sub(['a' => 36])], ]);
diff --git a/php/tests/php_implementation_test.php b/php/tests/php_implementation_test.php index 323a36f..8d27d19 100644 --- a/php/tests/php_implementation_test.php +++ b/php/tests/php_implementation_test.php
@@ -504,7 +504,7 @@ { $m = new TestMessage(); TestUtil::setTestMessage($m); - $this->assertSame(506, $m->byteSize()); + $this->assertSame(518, $m->byteSize()); } public function testPackedByteSize()
diff --git a/php/tests/test_base.php b/php/tests/test_base.php index 27efc87..a4d951b 100644 --- a/php/tests/test_base.php +++ b/php/tests/test_base.php
@@ -28,7 +28,7 @@ $this->assertSame(1.6, $m->getOptionalDouble()); $this->assertSame(true, $m->getOptionalBool()); $this->assertSame('a', $m->getOptionalString()); - $this->assertSame('b', $m->getOptionalBytes()); + $this->assertSame('bbbb', $m->getOptionalBytes()); $this->assertSame(TestEnum::ONE, $m->getOptionalEnum()); $this->assertSame(33, $m->getOptionalMessage()->getA()); if (PHP_INT_SIZE == 4) { @@ -59,7 +59,7 @@ $this->assertEquals(1.6, $m->getRepeatedDouble()[0]); $this->assertEquals(true, $m->getRepeatedBool()[0]); $this->assertEquals('a', $m->getRepeatedString()[0]); - $this->assertEquals('b', $m->getRepeatedBytes()[0]); + $this->assertEquals('bbbb', $m->getRepeatedBytes()[0]); $this->assertEquals(34, $m->getRepeatedMessage()[0]->GetA()); $this->assertEquals(-52, $m->getRepeatedInt32()[1]); @@ -76,7 +76,7 @@ $this->assertEquals(2.6, $m->getRepeatedDouble()[1]); $this->assertEquals(false, $m->getRepeatedBool()[1]); $this->assertEquals('c', $m->getRepeatedString()[1]); - $this->assertEquals('d', $m->getRepeatedBytes()[1]); + $this->assertEquals('dddd', $m->getRepeatedBytes()[1]); $this->assertEquals(35, $m->getRepeatedMessage()[1]->GetA()); if (PHP_INT_SIZE == 4) { @@ -101,7 +101,7 @@ $this->assertEquals(3.6, $m->getMapInt32Double()[1]); $this->assertEquals(true , $m->getMapBoolBool()[true]); $this->assertEquals('e', $m->getMapStringString()['e']); - $this->assertEquals('f', $m->getMapInt32Bytes()[1]); + $this->assertEquals('ffff', $m->getMapInt32Bytes()[1]); $this->assertEquals(TestEnum::ONE, $m->getMapInt32Enum()[1]); $this->assertEquals(36, $m->getMapInt32Message()[1]->GetA()); } @@ -146,7 +146,7 @@ $this->assertEquals(1.6, $m->getRepeatedDouble()[0]); $this->assertEquals(true, $m->getRepeatedBool()[0]); $this->assertEquals('a', $m->getRepeatedString()[0]); - $this->assertEquals('b', $m->getRepeatedBytes()[0]); + $this->assertEquals('bbbb', $m->getRepeatedBytes()[0]); $this->assertEquals(TestEnum::ZERO, $m->getRepeatedEnum()[0]); $this->assertEquals(34, $m->getRepeatedMessage()[0]->GetA()); @@ -164,7 +164,7 @@ $this->assertEquals(2.6, $m->getRepeatedDouble()[1]); $this->assertEquals(false, $m->getRepeatedBool()[1]); $this->assertEquals('c', $m->getRepeatedString()[1]); - $this->assertEquals('d', $m->getRepeatedBytes()[1]); + $this->assertEquals('dddd', $m->getRepeatedBytes()[1]); $this->assertEquals(TestEnum::ONE, $m->getRepeatedEnum()[1]); $this->assertEquals(35, $m->getRepeatedMessage()[1]->GetA());
diff --git a/php/tests/test_util.php b/php/tests/test_util.php index a676d09..2c5b595 100644 --- a/php/tests/test_util.php +++ b/php/tests/test_util.php
@@ -65,7 +65,7 @@ $m->setOptionalDouble(1.6); $m->setOptionalBool(true); $m->setOptionalString('a'); - $m->setOptionalBytes('b'); + $m->setOptionalBytes('bbbb'); $m->setOptionalEnum(TestEnum::ONE); $sub = new Sub(); $m->setOptionalMessage($sub); @@ -85,7 +85,7 @@ self::appendHelper($m, 'RepeatedDouble', 1.6); self::appendHelper($m, 'RepeatedBool', true); self::appendHelper($m, 'RepeatedString', 'a'); - self::appendHelper($m, 'RepeatedBytes', 'b'); + self::appendHelper($m, 'RepeatedBytes', 'bbbb'); self::appendHelper($m, 'RepeatedEnum', TestEnum::ZERO); self::appendHelper($m, 'RepeatedMessage', new Sub()); $m->getRepeatedMessage()[0]->setA(34); @@ -104,7 +104,7 @@ self::appendHelper($m, 'RepeatedDouble', 2.6); self::appendHelper($m, 'RepeatedBool', false); self::appendHelper($m, 'RepeatedString', 'c'); - self::appendHelper($m, 'RepeatedBytes', 'd'); + self::appendHelper($m, 'RepeatedBytes', 'dddd'); self::appendHelper($m, 'RepeatedEnum', TestEnum::ONE); self::appendHelper($m, 'RepeatedMessage', new Sub()); $m->getRepeatedMessage()[1]->SetA(35); @@ -123,7 +123,7 @@ self::kvUpdateHelper($m, 'MapInt32Double', 1, 3.6); self::kvUpdateHelper($m, 'MapBoolBool', true, true); self::kvUpdateHelper($m, 'MapStringString', 'e', 'e'); - self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'f'); + self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'ffff'); self::kvUpdateHelper($m, 'MapInt32Enum', 1, TestEnum::ONE); self::kvUpdateHelper($m, 'MapInt32Message', 1, new Sub()); $m->getMapInt32Message()[1]->SetA(36); @@ -234,7 +234,7 @@ assert(1.6 === $m->getOptionalDouble()); assert(true=== $m->getOptionalBool()); assert('a' === $m->getOptionalString()); - assert('b' === $m->getOptionalBytes()); + assert('bbbb' === $m->getOptionalBytes()); assert(TestEnum::ONE === $m->getOptionalEnum()); assert(33 === $m->getOptionalMessage()->getA()); @@ -260,7 +260,7 @@ assert(1.6 === $m->getRepeatedDouble()[0]); assert(true=== $m->getRepeatedBool()[0]); assert('a' === $m->getRepeatedString()[0]); - assert('b' === $m->getRepeatedBytes()[0]); + assert('bbbb' === $m->getRepeatedBytes()[0]); assert(TestEnum::ZERO === $m->getRepeatedEnum()[0]); assert(34 === $m->getRepeatedMessage()[0]->getA()); @@ -286,7 +286,7 @@ assert(2.6 === $m->getRepeatedDouble()[1]); assert(false === $m->getRepeatedBool()[1]); assert('c' === $m->getRepeatedString()[1]); - assert('d' === $m->getRepeatedBytes()[1]); + assert('dddd' === $m->getRepeatedBytes()[1]); assert(TestEnum::ONE === $m->getRepeatedEnum()[1]); assert(35 === $m->getRepeatedMessage()[1]->getA()); @@ -312,7 +312,7 @@ assert(3.6 === $m->getMapInt32Double()[1]); assert(true === $m->getMapBoolBool()[true]); assert('e' === $m->getMapStringString()['e']); - assert('f' === $m->getMapInt32Bytes()[1]); + assert('ffff' === $m->getMapInt32Bytes()[1]); assert(TestEnum::ONE === $m->getMapInt32Enum()[1]); assert(36 === $m->getMapInt32Message()[1]->GetA()); } @@ -334,7 +334,7 @@ "619A9999999999F93F" . "6801" . "720161" . - "7A0162" . + "7A0462626262" . "800101" . "8A01020821" . @@ -366,8 +366,8 @@ "D80200" . "E2020161" . "E2020163" . - "EA020162" . - "EA020164" . + "EA020462626262" . + "EA020464646464" . "F00200" . "F00201" . "FA02020822" . @@ -387,7 +387,7 @@ "92050B080111CDCCCCCCCCCC0C40" . "9A050408011001" . "A205060a0165120165" . - "AA05050801120166" . + "AA05080801120466666666" . "B2050408011001" . "Ba0506080112020824" );