aboutsummaryrefslogtreecommitdiffstats
path: root/php/tests/array_test.php
diff options
context:
space:
mode:
authorPaul Yang <TeBoring@users.noreply.github.com>2019-01-23 12:44:20 -0800
committerGitHub <noreply@github.com>2019-01-23 12:44:20 -0800
commitd750fbf648256c7c631f51ffdbf67d7c18b0114e (patch)
treee9c2bab5239d05edf170b23cc96e9bc238395f17 /php/tests/array_test.php
parent30851ca2662c5a3e8323432bc660e37345f8fae1 (diff)
downloadplatform_external_protobuf-d750fbf648256c7c631f51ffdbf67d7c18b0114e.tar.gz
platform_external_protobuf-d750fbf648256c7c631f51ffdbf67d7c18b0114e.tar.bz2
platform_external_protobuf-d750fbf648256c7c631f51ffdbf67d7c18b0114e.zip
Fix more issues for reference values (#5613)
* Fix more issues for reference values * Revert change in gdb test * Add more tests
Diffstat (limited to 'php/tests/array_test.php')
-rw-r--r--php/tests/array_test.php44
1 files changed, 26 insertions, 18 deletions
diff --git a/php/tests/array_test.php b/php/tests/array_test.php
index d47a10776..b25140408 100644
--- a/php/tests/array_test.php
+++ b/php/tests/array_test.php
@@ -533,31 +533,39 @@ class RepeatedFieldTest extends \PHPUnit\Framework\TestCase
# Test reference in array
#########################################################
- public function testArrayElementIsReference()
+ public function testArrayElementIsReferenceInSetters()
{
+ // Bool elements
+ $values = [true];
+ array_walk($values, function (&$value) {});
$m = new TestMessage();
- $subs = [1, 2];
-
- foreach ($subs as &$sub) {
- $sub = new Sub(['a' => $sub]);
- }
+ $m->setRepeatedBool($values);
- $m->setRepeatedMessage($subs);
- }
+ // Int32 elements
+ $values = [1];
+ array_walk($values, function (&$value) {});
+ $m = new TestMessage();
+ $m->setRepeatedInt32($values);
- public function testArrayIsReference()
- {
- $keys = [['repeated_message' => [['a' => 1]]]];
+ // Double elements
+ $values = [1.0];
+ array_walk($values, function (&$value) {});
+ $m = new TestMessage();
+ $m->setRepeatedDouble($values);
- foreach ($keys as &$key) {
- foreach ($key['repeated_message'] as &$element) {
- $element = new Sub($element);
- }
- $key = new TestMessage($key);
- }
+ // String elements
+ $values = ['a'];
+ array_walk($values, function (&$value) {});
+ $m = new TestMessage();
+ $m->setRepeatedString($values);
+ // Message elements
$m = new TestMessage();
- $m->setRepeatedDeep($keys);
+ $subs = [1, 2];
+ foreach ($subs as &$sub) {
+ $sub = new Sub(['a' => $sub]);
+ }
+ $m->setRepeatedMessage($subs);
}
#########################################################