OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
google
/
gax
/
tests
/
Tests
/
Unit
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:35:16 AM
rwxr-xr-x
📄
AgentHeaderTest.php
5.89 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ApiExceptionTest.php
22.46 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ApiStatusTest.php
5.41 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ArrayTraitTest.php
5.71 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
BidiStreamTest.php
11.36 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ClientOptionsTraitTest.php
20.93 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
ClientStreamTest.php
6.04 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
CredentialsWrapperTest.php
24.32 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
FixedSizeCollectionTest.php
7.5 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GapicClientTraitTest.php
62.45 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GeneratedTestTest.php
4.5 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
GrpcSupportTraitTest.php
1.49 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
InsecureCredentialsWrapperTest.php
3.1 KB
08/12/2024 10:35:16 AM
rw-r--r--
📁
Middleware
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
MyMessage.php
743 bytes
08/12/2024 10:35:16 AM
rw-r--r--
📄
OperationResponseTest.php
16.37 KB
08/12/2024 10:35:16 AM
rw-r--r--
📁
Options
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
PageStreamingDescriptorTest.php
2.16 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PageTest.php
5.44 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PagedListResponseTest.php
5.69 KB
08/12/2024 10:35:16 AM
rw-r--r--
📄
PathTemplateTest.php
9.19 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ProtobufBandaidTest.php
1.15 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ProtobufExtensionTest.php
2.17 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
RequestBuilderTest.php
17.19 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
RequestParamsHeaderDescriptorTest.php
3.28 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ResourceHelperTraitTest.php
4.01 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
ResourceTemplate
-
08/12/2024 10:36:19 AM
rwxr-xr-x
📄
RetrySettingsTest.php
14.3 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
SerializerTest.php
10.21 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ServerStreamTest.php
7.4 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ServiceAddressTraitTest.php
2.2 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
TestTrait.php
4.72 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
Transport
-
08/12/2024 10:36:38 AM
rwxr-xr-x
📄
UriTraitTest.php
2.45 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
ValidationTraitTest.php
2.17 KB
08/12/2024 10:35:17 AM
rw-r--r--
📄
VersionTest.php
1.89 KB
08/12/2024 10:35:17 AM
rw-r--r--
📁
testdata
-
08/12/2024 10:36:45 AM
rwxr-xr-x
Editing: SerializerTest.php
Close
<?php /* * Copyright 2017 Google LLC * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ namespace Google\ApiCore\Tests\Unit; use Google\Api\HttpRule; use Google\ApiCore\Serializer; use Google\Protobuf\Any; use Google\Protobuf\FieldMask; use Google\Protobuf\ListValue; use Google\Protobuf\Struct; use Google\Protobuf\Value; use Google\Rpc\Status; use Google\Type\Color; use PHPUnit\Framework\TestCase; /** * @group core */ class SerializerTest extends TestCase { /** * @param \Google\Protobuf\Internal\Message $message A protobuf message * @param array $arrayStructure An array structure corresponding the expected encoding of $message */ private function verifySerializeAndDeserialize($message, $arrayStructure) { $serializer = new Serializer(); $klass = get_class($message); // Check that $message when encoded is equal to $arrayStructure $serializedMessage = $serializer->encodeMessage($message); $this->assertEquals($arrayStructure, $serializedMessage); // Check that $message when encoded and decoded is unchanged $deserializedMessage = $serializer->decodeMessage(new $klass(), $serializedMessage); $this->assertEquals($message, $deserializedMessage); // Check that $arrayStructure when decoded is equal to $message $deserializedStructure = $serializer->decodeMessage(new $klass(), $arrayStructure); $this->assertEquals($message, $deserializedStructure); // Check that $arrayStructure when decoded and encoded is unchanged $reserializedStructure = $serializer->encodeMessage($deserializedStructure); $this->assertEquals($arrayStructure, $reserializedStructure); } public function testStatusMessage() { $details = [new Any()]; $message = new Status(); $message->setMessage("message"); $message->setCode(0); $message->setDetails($details); $encodedMessage = [ 'message' => 'message', 'code' => 0, 'details' => [ [ 'typeUrl' => '', 'value' => '', ], ] ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRule() { $message = new HttpRule(); $encodedMessage = [ 'selector' => '', 'body' => '', 'responseBody' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRuleSetOneof() { $message = new HttpRule(); $message->setPatch(''); $encodedMessage = [ 'selector' => '', 'patch' => '', 'body' => '', 'responseBody' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testHttpRuleSetOneofToValue() { $message = new HttpRule(); $message->setPatch('test'); $encodedMessage = [ 'selector' => '', 'patch' => 'test', 'body' => '', 'responseBody' => '', 'additionalBindings' => [], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testFieldMask() { $message = new FieldMask(); $encodedMessage = [ 'paths' => [] ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testProperlyHandlesMessage() { $value = 'test'; // Using this class because it contains maps, oneofs and structs $message = new \Google\Protobuf\Struct(); $innerValue1 = new Value(); $innerValue1->setStringValue($value); $innerValue2 = new Value(); $innerValue2->setBoolValue(true); $structValue1 = new Value(); $structValue1->setStringValue(strtoupper($value)); $structValue2 = new Value(); $structValue2->setStringValue($value); $labels = [ strtoupper($value) => $structValue1, $value => $structValue2, ]; $innerStruct = new Struct(); $innerStruct->setFields($labels); $innerValue3 = new Value(); $innerValue3->setStructValue($innerStruct); $innerValues = [$innerValue1, $innerValue2, $innerValue3]; $listValue = new ListValue(); $listValue->setValues($innerValues); $fieldValue = new Value(); $fieldValue->setListValue($listValue); $fields = [ 'listField' => $fieldValue, ]; $message->setFields($fields); $encodedMessage = [ 'fields' => [ 'listField' => [ 'listValue' => [ 'values' => [ [ 'stringValue' => $value, ], [ 'boolValue' => true, ], [ 'structValue' => [ 'fields' => [ strtoupper($value) => [ 'stringValue' => strtoupper($value), ], $value => [ 'stringValue' => $value, ] ], ], ] ] ] ] ], ]; $this->verifySerializeAndDeserialize($message, $encodedMessage); } public function testSpecialEncodingDecodingByFieldName() { $serializer = new Serializer([ 'red' => function ($v) { return $v * 2; } ], [], [ 'red' => function ($v) { return $v / 2; } ]); $data = [ 'red' => 0.2, 'green' => 0.3, 'blue' => 0.4, 'alpha' => [ 'value' => 1.0 ] ]; $color = $serializer->decodeMessage(new Color(), $data); $this->assertEqualsWithDelta(0.1, $color->getRed(), 0.0000001); $this->assertEqualsWithDelta(0.3, $color->getGreen(), 0.0000001); $this->assertEqualsWithDelta(0.4, $color->getBlue(), 0.0000001); $alpha = $color->getAlpha(); $this->assertEqualsWithDelta(1.0, $alpha->getValue(), 0.0000001); $array = $serializer->encodeMessage($color); $this->assertEqualsWithDelta($data['red'], $array['red'], 0.0000001); $this->assertEqualsWithDelta($data['green'], $array['green'], 0.0000001); $this->assertEqualsWithDelta($data['blue'], $array['blue'], 0.0000001); $this->assertEqualsWithDelta($data['alpha']['value'], $array['alpha']['value'], 0.0000001); } public function testSpecialEncodingDecodingByFieldType() { $serializer = new Serializer([], [ 'google.protobuf.FloatValue' => function ($v) { return [ 'value' => $v['value'] * 2 ]; } ], [], [ 'google.protobuf.FloatValue' => function ($v) { return [ 'value' => $v['value'] / 2 ]; } ]); $data = [ 'red' => 0.2, 'green' => 0.3, 'blue' => 0.4, 'alpha' => [ 'value' => 1.0 ] ]; $color = $serializer->decodeMessage(new Color(), $data); $this->assertEqualsWithDelta(0.2, $color->getRed(), 0.0000001); $this->assertEqualsWithDelta(0.3, $color->getGreen(), 0.0000001); $this->assertEqualsWithDelta(0.4, $color->getBlue(), 0.0000001); $alpha = $color->getAlpha(); $this->assertEqualsWithDelta(0.5, $alpha->getValue(), 0.0000001); $array = $serializer->encodeMessage($color); $this->assertEqualsWithDelta($data['red'], $array['red'], 0.0000001); $this->assertEqualsWithDelta($data['green'], $array['green'], 0.0000001); $this->assertEqualsWithDelta($data['blue'], $array['blue'], 0.0000001); $this->assertEqualsWithDelta($data['alpha']['value'], $array['alpha']['value'], 0.0000001); } }