LCOV - code coverage report
Current view: top level - Users/duwen/Documents/code/dio/dio/test - upload_stream_test.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 29 29 100.0 %
Date: 2021-11-28 14:37:50 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:convert';
       2             : import 'dart:io';
       3             : 
       4             : import 'package:dio/dio.dart';
       5             : import 'package:test/test.dart';
       6             : 
       7           1 : void main() {
       8           1 :   var dio = Dio();
       9           2 :   dio.options.baseUrl = 'http://httpbin.org/';
      10           2 :   test('stream', () async {
      11             :     Response r;
      12             :     const str = 'hello 😌';
      13           2 :     var bytes = utf8.encode(str).toList();
      14           4 :     var stream = Stream.fromIterable(bytes.map((e) => [e]));
      15           2 :     r = await dio.put(
      16             :       '/put',
      17             :       data: stream,
      18           1 :       options: Options(
      19             :         contentType: Headers.textPlainContentType,
      20           1 :         headers: {
      21           1 :           Headers.contentLengthHeader: bytes.length, // set content-length
      22             :         },
      23             :       ),
      24             :     );
      25           3 :     expect(r.data['data'], str);
      26             :   });
      27             : 
      28           2 :   test('file stream', () async {
      29           1 :     var f = File('../dio/test/test.jpg');
      30           2 :     var r = await dio.put(
      31             :       '/put',
      32           1 :       data: f.openRead(),
      33           1 :       options: Options(
      34             :         contentType: 'image/jpeg',
      35           1 :         headers: {
      36           1 :           Headers.contentLengthHeader: f.lengthSync(), // set content-length
      37             :         },
      38             :       ),
      39             :     );
      40           2 :     var img = base64Encode(f.readAsBytesSync());
      41           4 :     expect(r.data['data'], 'data:application/octet-stream;base64,' + img);
      42             :   });
      43             : 
      44           2 :   test('file stream<Uint8List>', () async {
      45           1 :     var f = File('../dio/test/test.jpg');
      46           2 :     var r = await dio.put(
      47             :       '/put',
      48           2 :       data: f.readAsBytes().asStream(),
      49           1 :       options: Options(
      50             :         contentType: 'image/jpeg',
      51           1 :         headers: {
      52           1 :           Headers.contentLengthHeader: f.lengthSync(), // set content-length
      53             :         },
      54             :       ),
      55             :     );
      56           2 :     var img = base64Encode(f.readAsBytesSync());
      57           4 :     expect(r.data['data'], 'data:application/octet-stream;base64,' + img);
      58             :   });
      59             : }

Generated by: LCOV version 1.14