enough_mail icon indicating copy to clipboard operation
enough_mail copied to clipboard

Decoding header error

Open scribetw opened this issue 10 months ago • 0 comments

Test case

test/codecs/mail_codec_test.dart

import 'package:enough_mail/src/codecs/mail_codec.dart';
import 'package:test/test.dart';
// cSpell:disable

void main() {
  // omitted

  group('Decode header', () {
    // omitted

    test('decode header with mixed encodings', () {
      const input =
          '=?UTF-8?Q?Chyba_v_p=C5=99enosu_textu_z_formul=C3=A1=C5=99e_Operace_?='
          ' =?UTF-8?B?4oCTIHBsw6Fub3bDoW7DrSBkbyBmb3JtdWzDocWZZSBPcGVyYcSNbsOt?='
          ' =?UTF-8?Q?_program=2Edocx?=';
      expect(MailCodec.decodeHeader(input),
          'Chyba v přenosu textu z formuláře Operace – plánování do formuláře Operační program.docx');
    });
  });
}

Stack trace

FormatException: Invalid character (at character 65)
  4oCTIHBsw6Fub3bDoW7DrSBkbyBmb3JtdWzDocWZZSBPcGVyYcSNbsOt_program=2Edocx=
                                                                  ^
  

  dart:convert/base64.dart 705:7                                _Base64Decoder.decodeChunk
  dart:convert/base64.dart 629:14                               _Base64Decoder.decode
  dart:convert/base64.dart 509:26                               Base64Decoder.convert
  dart:convert/base64.dart 83:47                                Base64Codec.decode
  package:enough_mail/src/codecs/base64_mail_codec.dart 132:19  Base64MailCodec.decodeData
  package:enough_mail/src/codecs/base64_mail_codec.dart 137:24  Base64MailCodec.decodeText
  package:enough_mail/src/codecs/mail_codec.dart 243:30         MailCodec._decodeHeaderImpl
  package:enough_mail/src/codecs/mail_codec.dart 209:5          MailCodec.decodeHeader

Cause

https://github.com/Enough-Software/enough_mail/blob/41ac9747836dc504e9261367207aab0af3601ca8/lib/src/codecs/mail_codec.dart#L203-L204

scribetw avatar Aug 28 '23 07:08 scribetw