diff options
Diffstat (limited to 'php/tests')
-rw-r--r-- | php/tests/array_test.php | 12 | ||||
-rwxr-xr-x | php/tests/compatibility_test.sh | 49 | ||||
-rw-r--r-- | php/tests/descriptors_test.php | 2 | ||||
-rw-r--r-- | php/tests/encode_decode_test.php | 53 | ||||
-rwxr-xr-x | php/tests/gdb_test.sh | 10 | ||||
-rw-r--r-- | php/tests/generated_class_test.php | 223 | ||||
-rw-r--r-- | php/tests/generated_phpdoc_test.php | 14 | ||||
-rw-r--r-- | php/tests/map_field_test.php | 10 | ||||
-rw-r--r-- | php/tests/memory_leak_test.php | 113 | ||||
-rw-r--r-- | php/tests/php_implementation_test.php | 75 | ||||
-rw-r--r-- | php/tests/proto/empty/echo.proto | 17 | ||||
-rw-r--r-- | php/tests/proto/test_empty_php_namespace.proto | 11 | ||||
-rw-r--r-- | php/tests/proto/test_include.proto | 11 | ||||
-rw-r--r-- | php/tests/proto/test_no_namespace.proto | 14 | ||||
-rw-r--r-- | php/tests/proto/test_php_namespace.proto | 23 | ||||
-rw-r--r-- | php/tests/proto/test_prefix.proto | 8 | ||||
-rwxr-xr-x | php/tests/test.sh | 18 | ||||
-rw-r--r-- | php/tests/test_base.php | 2 | ||||
-rw-r--r-- | php/tests/test_util.php | 18 | ||||
-rw-r--r-- | php/tests/undefined_test.php | 88 | ||||
-rw-r--r-- | php/tests/well_known_test.php | 12 |
21 files changed, 639 insertions, 144 deletions
diff --git a/php/tests/array_test.php b/php/tests/array_test.php index 1a26d72a..36a649ed 100644 --- a/php/tests/array_test.php +++ b/php/tests/array_test.php @@ -5,7 +5,7 @@ require_once('test_util.php'); use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBType; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; class RepeatedFieldTest extends PHPUnit_Framework_TestCase { @@ -456,10 +456,10 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase public function testMessage() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); // Test append. - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $sub_m->setA(1); $arr[] = $sub_m; $this->assertSame(1, $arr[0]->getA()); @@ -467,15 +467,15 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase $this->assertEquals(1, count($arr)); // Test set. - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $sub_m->setA(2); $arr[0] = $sub_m; $this->assertSame(2, $arr[0]->getA()); // Test foreach. - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); for ($i = 0; $i < 3; $i++) { - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); $arr[$i]->setA($i); } $i = 0; diff --git a/php/tests/compatibility_test.sh b/php/tests/compatibility_test.sh index 7caa46e7..b5b255ea 100755 --- a/php/tests/compatibility_test.sh +++ b/php/tests/compatibility_test.sh @@ -2,12 +2,14 @@ function use_php() { VERSION=$1 - PHP=`which php` - PHP_CONFIG=`which php-config` - PHPIZE=`which phpize` - ln -sfn "/usr/local/php-${VERSION}/bin/php" $PHP - ln -sfn "/usr/local/php-${VERSION}/bin/php-config" $PHP_CONFIG - ln -sfn "/usr/local/php-${VERSION}/bin/phpize" $PHPIZE + + OLD_PATH=$PATH + OLD_CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH + OLD_C_INCLUDE_PATH=$C_INCLUDE_PATH + + export PATH=/usr/local/php-${VERSION}/bin:$OLD_PATH + export CPLUS_INCLUDE_PATH=/usr/local/php-${VERSION}/include/php/main:/usr/local/php-${VERSION}/include/php/:$OLD_CPLUS_INCLUDE_PATH + export C_INCLUDE_PATH=/usr/local/php-${VERSION}/include/php/main:/usr/local/php-${VERSION}/include/php/:$OLD_C_INCLUDE_PATH } function generate_proto() { @@ -18,7 +20,22 @@ function generate_proto() { mkdir generated $PROTOC1 --php_out=generated proto/test_include.proto - $PROTOC2 --php_out=generated proto/test.proto proto/test_no_namespace.proto proto/test_prefix.proto + $PROTOC2 --php_out=generated \ + proto/test.proto \ + proto/test_no_namespace.proto \ + proto/test_prefix.proto \ + proto/test_php_namespace.proto \ + proto/test_empty_php_namespace.proto \ + proto/test_reserved_enum_lower.proto \ + proto/test_reserved_enum_upper.proto \ + proto/test_reserved_enum_value_lower.proto \ + proto/test_reserved_enum_value_upper.proto \ + proto/test_reserved_message_lower.proto \ + proto/test_reserved_message_upper.proto \ + proto/test_service.proto \ + proto/test_service_namespace.proto \ + proto/test_descriptors.proto + pushd ../../src $PROTOC2 --php_out=../php/tests/generated -I../php/tests -I. ../php/tests/proto/test_import_descriptor_proto.proto popd @@ -52,9 +69,9 @@ cd $(dirname $0) # The old version of protobuf that we are testing compatibility against. case "$1" in - ""|3.3.0) - OLD_VERSION=3.3.0 - OLD_VERSION_PROTOC=http://repo1.maven.org/maven2/com/google/protobuf/protoc/3.3.0/protoc-3.3.0-linux-x86_64.exe + ""|3.5.0) + OLD_VERSION=3.5.0 + OLD_VERSION_PROTOC=http://repo1.maven.org/maven2/com/google/protobuf/protoc/$OLD_VERSION/protoc-$OLD_VERSION-linux-x86_64.exe ;; *) echo "[ERROR]: Unknown version number: $1" @@ -81,7 +98,7 @@ git checkout v$OLD_VERSION popd # Build and copy the new runtime -use_php 5.5 +use_php 7.1 pushd ../ext/google/protobuf make clean || true phpize && ./configure && make @@ -99,12 +116,12 @@ chmod +x old_protoc NEW_PROTOC=`pwd`/../../src/protoc OLD_PROTOC=`pwd`/old_protoc cd protobuf/php -cp -r /usr/local/vendor-5.5 vendor -wget https://phar.phpunit.de/phpunit-4.8.0.phar -O /usr/bin/phpunit +composer install # Remove implementation detail tests. tests=( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php ) sed -i.bak '/php_implementation_test.php/d' phpunit.xml +sed -i.bak '/generated_phpdoc_test.php/d' phpunit.xml for t in "${tests[@]}" do remove_error_test tests/$t @@ -118,7 +135,7 @@ cd tests generate_proto $OLD_PROTOC $OLD_PROTOC ./test.sh pushd .. -phpunit +./vendor/bin/phpunit popd # Test A.2: @@ -127,7 +144,7 @@ popd generate_proto $NEW_PROTOC $OLD_PROTOC ./test.sh pushd .. -phpunit +./vendor/bin/phpunit popd # Test A.3: @@ -136,5 +153,5 @@ popd generate_proto $OLD_PROTOC $NEW_PROTOC ./test.sh pushd .. -phpunit +./vendor/bin/phpunit popd diff --git a/php/tests/descriptors_test.php b/php/tests/descriptors_test.php index 17e8a4f2..93683b82 100644 --- a/php/tests/descriptors_test.php +++ b/php/tests/descriptors_test.php @@ -10,7 +10,7 @@ use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\MapField; use Descriptors\TestDescriptorsEnum; use Descriptors\TestDescriptorsMessage; -use Descriptors\TestDescriptorsMessage_Sub; +use Descriptors\TestDescriptorsMessage\Sub; class DescriptorsTest extends TestBase { diff --git a/php/tests/encode_decode_test.php b/php/tests/encode_decode_test.php index 4dca922b..d36b883e 100644 --- a/php/tests/encode_decode_test.php +++ b/php/tests/encode_decode_test.php @@ -7,7 +7,7 @@ use Google\Protobuf\RepeatedField; use Google\Protobuf\GPBType; use Foo\TestEnum; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; use Foo\TestPackedMessage; use Foo\TestRandomFieldOrder; use Foo\TestUnpackedMessage; @@ -82,7 +82,7 @@ class EncodeDecodeTest extends TestBase $n->mergeFromString($data); $this->assertSame('abc', $n->getOneofString()); - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $sub_m->setA(1); $m->setOneofMessage($sub_m); $data = $m->serializeToString(); @@ -105,7 +105,7 @@ class EncodeDecodeTest extends TestBase $this->assertSame("oneof_string", $n->getMyOneof()); $this->assertSame("", $n->getOneofString()); - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $m->setOneofMessage($sub_m); $data = $m->serializeToString(); $n = new TestMessage(); @@ -443,29 +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() diff --git a/php/tests/gdb_test.sh b/php/tests/gdb_test.sh index 484e2edf..36fa31bb 100755 --- a/php/tests/gdb_test.sh +++ b/php/tests/gdb_test.sh @@ -1,9 +1,17 @@ #!/bin/bash +VERSION=$1 + +export PATH=/usr/local/php-$VERSION/bin:$PATH +export C_INCLUDE_PATH=/usr/local/php-$VERSION/include/php/main:/usr/local/php-$VERSION/include/php:$C_INCLUDE_PATH +export CPLUS_INCLUDE_PATH=/usr/local/php-$VERSION/include/php/main:/usr/local/php-$VERSION/include/php:$CPLUS_INCLUDE_PATH + +php -i | grep "Configuration" + # gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which # phpunit` --bootstrap autoload.php tmp_test.php # -gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php encode_decode_test.php +gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php generated_class_test.php # # gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so memory_leak_test.php # diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php index 53d18ee7..9f20bddc 100644 --- a/php/tests/generated_class_test.php +++ b/php/tests/generated_class_test.php @@ -8,14 +8,20 @@ require_once('test_util.php'); use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\MapField; use Google\Protobuf\Internal\GPBType; +use Bar\TestLegacyMessage; +use Bar\TestLegacyMessage_NestedEnum; +use Bar\TestLegacyMessage_NestedMessage; use Foo\TestEnum; use Foo\TestIncludeNamespaceMessage; use Foo\TestIncludePrefixMessage; use Foo\TestMessage; +use Foo\TestMessage\Sub; use Foo\TestMessage_Sub; +use Foo\TestMessage\NestedEnum; use Foo\TestReverseFieldOrder; use Foo\testLowerCaseMessage; use Foo\testLowerCaseEnum; +use PBEmpty\PBEcho\TestEmptyPackage; use Php\Test\TestNamespace; class GeneratedClassTest extends TestBase @@ -231,9 +237,26 @@ class GeneratedClassTest extends TestBase public function testNestedEnum() { $m = new TestMessage(); + $m->setOptionalNestedEnum(NestedEnum::ZERO); + } + + public function testLegacyNestedEnum() + { + $m = new TestMessage(); $m->setOptionalNestedEnum(\Foo\TestMessage_NestedEnum::ZERO); } + public function testLegacyTypehintWithNestedEnums() + { + $this->legacyEnum(new TestLegacyMessage\NestedEnum); + } + + private function legacyEnum(TestLegacyMessage_NestedEnum $enum) + { + // If we made it here without a PHP Fatal error, the typehint worked + $this->assertTrue(true); + } + ######################################################### # Test float field. ######################################################### @@ -370,6 +393,20 @@ class GeneratedClassTest extends TestBase { $m = new TestMessage(); + $sub_m = new Sub(); + $sub_m->setA(1); + $m->setOptionalMessage($sub_m); + $this->assertSame(1, $m->getOptionalMessage()->getA()); + + $null = null; + $m->setOptionalMessage($null); + $this->assertNull($m->getOptionalMessage()); + } + + public function testLegacyMessageField() + { + $m = new TestMessage(); + $sub_m = new TestMessage_Sub(); $sub_m->setA(1); $m->setOptionalMessage($sub_m); @@ -380,6 +417,17 @@ class GeneratedClassTest extends TestBase $this->assertNull($m->getOptionalMessage()); } + public function testLegacyTypehintWithNestedMessages() + { + $this->legacyMessage(new TestLegacyMessage\NestedMessage); + } + + private function legacyMessage(TestLegacyMessage_NestedMessage $sub) + { + // If we made it here without a PHP Fatal error, the typehint worked + $this->assertTrue(true); + } + ######################################################### # Test repeated field. ######################################################### @@ -474,7 +522,7 @@ class GeneratedClassTest extends TestBase $this->assertSame(NULL, $m->getOneofMessage()); $this->assertSame("oneof_string", $m->getMyOneof()); - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $sub_m->setA(1); $m->setOneofMessage($sub_m); $this->assertSame(0, $m->getOneofInt32()); @@ -513,7 +561,7 @@ class GeneratedClassTest extends TestBase // Singular $n->setOptionalInt32(100); - $sub1 = new TestMessage_Sub(); + $sub1 = new Sub(); $sub1->setA(101); $b = $sub1->getB(); @@ -531,7 +579,7 @@ class GeneratedClassTest extends TestBase $repeatedString[] = 'abc'; $n->setRepeatedString($repeatedString); - $sub2 = new TestMessage_Sub(); + $sub2 = new Sub(); $sub2->setA(201); $repeatedMessage = $n->getRepeatedMessage(); $repeatedMessage[] = $sub2; @@ -548,9 +596,9 @@ class GeneratedClassTest extends TestBase $n->setMapStringString($mapStringString); $mapInt32Message = $n->getMapInt32Message(); - $mapInt32Message[1] = new TestMessage_Sub(); + $mapInt32Message[1] = new Sub(); $mapInt32Message[1]->setA(302); - $mapInt32Message[2] = new TestMessage_Sub(); + $mapInt32Message[2] = new Sub(); $mapInt32Message[2]->setA(303); $n->setMapInt32Message($mapInt32Message); @@ -607,7 +655,7 @@ class GeneratedClassTest extends TestBase $m->mergeFrom($n); $this->assertSame(1, $m->getOneofInt32()); - $sub = new TestMessage_Sub(); + $sub = new Sub(); $n->setOneofMessage($sub); $n->getOneofMessage()->setA(400); $m->mergeFrom($n); @@ -630,14 +678,15 @@ class GeneratedClassTest extends TestBase public function testMessageWithoutNamespace() { $m = new TestMessage(); - $sub = new NoNameSpaceMessage(); - $m->setOptionalNoNamespaceMessage($sub); + $n = new NoNameSpaceMessage(); + $m->setOptionalNoNamespaceMessage($n); $repeatedNoNamespaceMessage = $m->getRepeatedNoNamespaceMessage(); $repeatedNoNamespaceMessage[] = new NoNameSpaceMessage(); $m->setRepeatedNoNamespaceMessage($repeatedNoNamespaceMessage); - $n = new NoNamespaceMessage(); - $n->setB(NoNamespaceMessage_NestedEnum::ZERO); + // test nested messages + $sub = new NoNamespaceMessage\NestedMessage(); + $n->setNestedMessage($sub); } public function testEnumWithoutNamespace() @@ -650,35 +699,91 @@ class GeneratedClassTest extends TestBase } ######################################################### - # Test message with given prefix. + # Test message with given namespace. ######################################################### - public function testPrefixMessage() + public function testNestedMessagesAndEnums() { + $m = new TestMessage(); + $n = new TestMessage\Sub(); + $m->setOptionalMessage($n); + $m->setOptionalNestedEnum(TestMessage\NestedEnum::ZERO); + $this->assertSame($n, $m->getOptionalMessage()); + $this->assertSame(TestMessage\NestedEnum::ZERO, $m->getOptionalNestedEnum()); + } + + public function testMessagesAndEnumsWithPrefix() + { + // Test message prefix $m = new TestIncludePrefixMessage(); $n = new PrefixTestPrefix(); $n->setA(1); $m->setPrefixMessage($n); $this->assertSame(1, $m->getPrefixMessage()->getA()); + + // Test nested message prefix + $o = new PrefixTestPrefix(); + $p = new PrefixTestPrefix\PrefixNestedMessage(); + $o->setNestedMessage($p); + $o->setNestedEnum(PrefixTestPrefix\PrefixNestedEnum::ZERO); + $this->assertSame($p, $o->getNestedMessage()); + $this->assertSame(PrefixTestPrefix\PrefixNestedEnum::ZERO, $o->getNestedEnum()); } - ######################################################### - # Test message with given namespace. - ######################################################### + public function testMessagesAndEnumsWithPhpNamespace() + { + $m = new TestNamespace(); + $n = new TestNamespace\NestedMessage(); + $m->setNestedMessage($n); + $m->setNestedEnum(TestNamespace\NestedEnum::ZERO); + $this->assertSame($n, $m->getNestedMessage()); + $this->assertSame(TestNamespace\NestedEnum::ZERO, $m->getNestedEnum()); + } - public function testNamespaceMessage() + public function testMesssagesAndEnumsWithEmptyPhpNamespace() { - $m = new TestIncludeNamespaceMessage(); + $m = new TestEmptyNamespace(); + $n = new TestEmptyNamespace\NestedMessage(); + $m->setNestedMessage($n); + $m->setNestedEnum(TestEmptyNamespace\NestedEnum::ZERO); + $this->assertSame($n, $m->getNestedMessage()); + $this->assertSame(TestEmptyNamespace\NestedEnum::ZERO, $m->getNestedEnum()); + } - $n = new TestNamespace(); - $n->setA(1); - $m->setNamespaceMessage($n); - $this->assertSame(1, $m->getNamespaceMessage()->getA()); + public function testMessagesAndEnumsWithNoNamespace() + { + $m = new NoNamespaceMessage(); + $n = new NoNamespaceMessage\NestedMessage(); + $m->setNestedMessage($n); + $m->setNestedEnum(NoNamespaceMessage\NestedEnum::ZERO); + $this->assertSame($n, $m->getNestedMessage()); + $this->assertSame(NoNamespaceMessage\NestedEnum::ZERO, $m->getNestedEnum()); + } - $n = new TestEmptyNamespace(); - $n->setA(1); - $m->setEmptyNamespaceMessage($n); - $this->assertSame(1, $m->getEmptyNamespaceMessage()->getA()); + public function testReservedWordsInPackageName() + { + $m = new TestEmptyPackage(); + $n = new TestEmptyPackage\NestedMessage(); + $m->setNestedMessage($n); + $m->setNestedEnum(TestEmptyPackage\NestedEnum::ZERO); + $this->assertSame($n, $m->getNestedMessage()); + $this->assertSame(TestEmptyPackage\NestedEnum::ZERO, $m->getNestedEnum()); + } + + public function testReservedWordsInNamespace() + { + $m = new TestNamespace(); + $n = new TestNamespace\PBEmpty(); + $o = new TestNamespace\PBEmpty\NestedMessage(); + $n->setNestedMessage($o); + $n->setNestedEnum(TestNamespace\PBEmpty\NestedEnum::ZERO); + $m->setReservedName($n); + $this->assertSame($n, $m->getReservedName()); + $this->assertSame($o, $n->getNestedMessage()); + $this->assertSame( + TestNamespace\PBEmpty\NestedEnum::ZERO, + $n->getNestedEnum() + ); } ######################################################### @@ -687,7 +792,7 @@ class GeneratedClassTest extends TestBase public function testPrefixForReservedWords() { - $m = new \Foo\TestMessage_Empty(); + $m = new \Foo\TestMessage\PBEmpty(); $m = new \Foo\PBEmpty(); $m = new \PrefixEmpty(); $m = new \Foo\PBARRAY(); @@ -1171,4 +1276,70 @@ class GeneratedClassTest extends TestBase $m = new testLowerCaseMessage(); $n = testLowerCaseEnum::VALUE; } + + ######################################################### + # Test Array Constructor. + ######################################################### + + public function testArrayConstructor() + { + $m = new TestMessage([ + 'optional_int32' => -42, + 'optional_int64' => -43, + 'optional_uint32' => 42, + 'optional_uint64' => 43, + 'optional_sint32' => -44, + 'optional_sint64' => -45, + 'optional_fixed32' => 46, + 'optional_fixed64' => 47, + 'optional_sfixed32' => -46, + 'optional_sfixed64' => -47, + 'optional_float' => 1.5, + 'optional_double' => 1.6, + 'optional_bool' => true, + 'optional_string' => 'a', + 'optional_bytes' => 'b', + 'optional_enum' => TestEnum::ONE, + 'optional_message' => new Sub([ + 'a' => 33 + ]), + 'repeated_int32' => [-42, -52], + 'repeated_int64' => [-43, -53], + 'repeated_uint32' => [42, 52], + 'repeated_uint64' => [43, 53], + 'repeated_sint32' => [-44, -54], + 'repeated_sint64' => [-45, -55], + 'repeated_fixed32' => [46, 56], + 'repeated_fixed64' => [47, 57], + 'repeated_sfixed32' => [-46, -56], + 'repeated_sfixed64' => [-47, -57], + 'repeated_float' => [1.5, 2.5], + 'repeated_double' => [1.6, 2.6], + 'repeated_bool' => [true, false], + 'repeated_string' => ['a', 'c'], + 'repeated_bytes' => ['b', 'd'], + 'repeated_enum' => [TestEnum::ZERO, TestEnum::ONE], + 'repeated_message' => [new Sub(['a' => 34]), + new Sub(['a' => 35])], + 'map_int32_int32' => [-62 => -62], + 'map_int64_int64' => [-63 => -63], + 'map_uint32_uint32' => [62 => 62], + 'map_uint64_uint64' => [63 => 63], + 'map_sint32_sint32' => [-64 => -64], + 'map_sint64_sint64' => [-65 => -65], + 'map_fixed32_fixed32' => [66 => 66], + 'map_fixed64_fixed64' => [67 => 67], + 'map_sfixed32_sfixed32' => [-68 => -68], + 'map_sfixed64_sfixed64' => [-69 => -69], + 'map_int32_float' => [1 => 3.5], + 'map_int32_double' => [1 => 3.6], + 'map_bool_bool' => [true => true], + 'map_string_string' => ['e' => 'e'], + 'map_int32_bytes' => [1 => 'f'], + 'map_int32_enum' => [1 => TestEnum::ONE], + 'map_int32_message' => [1 => new Sub(['a' => 36])], + ]); + + TestUtil::assertTestMessage($m); + } } diff --git a/php/tests/generated_phpdoc_test.php b/php/tests/generated_phpdoc_test.php index 6c1a26f7..526927fc 100644 --- a/php/tests/generated_phpdoc_test.php +++ b/php/tests/generated_phpdoc_test.php @@ -16,6 +16,14 @@ class GeneratedPhpdocTest extends TestBase $this->assertContains('foo.TestMessage', $doc); } + public function testPhpDocForConstructor() + { + $class = new ReflectionClass('Foo\TestMessage'); + $doc = $class->getMethod('__construct')->getDocComment(); + $this->assertContains('@param array $data', $doc); + $this->assertContains('@type int $optional_int32', $doc); + } + /** * @dataProvider providePhpDocForGettersAndSetters */ @@ -193,7 +201,7 @@ class GeneratedPhpdocTest extends TestBase [ 'setRepeatedMessage', ], - '@param \Foo\TestMessage_Sub[]|\Google\Protobuf\Internal\RepeatedField $var' + '@param \Foo\TestMessage\Sub[]|\Google\Protobuf\Internal\RepeatedField $var' ], [ [ @@ -286,14 +294,14 @@ class GeneratedPhpdocTest extends TestBase 'getOptionalMessage', 'getOneofMessage' ], - '@return \Foo\TestMessage_Sub' + '@return \Foo\TestMessage\Sub' ], [ [ 'setOptionalMessage', 'setOneofMessage' ], - '@param \Foo\TestMessage_Sub $var' + '@param \Foo\TestMessage\Sub $var' ], [ [ diff --git a/php/tests/map_field_test.php b/php/tests/map_field_test.php index cffa2526..447bdd9b 100644 --- a/php/tests/map_field_test.php +++ b/php/tests/map_field_test.php @@ -5,7 +5,7 @@ require_once('test_util.php'); use Google\Protobuf\Internal\GPBType; use Google\Protobuf\Internal\MapField; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; class MapFieldTest extends PHPUnit_Framework_TestCase { @@ -408,10 +408,10 @@ class MapFieldTest extends PHPUnit_Framework_TestCase { public function testMessage() { $arr = new MapField(GPBType::INT32, - GPBType::MESSAGE, TestMessage_Sub::class); + GPBType::MESSAGE, Sub::class); // Test append. - $sub_m = new TestMessage_Sub(); + $sub_m = new Sub(); $sub_m->setA(1); $arr[0] = $sub_m; $this->assertSame(1, $arr[0]->getA()); @@ -420,9 +420,9 @@ class MapFieldTest extends PHPUnit_Framework_TestCase { // Test foreach. $arr = new MapField(GPBType::INT32, - GPBType::MESSAGE, TestMessage_Sub::class); + GPBType::MESSAGE, Sub::class); for ($i = 0; $i < 3; $i++) { - $arr[$i] = new TestMessage_Sub();; + $arr[$i] = new Sub();; $arr[$i]->setA($i); } $i = 0; diff --git a/php/tests/memory_leak_test.php b/php/tests/memory_leak_test.php index b76c8bff..4e3874b7 100644 --- a/php/tests/memory_leak_test.php +++ b/php/tests/memory_leak_test.php @@ -4,20 +4,28 @@ require_once('generated/NoNamespaceEnum.php'); require_once('generated/NoNamespaceMessage.php'); -require_once('generated/NoNamespaceMessage_NestedEnum.php'); +require_once('generated/NoNamespaceMessage/NestedEnum.php'); +require_once('generated/NoNamespaceMessage/NestedMessage.php'); require_once('generated/PrefixEmpty.php'); require_once('generated/PrefixTestPrefix.php'); +require_once('generated/PrefixTestPrefix/PrefixNestedEnum.php'); +require_once('generated/PrefixTestPrefix/PrefixNestedMessage.php'); require_once('generated/TestEmptyNamespace.php'); +require_once('generated/TestEmptyNamespace/NestedEnum.php'); +require_once('generated/TestEmptyNamespace/NestedMessage.php'); require_once('generated/Bar/TestInclude.php'); +require_once('generated/Bar/TestLegacyMessage.php'); +require_once('generated/Bar/TestLegacyMessage/NestedEnum.php'); +require_once('generated/Bar/TestLegacyMessage/NestedMessage.php'); require_once('generated/Foo/PBARRAY.php'); require_once('generated/Foo/PBEmpty.php'); require_once('generated/Foo/TestEnum.php'); require_once('generated/Foo/TestIncludeNamespaceMessage.php'); require_once('generated/Foo/TestIncludePrefixMessage.php'); require_once('generated/Foo/TestMessage.php'); -require_once('generated/Foo/TestMessage_Empty.php'); -require_once('generated/Foo/TestMessage_NestedEnum.php'); -require_once('generated/Foo/TestMessage_Sub.php'); +require_once('generated/Foo/TestMessage/PBEmpty.php'); +require_once('generated/Foo/TestMessage/NestedEnum.php'); +require_once('generated/Foo/TestMessage/Sub.php'); require_once('generated/Foo/TestPackedMessage.php'); require_once('generated/Foo/TestPhpDoc.php'); require_once('generated/Foo/TestRandomFieldOrder.php'); @@ -26,18 +34,23 @@ require_once('generated/Foo/TestUnpackedMessage.php'); require_once('generated/Foo/testLowerCaseMessage.php'); require_once('generated/Foo/testLowerCaseEnum.php'); require_once('generated/GPBMetadata/Proto/Test.php'); -require_once('generated/GPBMetadata/Proto/TestEmptyPhpNamespace.php'); +require_once('generated/TestEmptyPhpNamespace.php'); require_once('generated/GPBMetadata/Proto/TestInclude.php'); -require_once('generated/GPBMetadata/Proto/TestNoNamespace.php'); -require_once('generated/GPBMetadata/Proto/TestPhpNamespace.php'); +require_once('generated/TestNoNamespace.php'); +require_once('generated/Metadata/Php/Test/TestPhpNamespace.php'); require_once('generated/GPBMetadata/Proto/TestPrefix.php'); require_once('generated/Php/Test/TestNamespace.php'); +require_once('generated/Php/Test/TestNamespace/PBEmpty.php'); +require_once('generated/Php/Test/TestNamespace/PBEmpty/NestedEnum.php'); +require_once('generated/Php/Test/TestNamespace/PBEmpty/NestedMessage.php'); +require_once('generated/Php/Test/TestNamespace/NestedEnum.php'); +require_once('generated/Php/Test/TestNamespace/NestedMessage.php'); require_once('test_util.php'); use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBType; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; $from = new TestMessage(); TestUtil::setTestMessage($from); @@ -50,7 +63,15 @@ $to->mergeFromString($data); TestUtil::assertTestMessage($to); -$from->setRecursive($from); +$from = new TestMessage(); +TestUtil::setTestMessage2($from); + +$data = $from->serializeToString(); + +$to->mergeFromString($data); + +// TODO(teboring): This causes following tests fail in php7. +# $from->setRecursive($from); $arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class); $arr[] = new TestMessage; @@ -89,7 +110,7 @@ $n = new TestMessage(); $n->mergeFromString($data); assert('abc' === $n->getOneofString()); -$sub_m = new TestMessage_Sub(); +$sub_m = new Sub(); $sub_m->setA(1); $m->setOneofMessage($sub_m); assert(0 === $m->getOneofInt32()); @@ -103,10 +124,70 @@ assert(1 === $n->getOneofMessage()->getA()); $m = new TestMessage(); $m->mergeFromString(hex2bin('F80601')); -assert('F80601', bin2hex($m->serializeToString())); +assert('f80601' === bin2hex($m->serializeToString())); + +// Test create repeated field via array. +$str_arr = array("abc"); +$m = new TestMessage(); +$m->setRepeatedString($str_arr); + +// Test create map field via array. +$str_arr = array("abc"=>"abc"); +$m = new TestMessage(); +$m->setMapStringString($str_arr); + +// Test unset +$from = new TestMessage(); +TestUtil::setTestMessage($from); +unset($from); + +// Test wellknown +$from = new \Google\Protobuf\Timestamp(); +$from->setSeconds(1); +assert(1, $from->getSeconds()); + +$timestamp = new \Google\Protobuf\Timestamp(); -# $from = new TestMessage(); -# $to = new TestMessage(); -# TestUtil::setTestMessage($from); -# $to->mergeFrom($from); -# TestUtil::assertTestMessage($to); +date_default_timezone_set('UTC'); +$from = new DateTime('2011-01-01T15:03:01.012345UTC'); +$timestamp->fromDateTime($from); +assert($from->format('U') == $timestamp->getSeconds()); +assert(0 == $timestamp->getNanos()); + +$to = $timestamp->toDateTime(); +assert(\DateTime::class == get_class($to)); +assert($from->format('U') == $to->format('U')); + +$from = new \Google\Protobuf\Value(); +$from->setNumberValue(1); +assert(1, $from->getNumberValue()); + +// Test discard unknown in message. +$m = new TestMessage(); +$from = hex2bin('F80601'); +$m->mergeFromString($from); +$m->discardUnknownFields(); +$to = $m->serializeToString(); +assert("" === bin2hex($to)); + +// Test clear +$m = new TestMessage(); +TestUtil::setTestMessage($m); +$m->clear(); + +// Test unset map element +$m = new TestMessage(); +$map = $m->getMapStringString(); +$map[1] = 1; +unset($map[1]); + +// Test descriptor +$pool = \Google\Protobuf\DescriptorPool::getGeneratedPool(); +$desc = $pool->getDescriptorByClassName("\Foo\TestMessage"); +$field = $desc->getField(1); + +$from = new TestMessage(); +$to = new TestMessage(); +TestUtil::setTestMessage($from); +$to->mergeFrom($from); +TestUtil::assertTestMessage($to); diff --git a/php/tests/php_implementation_test.php b/php/tests/php_implementation_test.php index 5dbc9233..323a36ff 100644 --- a/php/tests/php_implementation_test.php +++ b/php/tests/php_implementation_test.php @@ -3,8 +3,9 @@ require_once('test_base.php'); require_once('test_util.php'); +use Foo\TestEnum; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; use Foo\TestPackedMessage; use Google\Protobuf\Internal\CodedInputStream; use Google\Protobuf\Internal\FileDescriptorSet; @@ -15,7 +16,6 @@ use Google\Protobuf\Internal\CodedOutputStream; class ImplementationTest extends TestBase { - public function testReadInt32() { $value = null; @@ -513,4 +513,75 @@ class ImplementationTest extends TestBase TestUtil::setTestPackedMessage($m); $this->assertSame(166, $m->byteSize()); } + + /** + * @expectedException UnexpectedValueException + * @expectedExceptionMessage Invalid message property: optionalInt32 + */ + public function testArrayConstructorJsonCaseThrowsException() + { + $m = new TestMessage([ + 'optionalInt32' => -42, + ]); + } + + /** + * @expectedException Exception + * @expectedExceptionMessage Expect Foo\TestMessage_Sub. + */ + public function testArraysForMessagesThrowsException() + { + $m = new TestMessage([ + 'optional_message' => [ + 'a' => 33 + ] + ]); + } + + public function testArrayConstructorWithNullValues() + { + $requestData = [ + 'optional_bool' => null, + 'optional_string' => null, + 'optional_bytes' => null, + 'optional_message' => null, + ]; + + $m = new TestMessage($requestData); + + $this->assertSame(false, $m->getOptionalBool()); + $this->assertSame('', $m->getOptionalString()); + $this->assertSame('', $m->getOptionalBytes()); + $this->assertSame(null, $m->getOptionalMessage()); + } + + /** + * @dataProvider provideArrayConstructorWithNullValuesThrowsException + * @expectedException Exception + */ + public function testArrayConstructorWithNullValuesThrowsException($requestData) + { + $m = new TestMessage($requestData); + } + + public function provideArrayConstructorWithNullValuesThrowsException() + { + return [ + [['optional_int32' => null]], + [['optional_int64' => null]], + [['optional_uint32' => null]], + [['optional_uint64' => null]], + [['optional_sint32' => null]], + [['optional_sint64' => null]], + [['optional_fixed32' => null]], + [['optional_fixed64' => null]], + [['optional_sfixed32' => null]], + [['optional_sfixed64' => null]], + [['optional_float' => null]], + [['optional_double' => null]], + [['optional_enum' => null]], + [['repeated_int32' => null]], + [['map_int32_int32' => null]], + ]; + } } diff --git a/php/tests/proto/empty/echo.proto b/php/tests/proto/empty/echo.proto new file mode 100644 index 00000000..1817018d --- /dev/null +++ b/php/tests/proto/empty/echo.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package empty.echo; + +message TestEmptyPackage { + int32 a = 1; + + // Test nested messages, enums, and reserved names + NestedMessage nested_message = 2; + NestedEnum nested_enum = 3; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + }; +} diff --git a/php/tests/proto/test_empty_php_namespace.proto b/php/tests/proto/test_empty_php_namespace.proto index 7b4bc74d..c7ed1657 100644 --- a/php/tests/proto/test_empty_php_namespace.proto +++ b/php/tests/proto/test_empty_php_namespace.proto @@ -2,7 +2,18 @@ syntax = "proto3"; package foo; option php_namespace = ""; +option php_metadata_namespace = ""; message TestEmptyNamespace { int32 a = 1; + + // Test nested messages, enums, and reserved names + NestedMessage nested_message = 2; + NestedEnum nested_enum = 3; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + }; } diff --git a/php/tests/proto/test_include.proto b/php/tests/proto/test_include.proto index 9844617f..a9072fe3 100644 --- a/php/tests/proto/test_include.proto +++ b/php/tests/proto/test_include.proto @@ -5,3 +5,14 @@ package bar; message TestInclude { int32 a = 1; } + +message TestLegacyMessage { + NestedMessage message = 1; + NestedEnum enum = 2; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + } +} diff --git a/php/tests/proto/test_no_namespace.proto b/php/tests/proto/test_no_namespace.proto index 58f13d47..cce42ea2 100644 --- a/php/tests/proto/test_no_namespace.proto +++ b/php/tests/proto/test_no_namespace.proto @@ -1,13 +1,19 @@ syntax = "proto3"; +option php_metadata_namespace = "\\"; + message NoNamespaceMessage { int32 a = 1; - enum NestedEnum { - ZERO = 0; + // Test nested messages, enums, and reserved names + NestedMessage nested_message = 2; + NestedEnum nested_enum = 3; + message NestedMessage { + int32 a = 1; } - NestedEnum b = 2; - repeated NestedEnum c = 3; + enum NestedEnum { + ZERO = 0; + }; } enum NoNamespaceEnum { diff --git a/php/tests/proto/test_php_namespace.proto b/php/tests/proto/test_php_namespace.proto index 713187b9..61085bf7 100644 --- a/php/tests/proto/test_php_namespace.proto +++ b/php/tests/proto/test_php_namespace.proto @@ -2,7 +2,30 @@ syntax = "proto3"; package foo; option php_namespace = "Php\\Test"; +option php_metadata_namespace = "Metadata\\Php\\Test"; message TestNamespace { int32 a = 1; + + // Test nested messages, enums, and reserved names + NestedMessage nested_message = 2; + NestedEnum nested_enum = 3; + Empty reserved_name = 4; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + }; + // Test reserved name + message Empty { + NestedMessage nested_message = 1; + NestedEnum nested_enum = 2; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + }; + } } diff --git a/php/tests/proto/test_prefix.proto b/php/tests/proto/test_prefix.proto index 9bfbad7f..3fa11381 100644 --- a/php/tests/proto/test_prefix.proto +++ b/php/tests/proto/test_prefix.proto @@ -4,6 +4,14 @@ option php_class_prefix = "Prefix"; message TestPrefix { int32 a = 1; + NestedMessage nested_message = 2; + NestedEnum nested_enum = 3; + message NestedMessage { + int32 a = 1; + } + enum NestedEnum { + ZERO = 0; + }; } // Test prefix for reserved words. diff --git a/php/tests/test.sh b/php/tests/test.sh index c35372d3..6e70eb2a 100755 --- a/php/tests/test.sh +++ b/php/tests/test.sh @@ -1,5 +1,11 @@ #!/bin/bash +VERSION=$1 + +export PATH=/usr/local/php-$VERSION/bin:$PATH +export C_INCLUDE_PATH=/usr/local/php-$VERSION/include/php/main:/usr/local/php-$VERSION/include/php:$C_INCLUDE_PATH +export CPLUS_INCLUDE_PATH=/usr/local/php-$VERSION/include/php/main:/usr/local/php-$VERSION/include/php:$CPLUS_INCLUDE_PATH + # Compile c extension pushd ../ext/google/protobuf/ make clean || true @@ -25,3 +31,15 @@ done export ZEND_DONT_UNLOAD_MODULES=1 export USE_ZEND_ALLOC=0 valgrind --leak-check=yes php -dextension=../ext/google/protobuf/modules/protobuf.so memory_leak_test.php + +# TODO(teboring): Only for debug (phpunit has memory leak which blocks this beging used by +# regresssion test.) + +# for t in "${tests[@]}" +# do +# echo "****************************" +# echo "* $t (memory leak)" +# echo "****************************" +# valgrind --leak-check=yes php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php $t +# echo "" +# done diff --git a/php/tests/test_base.php b/php/tests/test_base.php index dc5e73f5..80f603c7 100644 --- a/php/tests/test_base.php +++ b/php/tests/test_base.php @@ -2,7 +2,7 @@ use Foo\TestMessage; use Foo\TestEnum; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; class TestBase extends PHPUnit_Framework_TestCase { diff --git a/php/tests/test_util.php b/php/tests/test_util.php index c8afdd3e..a676d097 100644 --- a/php/tests/test_util.php +++ b/php/tests/test_util.php @@ -2,7 +2,7 @@ use Foo\TestEnum; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; use Foo\TestPackedMessage; use Foo\TestUnpackedMessage; @@ -67,7 +67,7 @@ class TestUtil $m->setOptionalString('a'); $m->setOptionalBytes('b'); $m->setOptionalEnum(TestEnum::ONE); - $sub = new TestMessage_Sub(); + $sub = new Sub(); $m->setOptionalMessage($sub); $m->getOptionalMessage()->SetA(33); @@ -87,7 +87,7 @@ class TestUtil self::appendHelper($m, 'RepeatedString', 'a'); self::appendHelper($m, 'RepeatedBytes', 'b'); self::appendHelper($m, 'RepeatedEnum', TestEnum::ZERO); - self::appendHelper($m, 'RepeatedMessage', new TestMessage_Sub()); + self::appendHelper($m, 'RepeatedMessage', new Sub()); $m->getRepeatedMessage()[0]->setA(34); self::appendHelper($m, 'RepeatedInt32', -52); @@ -106,7 +106,7 @@ class TestUtil self::appendHelper($m, 'RepeatedString', 'c'); self::appendHelper($m, 'RepeatedBytes', 'd'); self::appendHelper($m, 'RepeatedEnum', TestEnum::ONE); - self::appendHelper($m, 'RepeatedMessage', new TestMessage_Sub()); + self::appendHelper($m, 'RepeatedMessage', new Sub()); $m->getRepeatedMessage()[1]->SetA(35); self::kvUpdateHelper($m, 'MapInt32Int32', -62, -62); @@ -125,13 +125,13 @@ class TestUtil self::kvUpdateHelper($m, 'MapStringString', 'e', 'e'); self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'f'); self::kvUpdateHelper($m, 'MapInt32Enum', 1, TestEnum::ONE); - self::kvUpdateHelper($m, 'MapInt32Message', 1, new TestMessage_Sub()); + self::kvUpdateHelper($m, 'MapInt32Message', 1, new Sub()); $m->getMapInt32Message()[1]->SetA(36); } public static function setTestMessage2(TestMessage $m) { - $sub = new TestMessage_Sub(); + $sub = new Sub(); $m->setOptionalInt32(-142); $m->setOptionalInt64(-143); @@ -168,7 +168,7 @@ class TestUtil self::appendHelper($m, 'RepeatedString', 'aa'); self::appendHelper($m, 'RepeatedBytes', 'bb'); self::appendHelper($m, 'RepeatedEnum', TestEnum::TWO); - self::appendHelper($m, 'RepeatedMessage', new TestMessage_Sub()); + self::appendHelper($m, 'RepeatedMessage', new Sub()); $m->getRepeatedMessage()[0]->setA(134); self::kvUpdateHelper($m, 'MapInt32Int32', -62, -162); @@ -187,7 +187,7 @@ class TestUtil self::kvUpdateHelper($m, 'MapStringString', 'e', 'ee'); self::kvUpdateHelper($m, 'MapInt32Bytes', 1, 'ff'); self::kvUpdateHelper($m, 'MapInt32Enum', 1, TestEnum::TWO); - self::kvUpdateHelper($m, 'MapInt32Message', 1, new TestMessage_Sub()); + self::kvUpdateHelper($m, 'MapInt32Message', 1, new Sub()); $m->getMapInt32Message()[1]->SetA(136); self::kvUpdateHelper($m, 'MapInt32Int32', -162, -162); @@ -206,7 +206,7 @@ class TestUtil self::kvUpdateHelper($m, 'MapStringString', 'ee', 'ee'); self::kvUpdateHelper($m, 'MapInt32Bytes', 2, 'ff'); self::kvUpdateHelper($m, 'MapInt32Enum', 2, TestEnum::TWO); - self::kvUpdateHelper($m, 'MapInt32Message', 2, new TestMessage_Sub()); + self::kvUpdateHelper($m, 'MapInt32Message', 2, new Sub()); $m->getMapInt32Message()[2]->SetA(136); } diff --git a/php/tests/undefined_test.php b/php/tests/undefined_test.php index dc6b7086..935d8be7 100644 --- a/php/tests/undefined_test.php +++ b/php/tests/undefined_test.php @@ -5,7 +5,7 @@ require_once('test_util.php'); use Google\Protobuf\Internal\RepeatedField; use Google\Protobuf\Internal\GPBType; use Foo\TestMessage; -use Foo\TestMessage_Sub; +use Foo\TestMessage\Sub; class UndefinedTest extends PHPUnit_Framework_TestCase { @@ -35,7 +35,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt32AppendMessageFail() { $arr = new RepeatedField(GPBType::INT32); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -45,7 +45,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::INT32); $arr[] = 0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -73,7 +73,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint32AppendMessageFail() { $arr = new RepeatedField(GPBType::UINT32); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -83,7 +83,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::UINT32); $arr[] = 0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -111,7 +111,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt64AppendMessageFail() { $arr = new RepeatedField(GPBType::INT64); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -121,7 +121,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::INT64); $arr[] = 0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -149,7 +149,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint64AppendMessageFail() { $arr = new RepeatedField(GPBType::UINT64); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -159,7 +159,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::UINT64); $arr[] = 0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -187,7 +187,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testFloatAppendMessageFail() { $arr = new RepeatedField(GPBType::FLOAT); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -197,7 +197,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::FLOAT); $arr[] = 0.0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -225,7 +225,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testDoubleAppendMessageFail() { $arr = new RepeatedField(GPBType::DOUBLE); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -235,7 +235,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::DOUBLE); $arr[] = 0.0; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -244,7 +244,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testBoolAppendMessageFail() { $arr = new RepeatedField(GPBType::BOOL); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -254,7 +254,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::BOOL); $arr[] = true; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -263,7 +263,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testStringAppendMessageFail() { $arr = new RepeatedField(GPBType::STRING); - $arr[] = new TestMessage_Sub(); + $arr[] = new Sub(); } /** @@ -273,7 +273,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::STRING); $arr[] = 'abc'; - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -302,7 +302,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageAppendIntFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); $arr[] = 1; } @@ -311,8 +311,8 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageSetIntFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); - $arr[] = new TestMessage_Sub; + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); + $arr[] = new Sub; $arr[0] = 'abc'; } @@ -321,7 +321,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageAppendStringFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); $arr[] = 'abc'; } @@ -330,8 +330,8 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageSetStringFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); - $arr[] = new TestMessage_Sub; + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); + $arr[] = new Sub; $arr[0] = 'abc'; } @@ -340,7 +340,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageAppendOtherMessageFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); $arr[] = new TestMessage; } @@ -349,7 +349,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageAppendNullFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); $null = null; $arr[] = $null; } @@ -359,8 +359,8 @@ class UndefinedTest extends PHPUnit_Framework_TestCase */ public function testMessageSetNullFail() { - $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class); - $arr[] = new TestMessage_Sub(); + $arr = new RepeatedField(GPBType::MESSAGE, Sub::class); + $arr[] = new Sub(); $null = null; $arr[0] = $null; } @@ -397,7 +397,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new RepeatedField(GPBType::INT32); $arr[] = 0; - $arr[new TestMessage_Sub()] = 0; + $arr[new Sub()] = 0; } /** @@ -656,7 +656,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testMessageMergeFromInvalidTypeFail() { $m = new TestMessage(); - $n = new TestMessage_Sub(); + $n = new Sub(); $m->mergeFrom($n); } @@ -684,7 +684,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt32SetMessageKeyFail() { $arr = new MapField(GPBType::INT32, GPBType::INT32); - $arr[new TestMessage_Sub()] = 0; + $arr[new Sub()] = 0; } /** @@ -693,7 +693,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt32SetMessageValueFail() { $arr = new MapField(GPBType::INT32, GPBType::INT32); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -720,7 +720,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint32SetMessageKeyFail() { $arr = new MapField(GPBType::UINT32, GPBType::UINT32); - $arr[new TestMessage_Sub()] = 0; + $arr[new Sub()] = 0; } /** @@ -729,7 +729,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint32SetMessageValueFail() { $arr = new MapField(GPBType::UINT32, GPBType::UINT32); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -756,7 +756,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt64SetMessageKeyFail() { $arr = new MapField(GPBType::INT64, GPBType::INT64); - $arr[new TestMessage_Sub()] = 0; + $arr[new Sub()] = 0; } /** @@ -765,7 +765,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testInt64SetMessageValueFail() { $arr = new MapField(GPBType::INT64, GPBType::INT64); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -792,7 +792,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint64SetMessageKeyFail() { $arr = new MapField(GPBType::UINT64, GPBType::UINT64); - $arr[new TestMessage_Sub()] = 0; + $arr[new Sub()] = 0; } /** @@ -801,7 +801,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testUint64SetMessageValueFail() { $arr = new MapField(GPBType::UINT64, GPBType::UINT64); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -819,7 +819,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testDoubleSetMessageValueFail() { $arr = new MapField(GPBType::INT64, GPBType::DOUBLE); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** @@ -828,7 +828,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testBoolSetMessageKeyFail() { $arr = new MapField(GPBType::BOOL, GPBType::BOOL); - $arr[new TestMessage_Sub()] = true; + $arr[new Sub()] = true; } /** @@ -837,7 +837,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testBoolSetMessageValueFail() { $arr = new MapField(GPBType::BOOL, GPBType::BOOL); - $arr[true] = new TestMessage_Sub(); + $arr[true] = new Sub(); } /** @@ -864,7 +864,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testStringSetMessageKeyFail() { $arr = new MapField(GPBType::STRING, GPBType::STRING); - $arr[new TestMessage_Sub()] = 'abc'; + $arr[new Sub()] = 'abc'; } /** @@ -873,7 +873,7 @@ class UndefinedTest extends PHPUnit_Framework_TestCase public function testStringSetMessageValueFail() { $arr = new MapField(GPBType::STRING, GPBType::STRING); - $arr['abc'] = new TestMessage_Sub(); + $arr['abc'] = new Sub(); } /** @@ -903,13 +903,13 @@ class UndefinedTest extends PHPUnit_Framework_TestCase { $arr = new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class); - $arr[0] = new TestMessage_Sub(); + $arr[0] = new Sub(); } /** * @expectedException PHPUnit_Framework_Error */ - public function testMessageSetNullFail() + public function testMessageSetNullFailMap() { $arr = new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class); diff --git a/php/tests/well_known_test.php b/php/tests/well_known_test.php index a7760685..1e8c4f42 100644 --- a/php/tests/well_known_test.php +++ b/php/tests/well_known_test.php @@ -14,8 +14,8 @@ use Google\Protobuf\Enum; use Google\Protobuf\EnumValue; use Google\Protobuf\Field; use Google\Protobuf\FieldMask; -use Google\Protobuf\Field_Cardinality; -use Google\Protobuf\Field_Kind; +use Google\Protobuf\Field\Cardinality; +use Google\Protobuf\Field\Kind; use Google\Protobuf\FloatValue; use Google\Protobuf\GPBEmpty; use Google\Protobuf\Int32Value; @@ -206,11 +206,11 @@ class WellKnownTest extends TestBase { { $m = new Field(); - $m->setKind(Field_Kind::TYPE_DOUBLE); - $this->assertSame(Field_Kind::TYPE_DOUBLE, $m->getKind()); + $m->setKind(Kind::TYPE_DOUBLE); + $this->assertSame(Kind::TYPE_DOUBLE, $m->getKind()); - $m->setCardinality(Field_Cardinality::CARDINALITY_OPTIONAL); - $this->assertSame(Field_Cardinality::CARDINALITY_OPTIONAL, $m->getCardinality()); + $m->setCardinality(Cardinality::CARDINALITY_OPTIONAL); + $this->assertSame(Cardinality::CARDINALITY_OPTIONAL, $m->getCardinality()); $m->setNumber(1); $this->assertSame(1, $m->getNumber()); |