IdTestCoderHeader.pas 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. unit IdTestCoderHeader;
  2. //http://www.faqs.org/rfcs/rfc1522.html
  3. interface
  4. uses
  5. IdCoderHeader,
  6. IdTest;
  7. type
  8. TIdTestCoderHeader = class(TIdTest)
  9. published
  10. procedure TestDecodeHeader;
  11. end;
  12. implementation
  13. procedure TIdTestCoderHeader.TestDecodeHeader;
  14. const
  15. //bug, used to decode to: 'Markteinführung einesMarkteinführung eines völlig neuen Konzepts'
  16. cIn1='This is a simple test for MIME encoding simple =?Windows-1252?Q?=7F?= strings.';
  17. cOut1 = 'This is a simple test for MIME encoding simple '#127' strings.';
  18. cIn2='=?iso-8859-1?Q?J=F6rg_Meier?= <[email protected]>';
  19. cOut2='Jörg Meier <[email protected]>';
  20. cIn3='böb <[email protected]>';
  21. cOut3='=?ISO-8859-1?Q?b=F6b?= <[email protected]>';
  22. //not legal to have special chars in actual address?
  23. //cIn4='böb <bö[email protected]öm>';
  24. //cOut4='=?ISO-8859-1?Q?b=F6b <[email protected]=F6m>?=';
  25. var
  26. s:string;
  27. begin
  28. //from TIdMessage.GenerateHeader
  29. //s := DecodeHeader(cIn1);
  30. //Assert(s = cOut1);
  31. s:=DecodeHeader('=?iso-8859-1?q?this=20is=20some=20text?=');
  32. Assert(s='this is some text',s);
  33. //edge case
  34. { s:=DecodeHeader('');
  35. Assert(s='');
  36. s:=DecodeHeader(cIn1);
  37. Assert(s=cOut1);
  38. s:=EncodeHeader(cIn3,'','Q',bit8,'ISO-8859-1');
  39. Assert(s=cOut3);
  40. s:=DecodeHeader(cOut3);
  41. Assert(s=cIn3);}
  42. //encodes leaving a space as-is, then aborts decode due to the space
  43. //IdCoderHeader 306: if CharIsInSet(Header, i, Whitespace) then begin
  44. {
  45. s:=EncodeHeader(cIn4,'','Q',bit8,'ISO-8859-1');
  46. Assert(s=cOut4);
  47. s:=DecodeHeader(cOut4);
  48. Assert(s=cIn4,s);
  49. }
  50. end;
  51. initialization
  52. TIdTest.RegisterTest(TIdTestCoderHeader);
  53. end.