IdTestCoderMIME.pas 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. unit IdTestCoderMIME;
  2. interface
  3. uses
  4. IdCoder,
  5. IdCoderMIME,
  6. IdSys,
  7. IdGlobal,
  8. IdObjs,
  9. IdTest;
  10. type
  11. TIdTestCoderMIME = class(TIdTest)
  12. published
  13. procedure TestDecodeLineByLine;
  14. procedure TestDecodeMIME;
  15. end;
  16. implementation
  17. const
  18. cEnc1: string = 'VGhpcyBpcyBhIHNpbXBsZSB0ZXN0IGZvciBNSU1FIGVuY29kaW5nIHNpbXBsZSBzdHJpbmdzLg==';
  19. cDec1 = 'This is a simple test for MIME encoding simple strings.';
  20. procedure TIdTestCoderMIME.TestDecodeMIME;
  21. var
  22. s:string;
  23. begin
  24. s:=DecodeString(TIdDecoderMIME,cEnc1);
  25. Assert(s=cDec1);
  26. end;
  27. procedure TIdTestCoderMIME.TestDecodeLineByLine;
  28. var
  29. s: string;
  30. d: TIdDecoderMIMELineByLine;
  31. TempStream: TIdMemoryStream;
  32. begin
  33. //using class method
  34. s:=DecodeString(TIdDecoderMIMELineByLine,cEnc1);
  35. Assert(s=cDec1,s);
  36. //using 'manually'
  37. d := TIdDecoderMIMELineByLine.Create;
  38. try
  39. TempStream := TIdMemoryStream.Create;
  40. try
  41. d.DecodeBegin(TempStream);
  42. d.Decode(cEnc1);
  43. TempStream.Position := 0;
  44. s := ReadStringFromStream(TempStream);
  45. Assert(s = cDec1, Sys.Format('Is "%s", should be "%s"', [s, cDec1]));
  46. finally
  47. d.DecodeEnd;
  48. Sys.FreeAndNil(TempStream);
  49. end;
  50. finally
  51. Sys.FreeAndNil(d);
  52. end;
  53. end;
  54. initialization
  55. TIdTest.RegisterTest(TIdTestCoderMIME);
  56. end.