aboutsummaryrefslogtreecommitdiff
path: root/php/tests/encode_decode_test.php
diff options
context:
space:
mode:
authorJisi Liu <liujisi@google.com>2018-01-04 14:26:24 -0800
committerGitHub <noreply@github.com>2018-01-04 14:26:24 -0800
commita3868af12be724f808faa21a29e7b4931e30bed1 (patch)
tree3df23c4174287023b569108eb133db0f9c310646 /php/tests/encode_decode_test.php
parenteca1d2a7113b3d57f900f69661342c0078c956c4 (diff)
parentec826c5a592126ddb6b12b47e6e1fb6232ce340d (diff)
downloadprotobuf-a3868af12be724f808faa21a29e7b4931e30bed1.tar.gz
protobuf-a3868af12be724f808faa21a29e7b4931e30bed1.tar.bz2
protobuf-a3868af12be724f808faa21a29e7b4931e30bed1.zip
Merge pull request #4131 from pherl/merge
Merge 3.5.x branch into master
Diffstat (limited to 'php/tests/encode_decode_test.php')
-rw-r--r--php/tests/encode_decode_test.php40
1 files changed, 39 insertions, 1 deletions
diff --git a/php/tests/encode_decode_test.php b/php/tests/encode_decode_test.php
index 4512c871..74d5526d 100644
--- a/php/tests/encode_decode_test.php
+++ b/php/tests/encode_decode_test.php
@@ -443,36 +443,74 @@ class EncodeDecodeTest extends TestBase
public function testUnknown()
{
+ // Test preserve unknown for varint.
$m = new TestMessage();
- $from = hex2bin('F80601');
+ $from = hex2bin('F80601'); // TODO(teboring): Add a util to encode
+ // varint for better readability
$m->mergeFromString($from);
$to = $m->serializeToString();
$this->assertSame(bin2hex($from), bin2hex($to));
+ // Test preserve unknown for 64-bit.
$m = new TestMessage();
$from = hex2bin('F9060000000000000000');
$m->mergeFromString($from);
$to = $m->serializeToString();
$this->assertSame(bin2hex($from), bin2hex($to));
+ // Test preserve unknown for length delimited.
$m = new TestMessage();
$from = hex2bin('FA0600');
$m->mergeFromString($from);
$to = $m->serializeToString();
$this->assertSame(bin2hex($from), bin2hex($to));
+ // Test preserve unknown for 32-bit.
$m = new TestMessage();
$from = hex2bin('FD0600000000');
$m->mergeFromString($from);
$to = $m->serializeToString();
$this->assertSame(bin2hex($from), bin2hex($to));
+ // Test discard unknown in message.
$m = new TestMessage();
$from = hex2bin('F80601');
$m->mergeFromString($from);
$m->discardUnknownFields();
$to = $m->serializeToString();
$this->assertSame("", bin2hex($to));
+
+ // Test discard unknown for singular message field.
+ $m = new TestMessage();
+ $from = hex2bin('8A0103F80601');
+ $m->mergeFromString($from);
+ $m->discardUnknownFields();
+ $to = $m->serializeToString();
+ $this->assertSame("8a0100", bin2hex($to));
+
+ // Test discard unknown for repeated message field.
+ $m = new TestMessage();
+ $from = hex2bin('FA0203F80601');
+ $m->mergeFromString($from);
+ $m->discardUnknownFields();
+ $to = $m->serializeToString();
+ $this->assertSame("fa0200", bin2hex($to));
+
+ // Test discard unknown for map message value field.
+ $m = new TestMessage();
+ $from = hex2bin("BA050708011203F80601");
+ $m->mergeFromString($from);
+ $m->discardUnknownFields();
+ $to = $m->serializeToString();
+ $this->assertSame("ba050408011200", bin2hex($to));
+
+ // Test discard unknown for singular message field.
+ $m = new TestMessage();
+ $from = hex2bin('9A0403F80601');
+ $m->mergeFromString($from);
+ $m->discardUnknownFields();
+ $to = $m->serializeToString();
+ $this->assertSame("9a0400", bin2hex($to));
}
public function testJsonEncode()