tcinifile.pp 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. unit tcinifile;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, fpcunit, testutils, inifiles, testregistry;
  6. type
  7. { TTestIniFile }
  8. TTestIniFile= class(TTestCase)
  9. private
  10. Fini: TCustomIniFile;
  11. protected
  12. Procedure CreateIni;
  13. procedure SetUp; override;
  14. procedure TearDown; override;
  15. Property Ini : TCustomIniFile Read Fini;
  16. published
  17. procedure TestWriteBoolean;
  18. procedure TestReadBoolean;
  19. end;
  20. implementation
  21. procedure TTestIniFile.CreateIni;
  22. begin
  23. Fini:=TMemIniFIle.Create('tmp.ini');
  24. end;
  25. procedure TTestIniFile.TestWriteBoolean;
  26. begin
  27. CreateIni;
  28. Ini.WriteBool('a','b',true);
  29. AssertEquals('Default true','1',Ini.ReadString('a','b',''));
  30. Ini.WriteBool('a','b',False);
  31. AssertEquals('Default false','0',Ini.ReadString('a','b',''));
  32. Ini.Options:=Ini.Options+[ifoWriteStringBoolean];
  33. Ini.WriteBool('a','b',true);
  34. AssertEquals('Default string true','true',Ini.ReadString('a','b',''));
  35. Ini.WriteBool('a','b',false);
  36. AssertEquals('Default string false','false',Ini.ReadString('a','b',''));
  37. Ini.SetBoolStringValues(true,['t','true']);
  38. Ini.WriteBool('a','b',true);
  39. AssertEquals('True from string array','t',Ini.ReadString('a','b',''));
  40. Ini.SetBoolStringValues(false,['f','false']);
  41. Ini.WriteBool('a','b',false);
  42. AssertEquals('True from string array','f',Ini.ReadString('a','b',''));
  43. end;
  44. procedure TTestIniFile.TestReadBoolean;
  45. begin
  46. CreateIni;
  47. Ini.WriteString('a','b','1');
  48. AssertEquals('Default true',true,Ini.ReadBool('a','b',False));
  49. Ini.WriteString('a','b','0');
  50. AssertEquals('Default false',false,Ini.ReadBool('a','b',True));
  51. Ini.WriteString('a','b','');
  52. AssertEquals('Empty returns Default ',true,Ini.ReadBool('a','b',true));
  53. Ini.SetBoolStringValues(true,['t','true']);
  54. Ini.WriteString('a','b','t');
  55. AssertEquals('First string match',true,Ini.ReadBool('a','b',false));
  56. Ini.WriteString('a','b','true');
  57. AssertEquals('Second string match',true,Ini.ReadBool('a','b',false));
  58. Ini.WriteString('a','b','d');
  59. AssertEquals('No string match, default',true,Ini.ReadBool('a','b',true));
  60. Ini.SetBoolStringValues(true,[]);
  61. Ini.SetBoolStringValues(false,['f','false']);
  62. Ini.WriteString('a','b','f');
  63. AssertEquals('First string match',false,Ini.ReadBool('a','b',true));
  64. Ini.WriteString('a','b','false');
  65. AssertEquals('Second string match',false,Ini.ReadBool('a','b',true));
  66. Ini.WriteString('a','b','d');
  67. AssertEquals('No string match, default',false,Ini.ReadBool('a','b',false));
  68. Ini.SetBoolStringValues(true,['t','true']);
  69. AssertEquals('No string match, default',false,Ini.ReadBool('a','b',false));
  70. end;
  71. procedure TTestIniFile.SetUp;
  72. begin
  73. DeleteFile('tmp.ini');
  74. end;
  75. procedure TTestIniFile.TearDown;
  76. begin
  77. DeleteFile('tmp.ini');
  78. end;
  79. initialization
  80. RegisterTest(TTestIniFile);
  81. end.