| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- goog.module('javascript.protobuf.conformance');
 
- const ConformanceRequest = goog.require('proto.conformance.ConformanceRequest');
 
- const ConformanceResponse = goog.require('proto.conformance.ConformanceResponse');
 
- const TestAllTypesProto2 = goog.require('proto.conformance.TestAllTypesProto2');
 
- const TestAllTypesProto3 = goog.require('proto.conformance.TestAllTypesProto3');
 
- const WireFormat = goog.require('proto.conformance.WireFormat');
 
- const base64 = goog.require('goog.crypt.base64');
 
- /**
 
-  * Creates a `proto.conformance.ConformanceResponse` response according to the
 
-  * `proto.conformance.ConformanceRequest` request.
 
-  * @param {!ConformanceRequest} request
 
-  * @return {!ConformanceResponse} response
 
-  */
 
- function doTest(request) {
 
-   const response = ConformanceResponse.createEmpty();
 
-   if(request.getPayloadCase() === ConformanceRequest.PayloadCase.JSON_PAYLOAD) {
 
-     response.setSkipped('Json is not supported as input format.');
 
-     return response;
 
-   }
 
-   if(request.getPayloadCase() === ConformanceRequest.PayloadCase.TEXT_PAYLOAD) {
 
-     response.setSkipped('Text format is not supported as input format.');
 
-     return response;
 
-   }
 
-   if(request.getPayloadCase() === ConformanceRequest.PayloadCase.PAYLOAD_NOT_SET) {
 
-     response.setRuntimeError('Request didn\'t have payload.');
 
-     return response;
 
-   }
 
-   if(request.getPayloadCase() !== ConformanceRequest.PayloadCase.PROTOBUF_PAYLOAD) {
 
-      throw new Error('Request didn\'t have accepted input format.');
 
-   }
 
-   if (request.getRequestedOutputFormat() === WireFormat.JSON) {
 
-     response.setSkipped('Json is not supported as output format.');
 
-     return response;
 
-   }
 
-   if (request.getRequestedOutputFormat() === WireFormat.TEXT_FORMAT) {
 
-     response.setSkipped('Text format is not supported as output format.');
 
-     return response;
 
-   }
 
-   if (request.getRequestedOutputFormat() === WireFormat.TEXT_FORMAT) {
 
-     response.setRuntimeError('Unspecified output format');
 
-     return response;
 
-   }
 
-   if (request.getRequestedOutputFormat() !== WireFormat.PROTOBUF) {
 
-     throw new Error('Request didn\'t have accepted output format.');
 
-   }
 
-   if (request.getMessageType() === 'conformance.FailureSet') {
 
-     response.setProtobufPayload(new ArrayBuffer(0));
 
-   } else if (
 
-       request.getMessageType() ===
 
-       'protobuf_test_messages.proto2.TestAllTypesProto2') {
 
-     try {
 
-       const testMessage =
 
-           TestAllTypesProto2.deserialize(request.getProtobufPayload());
 
-       response.setProtobufPayload(testMessage.serialize());
 
-     } catch (err) {
 
-       response.setParseError(err.toString());
 
-     }
 
-   } else if (
 
-       request.getMessageType() ===
 
-       'protobuf_test_messages.proto3.TestAllTypesProto3') {
 
-     try {
 
-       const testMessage =
 
-           TestAllTypesProto3.deserialize(request.getProtobufPayload());
 
-       response.setProtobufPayload(testMessage.serialize());
 
-     } catch (err) {
 
-       response.setParseError(err.toString());
 
-     }
 
-   } else {
 
-     throw new Error(
 
-         `Payload message not supported: ${request.getMessageType()}.`);
 
-   }
 
-   return response;
 
- }
 
- /**
 
-  * Same as doTest, but both request and response are in base64.
 
-  * @param {string} base64Request
 
-  * @return {string} response
 
-  */
 
- function runConformanceTest(base64Request) {
 
-   const request =
 
-       ConformanceRequest.deserialize(
 
-           base64.decodeStringToUint8Array(base64Request).buffer);
 
-   const response = doTest(request);
 
-   return base64.encodeByteArray(new Uint8Array(response.serialize()));
 
- }
 
- // Needed for node test
 
- exports.doTest = doTest;
 
- // Needed for browser test
 
- goog.exportSymbol('runConformanceTest', runConformanceTest);
 
 
  |