mirror of https://github.com/grpc/grpc-dart.git
Fix grpc-web issue when decoding empty repeated. (#187)
This commit is contained in:
parent
1578122a63
commit
8aa5b51760
|
@ -78,12 +78,11 @@ class _GrpcWebConversionSink extends ChunkedConversionSink<ByteBuffer> {
|
||||||
final dataLength = _dataHeader.buffer.asByteData().getUint32(0);
|
final dataLength = _dataHeader.buffer.asByteData().getUint32(0);
|
||||||
_dataOffset = 0;
|
_dataOffset = 0;
|
||||||
_state = _GrpcWebParseState.Message;
|
_state = _GrpcWebParseState.Message;
|
||||||
|
_data = new Uint8List(dataLength);
|
||||||
if (dataLength == 0) {
|
if (dataLength == 0) {
|
||||||
// empty message
|
// empty message
|
||||||
_finishMessage();
|
_finishMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
_data = new Uint8List(dataLength);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ class GrpcMetadata extends GrpcMessage {
|
||||||
class GrpcData extends GrpcMessage {
|
class GrpcData extends GrpcMessage {
|
||||||
final List<int> data;
|
final List<int> data;
|
||||||
final bool isCompressed;
|
final bool isCompressed;
|
||||||
GrpcData(this.data, {this.isCompressed});
|
GrpcData(this.data, {this.isCompressed}) : assert(data != null);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() => 'gRPC Data (${data.length} bytes)';
|
String toString() => 'gRPC Data (${data.length} bytes)';
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
import 'dart:async';
|
||||||
|
import 'dart:typed_data';
|
||||||
|
|
||||||
|
import 'package:grpc/src/client/transport/web_streams.dart';
|
||||||
|
import 'package:grpc/src/shared/message.dart';
|
||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
main() {
|
||||||
|
test("decoding an empty repeated", () async {
|
||||||
|
final GrpcData data = await GrpcWebDecoder()
|
||||||
|
.bind(Stream.fromIterable([
|
||||||
|
Uint8List.fromList([0, 0, 0, 0, 0]).buffer
|
||||||
|
]))
|
||||||
|
.first as GrpcData;
|
||||||
|
expect(data.data, []);
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in New Issue