File: testtextstrings.pas

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (128 lines) | stat: -rw-r--r-- 3,752 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
 Test all with:
    ./runtests --format=plain --suite=TTestTextStrings

 Test specific with:
    ./runtests --format=plain --suite=TestTextStringsBasic
    ./runtests --format=plain --suite=TestTextStringsLists
    ./runtests --format=plain --suite=TestTextStringsTexts
    ./runtests --format=plain --suite=TestTextStringsExchange
}
unit TestTextStrings;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, LCLProc, Forms, Controls, ExtCtrls, TextStrings,
  fpcunit, testglobals, LazLogger;

type

  { TTestTextStrings }

  TTestTextStrings = class(TTestCase)
  published
    procedure TestTextStringsBasic;
    procedure TestTextStringsLists;
    procedure TestTextStringsTexts;
    procedure TestTextStringsExchange;
  end;

implementation

{ TTestTextStrings }

procedure TTestTextStrings.TestTextStringsBasic;
var
  ts: TTextStrings;
begin
  ts:=TTextStrings.Create;
  try
    ts.AddObject('a',TObject(123));
    ts.AddObject('b',TObject(234));
    AssertEquals('ab',2,ts.Count);
    AssertEquals('a at 0','a',ts[0]);
    AssertEquals('b at 1','b',ts[1]);
    AssertEquals('123 at 0',123,integer(PtrUInt(ts.Objects[0])));
    AssertEquals('234 at 1',234,integer(PtrUInt(ts.Objects[1])));

    ts.Delete(0);
    AssertEquals('b',1,ts.Count);
    AssertEquals('b at 0','b',ts[0]);
    AssertEquals('234 at 0',234,integer(PtrUInt(ts.Objects[0])));
  finally
    ts.Free;
  end;
end;

procedure TTestTextStrings.TestTextStringsLists;
var
  ts1: TTextStrings;
  ts2: TTextStrings;
begin
  ts1:=TTextStrings.Create;
  ts2:=TTextStrings.Create;
  try
    ts1.AddObject('a',TObject(123));
    ts1.AddObject('b',TObject(234));
    ts2.AddObject('c',TObject(345));
    ts2.AddObject('d',TObject(456));
    ts1.AddStrings(ts2);

    AssertEquals('count',4,ts1.Count);
    AssertEquals('a at 0','a',ts1[0]);
    AssertEquals('123 at 0',123,integer(PtrUInt(ts1.Objects[0])));
    AssertEquals('b at 1','b',ts1[1]);
    AssertEquals('234 at 1',234,integer(PtrUInt(ts1.Objects[1])));
    AssertEquals('c at 2','c',ts1[2]);
    AssertEquals('345 at 2',345,integer(PtrUInt(ts1.Objects[2])));
    AssertEquals('d at 3','d',ts1[3]);
    AssertEquals('456 at 3',456,integer(PtrUInt(ts1.Objects[3])));
  finally
    ts1.Free;
    ts2.Free;
  end;
end;

procedure TTestTextStrings.TestTextStringsTexts;
var
  ts1: TTextStrings;
begin
  ts1:=TTextStrings.Create;
  try
    ts1.Text:='asdasdasd asdasdasdasd asdqawrqwr'#13#10'asdasdasd asdasdasdasd asdqawrqwr'#13#10#13#10'asdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd asdqawrqwrasdasdasd asdasdasdasd'#13#10;
    AssertEquals('count',4,ts1.Count);
  finally
    ts1.Free;
  end;
end;

procedure TTestTextStrings.TestTextStringsExchange;
var
  ts1: TTextStrings;
begin
  ts1:=TTextStrings.Create;
  try
    ts1.Clear;
    ts1.Add('1');
    ts1.Add('22');
    ts1.Exchange(0,1);
    AssertEquals('Exchange 1,22 to 22,1 text','22'+LineEnding+'1'+LineEnding,ts1.Text);
    AssertEquals('Exchange 1,22 to 22,1 first line','22',ts1[0]);
    AssertEquals('Exchange 1,22 to 22,1 second line','1',ts1[1]);
    ts1.Exchange(0,1);
    AssertEquals('Exchange 22,1 to 1,22 text','1'+LineEnding+'22'+LineEnding,ts1.Text);
    AssertEquals('Exchange 22,1 to 1,22 first line','1',ts1[0]);
    AssertEquals('Exchange 22,1 to 1,22 second line','22',ts1[1]);
  finally
    ts1.Free;
  end;
end;

initialization
  AddToLCLTestSuite(TTestTextStrings);

end.