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

          Line data    Source code
       1             : import 'package:dio/dio.dart';
       2             : import 'package:dio/src/parameter.dart';
       3             : import 'package:test/test.dart';
       4             : 
       5           1 : void main() {
       6           1 :   var data = {
       7             :     'a': '你好',
       8           1 :     'b': [5, '6'],
       9           1 :     'c': {
      10             :       'd': 8,
      11           1 :       'e': {
      12             :         'a': 5,
      13           1 :         'b': [66, 8]
      14             :       }
      15             :     }
      16             :   };
      17           2 :   test('#url encode default ', () {
      18             :     // a=你好&b=5&b=6&c[d]=8&c[e][a]=5&c[e][b]=66&c[e][b]=8
      19             :     var result =
      20             :         'a=%E4%BD%A0%E5%A5%BD&b=5&b=6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=66&c%5Be%5D%5Bb%5D=8';
      21           2 :     expect(Transformer.urlEncodeMap(data), result);
      22             :   });
      23           2 :   test('#url encode csv', () {
      24             :     // a=你好&b=5,6&c[d]=8&c[e][a]=5&c[e][b]=66,8
      25             :     var result =
      26             :         'a=%E4%BD%A0%E5%A5%BD&b=5%2C6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=66%2C8';
      27           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.csv), result);
      28             :   });
      29           2 :   test('#url encode ssv', () {
      30             :     // a=你好&b=5+6&c[d]=8&c[e][a]=5&c[e][b]=66+8
      31             :     var result =
      32             :         'a=%E4%BD%A0%E5%A5%BD&b=5+6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=66+8';
      33           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.ssv), result);
      34             :   });
      35           2 :   test('#url encode tsv', () {
      36             :     // a=你好&b=5\t6&c[d]=8&c[e][a]=5&c[e][b]=66\t8
      37             :     var result =
      38             :         'a=%E4%BD%A0%E5%A5%BD&b=5%5Ct6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=66%5Ct8';
      39           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.tsv), result);
      40             :   });
      41           2 :   test('#url encode pipe', () {
      42             :     //a=你好&b=5|6&c[d]=8&c[e][a]=5&c[e][b]=66|8
      43             :     var result =
      44             :         'a=%E4%BD%A0%E5%A5%BD&b=5%7C6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=66%7C8';
      45           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.pipes), result);
      46             :   });
      47             : 
      48           2 :   test('#url encode multi', () {
      49             :     //a=你好&b[]=5&b[]=6&c[d]=8&c[e][a]=5&c[e][b][]=66&c[e][b][]=8
      50             :     var result =
      51             :         'a=%E4%BD%A0%E5%A5%BD&b%5B%5D=5&b%5B%5D=6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D%5B%5D=66&c%5Be%5D%5Bb%5D%5B%5D=8';
      52           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.multiCompatible), result);
      53             :   });
      54             : 
      55           2 :   test('#url encode multi2', () {
      56           1 :     var data = {
      57             :       'a': 'string',
      58             :       'b': 'another_string',
      59           1 :       'z': ['string'],
      60             :     };
      61             :     // a=string&b=another_string&z[]=string
      62             :     var result = 'a=string&b=another_string&z%5B%5D=string';
      63           2 :     expect(Transformer.urlEncodeMap(data, ListFormat.multiCompatible), result);
      64             :   });
      65             : 
      66           2 :   test('#url encode custom', () {
      67             :     //a=你好&b=5|6&c[d]=8&c[e][a]=5&c[e][b]=foo,bar&c[e][c]=foo+bar&c[e][d][]=foo&c[e][d][]=bar&c[e][e]=foo\tbar
      68             :     var result =
      69             :         'a=%E4%BD%A0%E5%A5%BD&b=5%7C6&c%5Bd%5D=8&c%5Be%5D%5Ba%5D=5&c%5Be%5D%5Bb%5D=foo%2Cbar&c%5Be%5D%5Bc%5D=foo+bar&c%5Be%5D%5Bd%5D%5B%5D=foo&c%5Be%5D%5Bd%5D%5B%5D=bar&c%5Be%5D%5Be%5D=foo%5Ctbar';
      70           1 :     expect(
      71           1 :       Transformer.urlEncodeMap(
      72           1 :         {
      73             :           'a': '你好',
      74           2 :           'b': ListParam<int>([5, 6], ListFormat.pipes),
      75           1 :           'c': {
      76             :             'd': 8,
      77           1 :             'e': {
      78             :               'a': 5,
      79           2 :               'b': ListParam<String>(['foo', 'bar'], ListFormat.csv),
      80           2 :               'c': ListParam<String>(['foo', 'bar'], ListFormat.ssv),
      81           2 :               'd': ListParam<String>(['foo', 'bar'], ListFormat.multi),
      82           2 :               'e': ListParam<String>(['foo', 'bar'], ListFormat.tsv),
      83             :             },
      84             :           },
      85             :         },
      86             :         ListFormat.multiCompatible,
      87             :       ),
      88             :       result,
      89             :     );
      90             :   });
      91             : }

Generated by: LCOV version 1.14