CoderRawBubble.pas 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. { $HDR$}
  2. {**********************************************************************}
  3. { Unit archived using Team Coherence }
  4. { Team Coherence is Copyright 2002 by Quality Software Components }
  5. { }
  6. { For further information / comments, visit our WEB site at }
  7. { http://www.TeamCoherence.com }
  8. {**********************************************************************}
  9. {}
  10. { $Log: 20916: CoderRawBubble.pas
  11. {
  12. { Rev 1.2 2003.06.24 9:12:20 PM czhower
  13. { Removed code that is no loger necessary because of changes to Bubelen.
  14. }
  15. {
  16. { Rev 1.1 2003.06.24 9:00:50 PM czhower
  17. { Updated to match Bubelen event signature change.
  18. }
  19. {
  20. { Rev 1.0 2003.06.23 10:11:18 PM czhower
  21. { Initial Checkin
  22. }
  23. unit CoderRawBubble;
  24. interface
  25. uses
  26. SysUtils, Classes, BXBubble;
  27. type
  28. TdmodCoderRawBubble = class(TDataModule)
  29. bublCoderRawMIME: TBXBubble;
  30. bublCoderRawUUE: TBXBubble;
  31. bublCoderRawQP: TBXBubble;
  32. procedure bublCoderRawUUETest(Sender: TBXBubble);
  33. procedure bublCoderRawMIMETest(Sender: TBXBubble);
  34. procedure bublCoderRawQPTest(Sender: TBXBubble);
  35. private
  36. protected
  37. procedure CheckMIMEString(ABubble: TBXBubble; const AEncoded: string;
  38. const ADecoded: string);
  39. procedure CheckUUEString(ABubble: TBXBubble; const AEncoded: string;
  40. const ADecoded: string);
  41. public
  42. end;
  43. var
  44. dmodCoderRawBubble: TdmodCoderRawBubble;
  45. implementation
  46. {$R *.dfm}
  47. uses
  48. IdCoderMIME, IdCoderQuotedPrintable, IdCoderUUE, IdCoreGlobal, IdGlobal;
  49. { TdmodCoderRawBubble }
  50. procedure TdmodCoderRawBubble.CheckMIMEString(ABubble: TBXBubble;
  51. const AEncoded, ADecoded: string);
  52. begin
  53. ABubble.Check(TIdEncoderMIME.EncodeString(ADecoded) = AEncoded
  54. , 'Encode mismatch');
  55. ABubble.Check(TIdDecoderMIME.DecodeString(AEncoded) = ADecoded
  56. , 'Decode mismatch');
  57. end;
  58. procedure TdmodCoderRawBubble.CheckUUEString(ABubble: TBXBubble;
  59. const AEncoded, ADecoded: string);
  60. begin
  61. ABubble.Check(TIdEncoderUUE.EncodeString(ADecoded) = AEncoded
  62. , 'Encode mismatch');
  63. ABubble.Check(TIdDecoderUUE.DecodeString(AEncoded) = ADecoded
  64. , 'Decode mismatch');
  65. end;
  66. procedure TdmodCoderRawBubble.bublCoderRawUUETest(Sender: TBXBubble);
  67. begin
  68. CheckUUEString(Sender, '%161I=#$`', 'Edit1');
  69. CheckUUEString(Sender, '95VAA="=S(&AA<''!E;FEN9R!B;W)T:&5R/P``'
  70. , 'What''s happening borther?');
  71. end;
  72. procedure TdmodCoderRawBubble.bublCoderRawMIMETest(Sender: TBXBubble);
  73. begin
  74. CheckMIMEString(Sender, 'dXNlcjpwYXNzd29yZA==', 'user:password');
  75. CheckMIMEString(Sender, 'b25lOnR3bw==', 'one:two');
  76. CheckMIMEString(Sender, 'dHdvOnRocmVl', 'two:three');
  77. CheckMIMEString(Sender, 'dGhyZWU6Zm91cg==', 'three:four');
  78. CheckMIMEString(Sender, 'Zm91cjpmaXZl', 'four:five');
  79. CheckMIMEString(Sender, 'Zml2ZTpzaXg=', 'five:six');
  80. CheckMIMEString(Sender, 'c2l4OnNldmVu', 'six:seven');
  81. CheckMIMEString(Sender, 'c2V2ZW46ZWlnaHQ=', 'seven:eight');
  82. CheckMIMEString(Sender, 'ZWlnaHQ6bmluZQ==', 'eight:nine');
  83. CheckMIMEString(Sender, 'bmluZTp0ZW4=', 'nine:ten');
  84. end;
  85. procedure TdmodCoderRawBubble.bublCoderRawQPTest(Sender: TBXBubble);
  86. const
  87. QPTestIn = 'This is a test. True = 1. ' + EOL + EOL;
  88. QPTestOut = 'This is a test. True =3D 1.=20' + EOL + EOL;
  89. begin
  90. with TIdEncoderQuotedPrintable.Create(nil) do try
  91. Sender.Check(Encode(QPTestIn) = QPTestOut, 'Encode Error');
  92. finally Free; end;
  93. with TIdDecoderQuotedPrintable.Create(nil) do try
  94. Sender.Check(DecodeString(QPTestOut) = QPTestIn, 'Decode Error');
  95. finally Free; end;
  96. end;
  97. end.