1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sal.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #ifndef _SAL_TYPES_H_
28*b1cdbd2cSJim Jagielski     #include <sal/types.h>
29*b1cdbd2cSJim Jagielski #endif
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski // #ifndef _RTL_TRES_H_
32*b1cdbd2cSJim Jagielski //     #include <rtl/tres.h>
33*b1cdbd2cSJim Jagielski // #endif
34*b1cdbd2cSJim Jagielski #include <testshl/tresstatewrapper.hxx>
35*b1cdbd2cSJim Jagielski 
36*b1cdbd2cSJim Jagielski #ifndef _RTL_STRING_HXX_
37*b1cdbd2cSJim Jagielski     #include <rtl/string.hxx>
38*b1cdbd2cSJim Jagielski #endif
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski #ifndef _RTL_USTRING_H_
41*b1cdbd2cSJim Jagielski 	#include <rtl/ustring.h>
42*b1cdbd2cSJim Jagielski #endif
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski #ifndef _RTL_USTRING_HXX_
45*b1cdbd2cSJim Jagielski 	#include <rtl/ustring.hxx>
46*b1cdbd2cSJim Jagielski #endif
47*b1cdbd2cSJim Jagielski 
48*b1cdbd2cSJim Jagielski #ifndef _RTL_USTRBUF_H_
49*b1cdbd2cSJim Jagielski         #include <rtl/ustrbuf.h>
50*b1cdbd2cSJim Jagielski #endif
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski #ifndef _RTL_USTRBUF_HXX
53*b1cdbd2cSJim Jagielski         #include <rtl/ustrbuf.hxx>
54*b1cdbd2cSJim Jagielski #endif
55*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
56*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
57*b1cdbd2cSJim Jagielski #ifndef _OSL_THREAD_H_
58*b1cdbd2cSJim Jagielski 	#include <osl/thread.h>
59*b1cdbd2cSJim Jagielski #endif
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski #ifndef _RTL_STRING_CONST_H_
62*b1cdbd2cSJim Jagielski     #include <rtl_String_Const.h>
63*b1cdbd2cSJim Jagielski #endif
64*b1cdbd2cSJim Jagielski 
65*b1cdbd2cSJim Jagielski #ifndef _RTL_STRING_UTILS_HXX_
66*b1cdbd2cSJim Jagielski     #include <rtl_String_Utils.hxx>
67*b1cdbd2cSJim Jagielski #endif
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski #include "stdio.h"
70*b1cdbd2cSJim Jagielski using namespace rtl;
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
73*b1cdbd2cSJim Jagielski // test classes
74*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
75*b1cdbd2cSJim Jagielski const int MAXBUFLENGTH = 255;
76*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
77*b1cdbd2cSJim Jagielski // helper functions
78*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
unused()79*b1cdbd2cSJim Jagielski static void unused()
80*b1cdbd2cSJim Jagielski {
81*b1cdbd2cSJim Jagielski     (void)kBinaryNumsStr;
82*b1cdbd2cSJim Jagielski     (void)kOctolNumsStr;
83*b1cdbd2cSJim Jagielski     (void)kDecimalNumsStr;
84*b1cdbd2cSJim Jagielski     (void)kHexDecimalNumsStr;
85*b1cdbd2cSJim Jagielski     (void)kBase36NumsStr;
86*b1cdbd2cSJim Jagielski     (void)inputChar;
87*b1cdbd2cSJim Jagielski     (void)input1StrDefault;
88*b1cdbd2cSJim Jagielski     (void)input1StrNormal;
89*b1cdbd2cSJim Jagielski     (void)input1StrLastDefault;
90*b1cdbd2cSJim Jagielski     (void)input1StrLastNormal;
91*b1cdbd2cSJim Jagielski     unused();
92*b1cdbd2cSJim Jagielski }
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
95*b1cdbd2cSJim Jagielski // testing constructors
96*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
test_rtl_OUStringBuffer_ctor_001(hTestResult hRtlTestResult)97*b1cdbd2cSJim Jagielski static sal_Bool test_rtl_OUStringBuffer_ctor_001( hTestResult hRtlTestResult )
98*b1cdbd2cSJim Jagielski {
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf;
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski     bool b1 =
103*b1cdbd2cSJim Jagielski         aUStrBuf.getLength() == 0 &&
104*b1cdbd2cSJim Jagielski         ! *(aUStrBuf.getStr()) && aUStrBuf.getCapacity() == 16;
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf2(0);
107*b1cdbd2cSJim Jagielski 
108*b1cdbd2cSJim Jagielski     bool b2 =
109*b1cdbd2cSJim Jagielski         aUStrBuf2.getLength() == 0 &&
110*b1cdbd2cSJim Jagielski         ! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: !!! */ 0;
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski     return
113*b1cdbd2cSJim Jagielski     (
114*b1cdbd2cSJim Jagielski         c_rtl_tres_state
115*b1cdbd2cSJim Jagielski         (
116*b1cdbd2cSJim Jagielski             hRtlTestResult,
117*b1cdbd2cSJim Jagielski             b1 && b2,
118*b1cdbd2cSJim Jagielski             "New OUStringBuffer containing no characters",
119*b1cdbd2cSJim Jagielski             "ctor_001"
120*b1cdbd2cSJim Jagielski         )
121*b1cdbd2cSJim Jagielski     );
122*b1cdbd2cSJim Jagielski }
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
125*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_ctor_002(hTestResult hRtlTestResult)126*b1cdbd2cSJim Jagielski static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_002(
127*b1cdbd2cSJim Jagielski                                                hTestResult hRtlTestResult )
128*b1cdbd2cSJim Jagielski {
129*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
130*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
131*b1cdbd2cSJim Jagielski     sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
132*b1cdbd2cSJim Jagielski     return
133*b1cdbd2cSJim Jagielski     (
134*b1cdbd2cSJim Jagielski         c_rtl_tres_state
135*b1cdbd2cSJim Jagielski         (
136*b1cdbd2cSJim Jagielski             hRtlTestResult,
137*b1cdbd2cSJim Jagielski             aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
138*b1cdbd2cSJim Jagielski             aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() && res ,
139*b1cdbd2cSJim Jagielski             "New OUStringBuffer from another OUStringBuffer",
140*b1cdbd2cSJim Jagielski             "ctor_002"
141*b1cdbd2cSJim Jagielski         )
142*b1cdbd2cSJim Jagielski     );
143*b1cdbd2cSJim Jagielski }
144*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
145*b1cdbd2cSJim Jagielski 
146*b1cdbd2cSJim Jagielski /* static */
test_rtl_OUStringBuffer_ctor_003(hTestResult hRtlTestResult)147*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_003(
148*b1cdbd2cSJim Jagielski                                                hTestResult hRtlTestResult )
149*b1cdbd2cSJim Jagielski {
150*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf1(kTestStr2Len);
151*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
152*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf2(kSInt32Max);     //will core dump
153*b1cdbd2cSJim Jagielski #else
154*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf2(0);
155*b1cdbd2cSJim Jagielski #endif
156*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf3(kNonSInt32Max);
157*b1cdbd2cSJim Jagielski 
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski     bool b1 =
160*b1cdbd2cSJim Jagielski         aUStrBuf1.getLength() == 0 &&
161*b1cdbd2cSJim Jagielski         ! *(aUStrBuf1.getStr()) && aUStrBuf1.getCapacity() == kTestStr2Len ;
162*b1cdbd2cSJim Jagielski 
163*b1cdbd2cSJim Jagielski     bool b2 =
164*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
165*b1cdbd2cSJim Jagielski         aUStrBuf2.getLength() == 0 &&
166*b1cdbd2cSJim Jagielski         ! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == kSInt32Max ;
167*b1cdbd2cSJim Jagielski #else
168*b1cdbd2cSJim Jagielski         aUStrBuf2.getLength() == 0 &&
169*b1cdbd2cSJim Jagielski             ! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: ??? 16 */ 0;
170*b1cdbd2cSJim Jagielski #endif
171*b1cdbd2cSJim Jagielski     bool b3 =
172*b1cdbd2cSJim Jagielski         aUStrBuf3.getLength() == 0 &&
173*b1cdbd2cSJim Jagielski         ! *(aUStrBuf3.getStr()) && aUStrBuf3.getCapacity() == kNonSInt32Max;
174*b1cdbd2cSJim Jagielski 
175*b1cdbd2cSJim Jagielski     return
176*b1cdbd2cSJim Jagielski         (
177*b1cdbd2cSJim Jagielski             c_rtl_tres_state
178*b1cdbd2cSJim Jagielski             (
179*b1cdbd2cSJim Jagielski                 hRtlTestResult,
180*b1cdbd2cSJim Jagielski                 b1 && b2 && b3,
181*b1cdbd2cSJim Jagielski                 "New OUStringBuffer containing no characters and contain assigned capacity",
182*b1cdbd2cSJim Jagielski                 "ctor_003( will core dump,because the kSInt32Max )"
183*b1cdbd2cSJim Jagielski                 )
184*b1cdbd2cSJim Jagielski             );
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski }
187*b1cdbd2cSJim Jagielski 
188*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
189*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_ctor_004(hTestResult hRtlTestResult)190*b1cdbd2cSJim Jagielski static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_004(
191*b1cdbd2cSJim Jagielski                                                hTestResult hRtlTestResult)
192*b1cdbd2cSJim Jagielski {
193*b1cdbd2cSJim Jagielski     ::rtl::OUString aUStrtmp( aUStr1 );
194*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf( aUStrtmp );
195*b1cdbd2cSJim Jagielski     sal_Int32 leg = aUStrBuf.getLength();
196*b1cdbd2cSJim Jagielski     return
197*b1cdbd2cSJim Jagielski     (
198*b1cdbd2cSJim Jagielski         c_rtl_tres_state
199*b1cdbd2cSJim Jagielski         (
200*b1cdbd2cSJim Jagielski             hRtlTestResult,
201*b1cdbd2cSJim Jagielski             aUStrBuf.getStr() == aUStrtmp &&
202*b1cdbd2cSJim Jagielski             leg == aUStrtmp.pData->length &&
203*b1cdbd2cSJim Jagielski             aUStrBuf.getCapacity() == leg+16 ,
204*b1cdbd2cSJim Jagielski             "New OUStringBuffer from OUstring",
205*b1cdbd2cSJim Jagielski             "ctor_004"
206*b1cdbd2cSJim Jagielski         )
207*b1cdbd2cSJim Jagielski     );
208*b1cdbd2cSJim Jagielski }
209*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_ctor_005(hTestResult hRtlTestResult)210*b1cdbd2cSJim Jagielski static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_005(
211*b1cdbd2cSJim Jagielski                                                hTestResult hRtlTestResult)
212*b1cdbd2cSJim Jagielski {
213*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
214*b1cdbd2cSJim Jagielski     ::rtl::OUString aUStrtmp = aUStrBuftmp.makeStringAndClear();
215*b1cdbd2cSJim Jagielski     ::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
216*b1cdbd2cSJim Jagielski     sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
217*b1cdbd2cSJim Jagielski     sal_Int32 leg = aUStrBuf.getLength();
218*b1cdbd2cSJim Jagielski     return
219*b1cdbd2cSJim Jagielski     (
220*b1cdbd2cSJim Jagielski         c_rtl_tres_state
221*b1cdbd2cSJim Jagielski         (
222*b1cdbd2cSJim Jagielski             hRtlTestResult,
223*b1cdbd2cSJim Jagielski             aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
224*b1cdbd2cSJim Jagielski             aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() &&
225*b1cdbd2cSJim Jagielski             res && leg == 0,
226*b1cdbd2cSJim Jagielski             "New OUStringBuffer from another OUStringBuffer after makeClearFromString",
227*b1cdbd2cSJim Jagielski             "ctor_005"
228*b1cdbd2cSJim Jagielski         )
229*b1cdbd2cSJim Jagielski     );
230*b1cdbd2cSJim Jagielski }
231*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_ctors(hTestResult hRtlTestResult)232*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ctors(
233*b1cdbd2cSJim Jagielski 	                                          hTestResult hRtlTestResult )
234*b1cdbd2cSJim Jagielski {
235*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "ctors");
236*b1cdbd2cSJim Jagielski     sal_Bool DCState = test_ini_uString();
237*b1cdbd2cSJim Jagielski     (void)DCState;
238*b1cdbd2cSJim Jagielski     sal_Bool bTSState = test_rtl_OUStringBuffer_ctor_001( hRtlTestResult );
239*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_ctor_002( hRtlTestResult);
240*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_ctor_003( hRtlTestResult);
241*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_ctor_004( hRtlTestResult);
242*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_ctor_005( hRtlTestResult);
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "ctors");
245*b1cdbd2cSJim Jagielski //    return( bTSState );
246*b1cdbd2cSJim Jagielski }
247*b1cdbd2cSJim Jagielski 
248*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
249*b1cdbd2cSJim Jagielski // testing the method makeStringAndClear()
250*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
test_rtl_OUStringBuffer_makeStringAndClear(hTestResult hRtlTestResult)251*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_makeStringAndClear(
252*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult )
253*b1cdbd2cSJim Jagielski {
254*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "makeStringAndClear");
255*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
256*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
257*b1cdbd2cSJim Jagielski 
258*b1cdbd2cSJim Jagielski     typedef struct TestCase
259*b1cdbd2cSJim Jagielski     {
260*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
261*b1cdbd2cSJim Jagielski 	OUString*               expVal;
262*b1cdbd2cSJim Jagielski     	OUStringBuffer*         input1;
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski 	~TestCase()		{ delete input1;}
265*b1cdbd2cSJim Jagielski     } TestCase;
266*b1cdbd2cSJim Jagielski 
267*b1cdbd2cSJim Jagielski     OUString arrOUS[6]={
268*b1cdbd2cSJim Jagielski         OUString( aUStr1 ),
269*b1cdbd2cSJim Jagielski         OUString( aUStr14 ),
270*b1cdbd2cSJim Jagielski         OUString( aUStr25 ),
271*b1cdbd2cSJim Jagielski         OUString( aUStr27 ),
272*b1cdbd2cSJim Jagielski         OUString( aUStr29 ),
273*b1cdbd2cSJim Jagielski         OUString( "\0",0,
274*b1cdbd2cSJim Jagielski 	          kEncodingRTLTextUSASCII,
275*b1cdbd2cSJim Jagielski 	          kConvertFlagsOStringToOUString)
276*b1cdbd2cSJim Jagielski     };
277*b1cdbd2cSJim Jagielski 
278*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
279*b1cdbd2cSJim Jagielski 
280*b1cdbd2cSJim Jagielski 	{"two empty strings(def. constructor)", new OUString(),
281*b1cdbd2cSJim Jagielski                 new OUStringBuffer()},
282*b1cdbd2cSJim Jagielski 	{"two empty strings(with a argu)", new OUString(),
283*b1cdbd2cSJim Jagielski 		new OUStringBuffer(26)},
284*b1cdbd2cSJim Jagielski 	{"normal string", new OUString(arrOUS[0]),
285*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0])},
286*b1cdbd2cSJim Jagielski 	{"string with space ", new OUString(arrOUS[1]),
287*b1cdbd2cSJim Jagielski 	    	new OUStringBuffer(arrOUS[1])},
288*b1cdbd2cSJim Jagielski 	{"empty string", new OUString(arrOUS[2]),
289*b1cdbd2cSJim Jagielski 	    	new OUStringBuffer(arrOUS[2])},
290*b1cdbd2cSJim Jagielski 	{"string with a character", new OUString(arrOUS[3]),
291*b1cdbd2cSJim Jagielski 	    	new OUStringBuffer(arrOUS[3])},
292*b1cdbd2cSJim Jagielski 	{"string with special characters", new OUString(arrOUS[4]),
293*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4])},
294*b1cdbd2cSJim Jagielski 	{"string only with (\0)", new OUString(arrOUS[5]),
295*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5])}
296*b1cdbd2cSJim Jagielski     };
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
299*b1cdbd2cSJim Jagielski     sal_uInt32 i;
300*b1cdbd2cSJim Jagielski 
301*b1cdbd2cSJim Jagielski     for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
302*b1cdbd2cSJim Jagielski     {
303*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
304*b1cdbd2cSJim Jagielski                 ( arrTestCase[i].input1->makeStringAndClear() ==
305*b1cdbd2cSJim Jagielski                                       		*( arrTestCase[i].expVal ));
306*b1cdbd2cSJim Jagielski         lastRes = lastRes && ( arrTestCase[i].input1->getCapacity() == 0 );
307*b1cdbd2cSJim Jagielski         lastRes = lastRes && ( *(arrTestCase[i].input1->getStr()) == '\0' );
308*b1cdbd2cSJim Jagielski 
309*b1cdbd2cSJim Jagielski         c_rtl_tres_state
310*b1cdbd2cSJim Jagielski         (
311*b1cdbd2cSJim Jagielski             hRtlTestResult,
312*b1cdbd2cSJim Jagielski             lastRes,
313*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
314*b1cdbd2cSJim Jagielski             createName( pMeth, "makeStringAndClear", i )
315*b1cdbd2cSJim Jagielski         );
316*b1cdbd2cSJim Jagielski 
317*b1cdbd2cSJim Jagielski         res &= lastRes;
318*b1cdbd2cSJim Jagielski     }
319*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "makeStringAndClear");
320*b1cdbd2cSJim Jagielski //    return (res);
321*b1cdbd2cSJim Jagielski }
322*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
323*b1cdbd2cSJim Jagielski // testing the method getLength
324*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
325*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_getLength(hTestResult hRtlTestResult)326*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getLength(
327*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
328*b1cdbd2cSJim Jagielski {
329*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "getLength");
330*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
331*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
332*b1cdbd2cSJim Jagielski 
333*b1cdbd2cSJim Jagielski     OUString arrOUS[6]={OUString( aUStr1 ),
334*b1cdbd2cSJim Jagielski                         OUString( "1",1,
335*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
336*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
337*b1cdbd2cSJim Jagielski                         OUString(),
338*b1cdbd2cSJim Jagielski                         OUString( "",0,
339*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
340*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
341*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
342*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
343*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
344*b1cdbd2cSJim Jagielski                         OUString( aUStr2 )};
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski     typedef struct TestCase
347*b1cdbd2cSJim Jagielski     {
348*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
349*b1cdbd2cSJim Jagielski 	sal_Int32 		expVal;
350*b1cdbd2cSJim Jagielski     	OUStringBuffer*         input;
351*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input;}
352*b1cdbd2cSJim Jagielski     } TestCase;
353*b1cdbd2cSJim Jagielski 
354*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
355*b1cdbd2cSJim Jagielski 
356*b1cdbd2cSJim Jagielski 	{"length of ascii string", kTestStr1Len,
357*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[0]) },
358*b1cdbd2cSJim Jagielski     	{"length of ascci string of size 1", 1,
359*b1cdbd2cSJim Jagielski     			new OUStringBuffer(arrOUS[1])},
360*b1cdbd2cSJim Jagielski     	{"length of empty string", 0,
361*b1cdbd2cSJim Jagielski                         new OUStringBuffer(arrOUS[2])},
362*b1cdbd2cSJim Jagielski 	{"length of empty string (empty ascii string arg)",0,
363*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[3])},
364*b1cdbd2cSJim Jagielski 	{"length of empty string (string arg = '\\0')", 0,
365*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[4])},
366*b1cdbd2cSJim Jagielski         {"length(>16) of ascii string", kTestStr2Len,
367*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[5]) },
368*b1cdbd2cSJim Jagielski         {"length of empty string (default constructor)", 0,
369*b1cdbd2cSJim Jagielski                         new OUStringBuffer()},
370*b1cdbd2cSJim Jagielski         {"length of empty string (with capacity)", 0,
371*b1cdbd2cSJim Jagielski                         new OUStringBuffer(26)}
372*b1cdbd2cSJim Jagielski 	};
373*b1cdbd2cSJim Jagielski 
374*b1cdbd2cSJim Jagielski 
375*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
376*b1cdbd2cSJim Jagielski     sal_uInt32 i;
377*b1cdbd2cSJim Jagielski 
378*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
379*b1cdbd2cSJim Jagielski     {
380*b1cdbd2cSJim Jagielski 	sal_Int32 length = arrTestCase[i].input->getLength();
381*b1cdbd2cSJim Jagielski         sal_Bool lastRes = (length == arrTestCase[i].expVal);
382*b1cdbd2cSJim Jagielski         c_rtl_tres_state
383*b1cdbd2cSJim Jagielski         (
384*b1cdbd2cSJim Jagielski             hRtlTestResult,
385*b1cdbd2cSJim Jagielski             lastRes,
386*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
387*b1cdbd2cSJim Jagielski             createName( pMeth, "getLength", i )
388*b1cdbd2cSJim Jagielski 
389*b1cdbd2cSJim Jagielski         );
390*b1cdbd2cSJim Jagielski 	res &= lastRes;
391*b1cdbd2cSJim Jagielski     }
392*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "getLength");
393*b1cdbd2cSJim Jagielski //    return ( res );
394*b1cdbd2cSJim Jagielski }
395*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
396*b1cdbd2cSJim Jagielski // testing the method getCapacity()
397*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
398*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_getCapacity(hTestResult hRtlTestResult)399*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getCapacity(
400*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
401*b1cdbd2cSJim Jagielski {
402*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "getCapacity");
403*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
404*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
405*b1cdbd2cSJim Jagielski 
406*b1cdbd2cSJim Jagielski     OUString arrOUS[6]={OUString( aUStr1 ),
407*b1cdbd2cSJim Jagielski                         OUString( "1",1,
408*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
409*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
410*b1cdbd2cSJim Jagielski                         OUString(),
411*b1cdbd2cSJim Jagielski                         OUString( "",0,
412*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
413*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
414*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
415*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
416*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
417*b1cdbd2cSJim Jagielski                         OUString( aUStr2 )};
418*b1cdbd2cSJim Jagielski 
419*b1cdbd2cSJim Jagielski     typedef struct TestCase
420*b1cdbd2cSJim Jagielski     {
421*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
422*b1cdbd2cSJim Jagielski 	sal_Int32 		expVal;
423*b1cdbd2cSJim Jagielski     	OUStringBuffer*         input;
424*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input;}
425*b1cdbd2cSJim Jagielski     } TestCase;
426*b1cdbd2cSJim Jagielski 
427*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
428*b1cdbd2cSJim Jagielski 
429*b1cdbd2cSJim Jagielski 	{"capacity of ascii string", kTestStr1Len+16,
430*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[0]) },
431*b1cdbd2cSJim Jagielski     	{"capacity of ascci string of size 1", 1+16,
432*b1cdbd2cSJim Jagielski     			new OUStringBuffer(arrOUS[1]) },
433*b1cdbd2cSJim Jagielski     	{"capacity of empty string", 0+16,
434*b1cdbd2cSJim Jagielski                         new OUStringBuffer(arrOUS[2]) },
435*b1cdbd2cSJim Jagielski 	{"capacity of empty string (empty ascii string arg)",0+16,
436*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[3]) },
437*b1cdbd2cSJim Jagielski 	{"capacity of empty string (string arg = '\\0')", 0+16,
438*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[4]) },
439*b1cdbd2cSJim Jagielski         {"capacity(>16) of ascii string", kTestStr2Len+16,
440*b1cdbd2cSJim Jagielski 			new OUStringBuffer(arrOUS[5]) },
441*b1cdbd2cSJim Jagielski         {"capacity of empty string (default constructor)", 16,
442*b1cdbd2cSJim Jagielski                         new OUStringBuffer() },
443*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
444*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity 2147483647)(code will core dump)", kSInt32Max,
445*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max) },// will core dump
446*b1cdbd2cSJim Jagielski #endif
447*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity -2147483648)", kNonSInt32Max,
448*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max) },
449*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity 16)", 16,
450*b1cdbd2cSJim Jagielski                         new OUStringBuffer(16) },
451*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity 6)", 6,
452*b1cdbd2cSJim Jagielski                         new OUStringBuffer(6) },
453*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity 0)", 0,
454*b1cdbd2cSJim Jagielski                         new OUStringBuffer(0) },
455*b1cdbd2cSJim Jagielski         {"capacity of empty string (with capacity -2)", -2,
456*b1cdbd2cSJim Jagielski                         new OUStringBuffer(-2) }
457*b1cdbd2cSJim Jagielski 	};
458*b1cdbd2cSJim Jagielski 
459*b1cdbd2cSJim Jagielski 
460*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
461*b1cdbd2cSJim Jagielski     sal_uInt32 i;
462*b1cdbd2cSJim Jagielski 
463*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
464*b1cdbd2cSJim Jagielski     {
465*b1cdbd2cSJim Jagielski 	sal_Int32 length = arrTestCase[i].input->getCapacity();
466*b1cdbd2cSJim Jagielski         sal_Bool lastRes = (length == arrTestCase[i].expVal);
467*b1cdbd2cSJim Jagielski         c_rtl_tres_state
468*b1cdbd2cSJim Jagielski         (
469*b1cdbd2cSJim Jagielski             hRtlTestResult,
470*b1cdbd2cSJim Jagielski             lastRes,
471*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
472*b1cdbd2cSJim Jagielski             createName( pMeth, "getCapacity", i )
473*b1cdbd2cSJim Jagielski 
474*b1cdbd2cSJim Jagielski         );
475*b1cdbd2cSJim Jagielski 	res &= lastRes;
476*b1cdbd2cSJim Jagielski     }
477*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "getCapacity");
478*b1cdbd2cSJim Jagielski //    return ( res );
479*b1cdbd2cSJim Jagielski }
480*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
481*b1cdbd2cSJim Jagielski // testing the method ensureCapacity(sal_Int32 minimumCapacity)
482*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
483*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_ensureCapacity(hTestResult hRtlTestResult)484*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ensureCapacity(
485*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
486*b1cdbd2cSJim Jagielski {
487*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "ensureCapacity");
488*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
489*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
490*b1cdbd2cSJim Jagielski 
491*b1cdbd2cSJim Jagielski     typedef struct TestCase
492*b1cdbd2cSJim Jagielski     {
493*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
494*b1cdbd2cSJim Jagielski 	sal_Int32 		expVal;
495*b1cdbd2cSJim Jagielski     	OUStringBuffer*         input1;
496*b1cdbd2cSJim Jagielski         sal_Int32               input2;
497*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1;}
498*b1cdbd2cSJim Jagielski     } TestCase;
499*b1cdbd2cSJim Jagielski 
500*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
501*b1cdbd2cSJim Jagielski 
502*b1cdbd2cSJim Jagielski 	{"capacity equal to 16, minimum is 5 ", 16,
503*b1cdbd2cSJim Jagielski 			new OUStringBuffer(), 5 },
504*b1cdbd2cSJim Jagielski     	{"capacity equal to 16, minimum is -5", 16,
505*b1cdbd2cSJim Jagielski     			new OUStringBuffer(), -5},
506*b1cdbd2cSJim Jagielski     	{"capacity equal to 16, minimum is 0", 16,
507*b1cdbd2cSJim Jagielski                         new OUStringBuffer(), 0},
508*b1cdbd2cSJim Jagielski 	{"capacity equal to 16, minimum is 20", 20, //the testcase is based on comments
509*b1cdbd2cSJim Jagielski 			new OUStringBuffer(), 20},
510*b1cdbd2cSJim Jagielski 	{"capacity equal to 16, minimum is 50", 50,
511*b1cdbd2cSJim Jagielski 			new OUStringBuffer(), 50},
512*b1cdbd2cSJim Jagielski         {"capacity equal to 6, minimum is 20", 20,
513*b1cdbd2cSJim Jagielski 			new OUStringBuffer(6), 20 },
514*b1cdbd2cSJim Jagielski         {"capacity equal to 6, minimum is 2", 6,
515*b1cdbd2cSJim Jagielski                         new OUStringBuffer(6), 2},
516*b1cdbd2cSJim Jagielski         {"capacity equal to 6, minimum is -6", 6,
517*b1cdbd2cSJim Jagielski                         new OUStringBuffer(6), -6},
518*b1cdbd2cSJim Jagielski         {"capacity equal to 6, minimum is -6", 10, //the testcase is based on comments
519*b1cdbd2cSJim Jagielski                         new OUStringBuffer(6), 10},
520*b1cdbd2cSJim Jagielski         {"capacity equal to 0, minimum is 6", 6,
521*b1cdbd2cSJim Jagielski                         new OUStringBuffer(0), 6},
522*b1cdbd2cSJim Jagielski         {"capacity equal to 0, minimum is 1", 2, //the testcase is based on comments
523*b1cdbd2cSJim Jagielski                         new OUStringBuffer(0), 1},
524*b1cdbd2cSJim Jagielski     /*
525*b1cdbd2cSJim Jagielski       {"capacity equal to 0, minimum is -1", 0,
526*b1cdbd2cSJim Jagielski                         new OUStringBuffer(0), -1},
527*b1cdbd2cSJim Jagielski     */
528*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
529*b1cdbd2cSJim Jagielski         {"capacity equal to 2147483647, minimum is 65535", kSInt32Max,//will core dump
530*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max), 65535},
531*b1cdbd2cSJim Jagielski         {"capacity equal to 2147483647, minimum is 2147483647", kSInt32Max,//will core dump
532*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max), kSInt32Max},
533*b1cdbd2cSJim Jagielski         {"capacity equal to 2147483647, minimum is -1", kSInt32Max,//will core dump
534*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max), -1},
535*b1cdbd2cSJim Jagielski         {"capacity equal to 2147483647, minimum is 0", kSInt32Max,//will core dump
536*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max), 0},
537*b1cdbd2cSJim Jagielski         {"capacity equal to 2147483647, minimum is -2147483648", kSInt32Max,//will core dump
538*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kSInt32Max), kNonSInt32Max},
539*b1cdbd2cSJim Jagielski #endif
540*b1cdbd2cSJim Jagielski         {"capacity equal to -2147483648, minimum is 65535", 65535,
541*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max), 65535},
542*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
543*b1cdbd2cSJim Jagielski         {"capacity equal to -2147483648, minimum is 2147483647", 2147483647,//will core dump
544*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max), 2147483647},
545*b1cdbd2cSJim Jagielski #endif
546*b1cdbd2cSJim Jagielski         {"capacity equal to -2147483648, minimum is -1", 2,
547*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max), -1},
548*b1cdbd2cSJim Jagielski         {"capacity equal to -2147483648, minimum is 0", 2,
549*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max), 0},
550*b1cdbd2cSJim Jagielski         {"capacity equal to -2147483648, minimum is -2147483648", kNonSInt32Max,
551*b1cdbd2cSJim Jagielski                         new OUStringBuffer(kNonSInt32Max), kNonSInt32Max}
552*b1cdbd2cSJim Jagielski  	};
553*b1cdbd2cSJim Jagielski 
554*b1cdbd2cSJim Jagielski 
555*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
556*b1cdbd2cSJim Jagielski     sal_uInt32 i;
557*b1cdbd2cSJim Jagielski 
558*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
559*b1cdbd2cSJim Jagielski     {
560*b1cdbd2cSJim Jagielski 	arrTestCase[i].input1->ensureCapacity(arrTestCase[i].input2);
561*b1cdbd2cSJim Jagielski         sal_Int32 length = arrTestCase[i].input1->getCapacity();
562*b1cdbd2cSJim Jagielski         sal_Bool lastRes = (length == arrTestCase[i].expVal);
563*b1cdbd2cSJim Jagielski 
564*b1cdbd2cSJim Jagielski         c_rtl_tres_state
565*b1cdbd2cSJim Jagielski         (
566*b1cdbd2cSJim Jagielski             hRtlTestResult,
567*b1cdbd2cSJim Jagielski             lastRes,
568*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
569*b1cdbd2cSJim Jagielski             createName( pMeth, "ensureCapacity", i )
570*b1cdbd2cSJim Jagielski 
571*b1cdbd2cSJim Jagielski         );
572*b1cdbd2cSJim Jagielski 	res &= lastRes;
573*b1cdbd2cSJim Jagielski     }
574*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "ensureCapacity");
575*b1cdbd2cSJim Jagielski //    return ( res );
576*b1cdbd2cSJim Jagielski }
577*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
578*b1cdbd2cSJim Jagielski // testing the method setLength(sal_Int32 newLength)
579*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
580*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_setLength(hTestResult hRtlTestResult)581*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setLength(
582*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
583*b1cdbd2cSJim Jagielski {
584*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "setLength");
585*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
586*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
587*b1cdbd2cSJim Jagielski 
588*b1cdbd2cSJim Jagielski     OUString arrOUS[6]={OUString( aUStr1 ),
589*b1cdbd2cSJim Jagielski                         OUString( aUStr27),
590*b1cdbd2cSJim Jagielski                         OUString(),
591*b1cdbd2cSJim Jagielski                         OUString( "",0,
592*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
593*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
594*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
595*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
596*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
597*b1cdbd2cSJim Jagielski                         OUString( aUStr2 )};
598*b1cdbd2cSJim Jagielski 
599*b1cdbd2cSJim Jagielski     typedef struct TestCase
600*b1cdbd2cSJim Jagielski     {
601*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
602*b1cdbd2cSJim Jagielski 	sal_Int32 		expVal1;
603*b1cdbd2cSJim Jagielski     	OUString*               expVal2;
604*b1cdbd2cSJim Jagielski 	sal_Int32 		expVal3;
605*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
606*b1cdbd2cSJim Jagielski         sal_Int32               input2;
607*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal2;}
608*b1cdbd2cSJim Jagielski     } TestCase;
609*b1cdbd2cSJim Jagielski 
610*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
611*b1cdbd2cSJim Jagielski 
612*b1cdbd2cSJim Jagielski 	{"newLength more than the capacity of OUStringBuffer(aUStr1)",
613*b1cdbd2cSJim Jagielski                 50, new OUString(aUStr1), 50,
614*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), 50 },
615*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer(aUStr1)",
616*b1cdbd2cSJim Jagielski                 kTestStr13Len, new OUString(aUStr1), 32,
617*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr13Len },
618*b1cdbd2cSJim Jagielski         {"newLength equal to the length of OUStringBuffer(aUStr1)",
619*b1cdbd2cSJim Jagielski                 kTestStr1Len, new OUString(aUStr1), 32,
620*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr1Len },
621*b1cdbd2cSJim Jagielski     	{"newLength less than the length of OUStringBuffer(aUStr1)",
622*b1cdbd2cSJim Jagielski                 kTestStr7Len, new OUString(aUStr7), 32,
623*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr7Len},
624*b1cdbd2cSJim Jagielski     	{"newLength equal to 0",
625*b1cdbd2cSJim Jagielski                 0, new OUString(), 32,
626*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), 0},
627*b1cdbd2cSJim Jagielski 	{"newLength more than the capacity of OUStringBuffer(1)",
628*b1cdbd2cSJim Jagielski                 25, new OUString(arrOUS[1]), 25,
629*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), 25},
630*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer(1)",
631*b1cdbd2cSJim Jagielski                 5, new OUString(arrOUS[1]), 17,
632*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), 5},
633*b1cdbd2cSJim Jagielski 	{"newLength equal to the length of OUStringBuffer(1)",
634*b1cdbd2cSJim Jagielski                 kTestStr27Len, new OUString(arrOUS[1]), 17,
635*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr27Len},
636*b1cdbd2cSJim Jagielski 	{"newLength less than the length of OUStringBuffer(1)",
637*b1cdbd2cSJim Jagielski                 0, new OUString(), 17,
638*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), 0},
639*b1cdbd2cSJim Jagielski 	{"newLength more than the capacity of OUStringBuffer()",
640*b1cdbd2cSJim Jagielski                 20, new OUString(), 20,
641*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), 20},
642*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer()",
643*b1cdbd2cSJim Jagielski                 3, new OUString(), 16,
644*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), 3},
645*b1cdbd2cSJim Jagielski 	{"newLength less than the length of OUStringBuffer()",
646*b1cdbd2cSJim Jagielski                 0, new OUString(), 16,
647*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), 0},
648*b1cdbd2cSJim Jagielski 	{"newLength more than the capacity of OUStringBuffer("")",
649*b1cdbd2cSJim Jagielski                 20, new OUString(), 20,
650*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), 20},
651*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer("")",
652*b1cdbd2cSJim Jagielski                 5, new OUString(), 16,
653*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), 5},
654*b1cdbd2cSJim Jagielski 	{"newLength less than the length of OUStringBuffer("")",
655*b1cdbd2cSJim Jagielski                 0, new OUString(), 16,
656*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), 0},
657*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer(\0)",
658*b1cdbd2cSJim Jagielski                 20, new OUString(), 20,
659*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), 20},
660*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer(\0)",
661*b1cdbd2cSJim Jagielski                 5, new OUString(), 16,
662*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), 5},
663*b1cdbd2cSJim Jagielski 	{"newLength less than the length of OUStringBuffer(\0)",
664*b1cdbd2cSJim Jagielski                 0, new OUString(), 16,
665*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), 0},
666*b1cdbd2cSJim Jagielski 	{"newLength more than the capacity of OUStringBuffer(aUStr2)",
667*b1cdbd2cSJim Jagielski                 50, new OUString(aUStr2), 66,
668*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5]), 50,},
669*b1cdbd2cSJim Jagielski 	{"newLength more than the length of OUStringBuffer(aUStr2)",
670*b1cdbd2cSJim Jagielski                 40, new OUString(aUStr2), 48,
671*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5]), 40,},
672*b1cdbd2cSJim Jagielski 	{"newLength equal to the length of OUStringBuffer(aUStr2)",
673*b1cdbd2cSJim Jagielski                 kTestStr2Len, new OUString(aUStr2), 48,
674*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5]), kTestStr2Len,},
675*b1cdbd2cSJim Jagielski     	{"newLength less than the length of OUStringBuffer(aUStr2)",
676*b1cdbd2cSJim Jagielski                 kTestStr7Len, new OUString(aUStr7), 48,
677*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5]), kTestStr7Len},
678*b1cdbd2cSJim Jagielski     	{"newLength equal to 0",
679*b1cdbd2cSJim Jagielski                 0, new OUString(), 48,
680*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[5]), 0}
681*b1cdbd2cSJim Jagielski 
682*b1cdbd2cSJim Jagielski 	};
683*b1cdbd2cSJim Jagielski 
684*b1cdbd2cSJim Jagielski 
685*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
686*b1cdbd2cSJim Jagielski     sal_uInt32 i;
687*b1cdbd2cSJim Jagielski 
688*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
689*b1cdbd2cSJim Jagielski     {
690*b1cdbd2cSJim Jagielski 	arrTestCase[i].input1->setLength(arrTestCase[i].input2);
691*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
692*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr() == *(arrTestCase[i].expVal2) &&
693*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal1 &&
694*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getCapacity() == arrTestCase[i].expVal3 );
695*b1cdbd2cSJim Jagielski 
696*b1cdbd2cSJim Jagielski         c_rtl_tres_state
697*b1cdbd2cSJim Jagielski         (
698*b1cdbd2cSJim Jagielski             hRtlTestResult,
699*b1cdbd2cSJim Jagielski             lastRes,
700*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
701*b1cdbd2cSJim Jagielski             createName( pMeth, "setLength", i )
702*b1cdbd2cSJim Jagielski 
703*b1cdbd2cSJim Jagielski         );
704*b1cdbd2cSJim Jagielski 	res &= lastRes;
705*b1cdbd2cSJim Jagielski     }
706*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "setLength");
707*b1cdbd2cSJim Jagielski //    return ( res );
708*b1cdbd2cSJim Jagielski }
709*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
710*b1cdbd2cSJim Jagielski // testing the method charAt( sal_Int32 index )
711*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
712*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_charAt(hTestResult hRtlTestResult)713*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_charAt(
714*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
715*b1cdbd2cSJim Jagielski {
716*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "charAt");
717*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
718*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
719*b1cdbd2cSJim Jagielski 
720*b1cdbd2cSJim Jagielski     OUString arrOUS[4]={OUString( aUStr1 ), // "Sun Microsystems";
721*b1cdbd2cSJim Jagielski                         OUString( aUStr27), // "s";
722*b1cdbd2cSJim Jagielski                         OUString( aUStr28), // "\50\3\5\7\11\13\15\17sun";
723*b1cdbd2cSJim Jagielski                         OUString( )};
724*b1cdbd2cSJim Jagielski 
725*b1cdbd2cSJim Jagielski     typedef struct TestCase
726*b1cdbd2cSJim Jagielski     {
727*b1cdbd2cSJim Jagielski         sal_Char*		comments;
728*b1cdbd2cSJim Jagielski         sal_Unicode 		expVal;
729*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
730*b1cdbd2cSJim Jagielski         sal_Int32               input2;
731*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1;}
732*b1cdbd2cSJim Jagielski     } TestCase;
733*b1cdbd2cSJim Jagielski 
734*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
735*b1cdbd2cSJim Jagielski 
736*b1cdbd2cSJim Jagielski 	{"return the first character of OUStringBuffer(aUStr1)",
737*b1cdbd2cSJim Jagielski                 83, new OUStringBuffer(arrOUS[0]), 0 },
738*b1cdbd2cSJim Jagielski 	{"return the middle character of OUStringBuffer(aUStr1)",
739*b1cdbd2cSJim Jagielski                 32, new OUStringBuffer(arrOUS[0]), 3 },
740*b1cdbd2cSJim Jagielski         {"return the last character of OUStringBuffer(aUStr1)",
741*b1cdbd2cSJim Jagielski                 115, new OUStringBuffer(arrOUS[0]), 15 },
742*b1cdbd2cSJim Jagielski 	{"return the only character of OUStringBuffer(aUStr27)",
743*b1cdbd2cSJim Jagielski                 115, new OUStringBuffer(arrOUS[1]), 0},
744*b1cdbd2cSJim Jagielski 	{"return the first of OUStringBuffer(aUStr28) with special character",
745*b1cdbd2cSJim Jagielski                 40, new OUStringBuffer(arrOUS[2]), 0},
746*b1cdbd2cSJim Jagielski 	/*
747*b1cdbd2cSJim Jagielski {"return the mid of OUStringBuffer(aUStr28) with special character",
748*b1cdbd2cSJim Jagielski                 11, new OUStringBuffer(arrOUS[2]), 5},
749*b1cdbd2cSJim Jagielski */
750*b1cdbd2cSJim Jagielski /*
751*b1cdbd2cSJim Jagielski         {"invalid character of OUStringBuffer()",
752*b1cdbd2cSJim Jagielski                 0, new OUStringBuffer(arrOUS[3]), 0},
753*b1cdbd2cSJim Jagielski */
754*b1cdbd2cSJim Jagielski /*
755*b1cdbd2cSJim Jagielski         {"invalid character of OUStringBuffer()",
756*b1cdbd2cSJim Jagielski                 0, new OUStringBuffer(arrOUS[3]), -2}
757*b1cdbd2cSJim Jagielski */
758*b1cdbd2cSJim Jagielski 
759*b1cdbd2cSJim Jagielski 	};
760*b1cdbd2cSJim Jagielski 
761*b1cdbd2cSJim Jagielski 
762*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
763*b1cdbd2cSJim Jagielski     sal_uInt32 i;
764*b1cdbd2cSJim Jagielski 
765*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
766*b1cdbd2cSJim Jagielski     {
767*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
768*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->charAt(arrTestCase[i].input2) ==
769*b1cdbd2cSJim Jagielski               arrTestCase[i].expVal );
770*b1cdbd2cSJim Jagielski         // LLA: last case removed, due to the fact of complexity of the test code :-(
771*b1cdbd2cSJim Jagielski         // LLA: if(i<=7)
772*b1cdbd2cSJim Jagielski         // LLA: {
773*b1cdbd2cSJim Jagielski         c_rtl_tres_state
774*b1cdbd2cSJim Jagielski             (
775*b1cdbd2cSJim Jagielski                 hRtlTestResult,
776*b1cdbd2cSJim Jagielski                 lastRes,
777*b1cdbd2cSJim Jagielski                 arrTestCase[i].comments,
778*b1cdbd2cSJim Jagielski                 createName( pMeth, "charAt", i )
779*b1cdbd2cSJim Jagielski 
780*b1cdbd2cSJim Jagielski                 );
781*b1cdbd2cSJim Jagielski         // LLA: }
782*b1cdbd2cSJim Jagielski         // LLA: else
783*b1cdbd2cSJim Jagielski         // LLA: {
784*b1cdbd2cSJim Jagielski         // LLA:     c_rtl_tres_state
785*b1cdbd2cSJim Jagielski         // LLA:     (
786*b1cdbd2cSJim Jagielski         // LLA:         hRtlTestResult,
787*b1cdbd2cSJim Jagielski         // LLA:         sal_True,
788*b1cdbd2cSJim Jagielski         // LLA:         arrTestCase[i].comments,
789*b1cdbd2cSJim Jagielski         // LLA:         createName( pMeth, "charAt", i )
790*b1cdbd2cSJim Jagielski         // LLA:
791*b1cdbd2cSJim Jagielski         // LLA:     );
792*b1cdbd2cSJim Jagielski         // LLA: }
793*b1cdbd2cSJim Jagielski 	res &= lastRes;
794*b1cdbd2cSJim Jagielski     }
795*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "charAt");
796*b1cdbd2cSJim Jagielski //    return ( res );
797*b1cdbd2cSJim Jagielski }
798*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
799*b1cdbd2cSJim Jagielski // testing the operator const sal_Unicode * (csuc for short)
800*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
test_rtl_OUStringBuffer_csuc(hTestResult hRtlTestResult)801*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_csuc(
802*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
803*b1cdbd2cSJim Jagielski {
804*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "csuc");
805*b1cdbd2cSJim Jagielski 	sal_Char methName[MAXBUFLENGTH];
806*b1cdbd2cSJim Jagielski 	sal_Char* pMeth = methName;
807*b1cdbd2cSJim Jagielski 
808*b1cdbd2cSJim Jagielski 	const sal_Unicode tmpUC=0x0;
809*b1cdbd2cSJim Jagielski 	rtl_uString* tmpUstring = NULL;
810*b1cdbd2cSJim Jagielski 	const sal_Char *tmpStr=kTestStr1;
811*b1cdbd2cSJim Jagielski 	sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
812*b1cdbd2cSJim Jagielski 	//sal_Int32 cmpLen = 0;
813*b1cdbd2cSJim Jagielski         OUString tempString(aUStr1);
814*b1cdbd2cSJim Jagielski 
815*b1cdbd2cSJim Jagielski 	rtl_string2UString( &tmpUstring, tmpStr,  tmpLen,
816*b1cdbd2cSJim Jagielski 		osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
817*b1cdbd2cSJim Jagielski     OSL_ASSERT(tmpUstring != NULL);
818*b1cdbd2cSJim Jagielski 
819*b1cdbd2cSJim Jagielski 
820*b1cdbd2cSJim Jagielski 	typedef struct TestCase
821*b1cdbd2cSJim Jagielski         {
822*b1cdbd2cSJim Jagielski             sal_Char*		           comments;
823*b1cdbd2cSJim Jagielski             const sal_Unicode*             expVal;
824*b1cdbd2cSJim Jagielski             sal_Int32                      cmpLen;
825*b1cdbd2cSJim Jagielski             OUStringBuffer*                input1;
826*b1cdbd2cSJim Jagielski             ~TestCase()                    {  delete input1; }
827*b1cdbd2cSJim Jagielski  	} TestCase;
828*b1cdbd2cSJim Jagielski 
829*b1cdbd2cSJim Jagielski     TestCase arrTestCase[] =
830*b1cdbd2cSJim Jagielski     {
831*b1cdbd2cSJim Jagielski       	{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
832*b1cdbd2cSJim Jagielski       				new OUStringBuffer(tempString)},
833*b1cdbd2cSJim Jagielski         {"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
834*b1cdbd2cSJim Jagielski     };
835*b1cdbd2cSJim Jagielski 
836*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
837*b1cdbd2cSJim Jagielski     sal_uInt32 i;
838*b1cdbd2cSJim Jagielski     for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
839*b1cdbd2cSJim Jagielski     {
840*b1cdbd2cSJim Jagielski        const sal_Unicode* pstr = *arrTestCase[i].input1;
841*b1cdbd2cSJim Jagielski 
842*b1cdbd2cSJim Jagielski        res &= c_rtl_tres_state
843*b1cdbd2cSJim Jagielski        (
844*b1cdbd2cSJim Jagielski             hRtlTestResult,
845*b1cdbd2cSJim Jagielski             cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
846*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
847*b1cdbd2cSJim Jagielski             createName( pMeth, "const sal_Unicode*", i )
848*b1cdbd2cSJim Jagielski        );
849*b1cdbd2cSJim Jagielski     }
850*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "csuc");
851*b1cdbd2cSJim Jagielski //    return ( res );
852*b1cdbd2cSJim Jagielski }
853*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
854*b1cdbd2cSJim Jagielski // testing the method const sal_Unicode * getStr()
855*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
test_rtl_OUStringBuffer_getStr(hTestResult hRtlTestResult)856*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getStr(
857*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
858*b1cdbd2cSJim Jagielski {
859*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "getStr");
860*b1cdbd2cSJim Jagielski 	sal_Char methName[MAXBUFLENGTH];
861*b1cdbd2cSJim Jagielski 	sal_Char* pMeth = methName;
862*b1cdbd2cSJim Jagielski 
863*b1cdbd2cSJim Jagielski 	const sal_Unicode tmpUC=0x0;
864*b1cdbd2cSJim Jagielski 	rtl_uString* tmpUstring = NULL;
865*b1cdbd2cSJim Jagielski 	const sal_Char *tmpStr=kTestStr1;
866*b1cdbd2cSJim Jagielski 	sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
867*b1cdbd2cSJim Jagielski 	//sal_Int32 cmpLen = 0;
868*b1cdbd2cSJim Jagielski         OUString tempString(aUStr1);
869*b1cdbd2cSJim Jagielski 
870*b1cdbd2cSJim Jagielski 	rtl_string2UString( &tmpUstring, tmpStr,  tmpLen,
871*b1cdbd2cSJim Jagielski 		osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
872*b1cdbd2cSJim Jagielski     OSL_ASSERT(tmpUstring != NULL);
873*b1cdbd2cSJim Jagielski 
874*b1cdbd2cSJim Jagielski 
875*b1cdbd2cSJim Jagielski     typedef struct TestCase
876*b1cdbd2cSJim Jagielski     {
877*b1cdbd2cSJim Jagielski         sal_Char*			comments;
878*b1cdbd2cSJim Jagielski         const sal_Unicode*		expVal;
879*b1cdbd2cSJim Jagielski         sal_Int32			cmpLen;
880*b1cdbd2cSJim Jagielski         OUStringBuffer*                 input1;
881*b1cdbd2cSJim Jagielski         ~TestCase()                     {  delete input1;}
882*b1cdbd2cSJim Jagielski     } TestCase;
883*b1cdbd2cSJim Jagielski 
884*b1cdbd2cSJim Jagielski     TestCase arrTestCase[] =
885*b1cdbd2cSJim Jagielski     {
886*b1cdbd2cSJim Jagielski       	{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
887*b1cdbd2cSJim Jagielski       				new OUStringBuffer(tempString)},
888*b1cdbd2cSJim Jagielski         {"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
889*b1cdbd2cSJim Jagielski     };
890*b1cdbd2cSJim Jagielski 
891*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
892*b1cdbd2cSJim Jagielski     sal_uInt32 i;
893*b1cdbd2cSJim Jagielski     for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
894*b1cdbd2cSJim Jagielski     {
895*b1cdbd2cSJim Jagielski        const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
896*b1cdbd2cSJim Jagielski 
897*b1cdbd2cSJim Jagielski        res &= c_rtl_tres_state
898*b1cdbd2cSJim Jagielski        (
899*b1cdbd2cSJim Jagielski             hRtlTestResult,
900*b1cdbd2cSJim Jagielski             cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
901*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
902*b1cdbd2cSJim Jagielski             createName( pMeth, "getStr", i )
903*b1cdbd2cSJim Jagielski        );
904*b1cdbd2cSJim Jagielski     }
905*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "getStr");
906*b1cdbd2cSJim Jagielski //    return ( res );
907*b1cdbd2cSJim Jagielski }
908*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
909*b1cdbd2cSJim Jagielski // testing the method setCharAt(sal_Int32 index, sal_Unicode ch)
910*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
911*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_setCharAt(hTestResult hRtlTestResult)912*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setCharAt(
913*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
914*b1cdbd2cSJim Jagielski {
915*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "setCharAt");
916*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
917*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
918*b1cdbd2cSJim Jagielski 
919*b1cdbd2cSJim Jagielski     OUString arrOUS[4]={OUString( aUStr1 ),
920*b1cdbd2cSJim Jagielski                         OUString( aUStr27),
921*b1cdbd2cSJim Jagielski                         OUString( aUStr28),
922*b1cdbd2cSJim Jagielski                         OUString( )};
923*b1cdbd2cSJim Jagielski 
924*b1cdbd2cSJim Jagielski     typedef struct TestCase
925*b1cdbd2cSJim Jagielski     {
926*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
927*b1cdbd2cSJim Jagielski 	OUString*               expVal;
928*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
929*b1cdbd2cSJim Jagielski         sal_Int32               input2;
930*b1cdbd2cSJim Jagielski         sal_Unicode             input3;
931*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
932*b1cdbd2cSJim Jagielski     } TestCase;
933*b1cdbd2cSJim Jagielski 
934*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
935*b1cdbd2cSJim Jagielski 
936*b1cdbd2cSJim Jagielski 	{"set the first character of OUStringBuffer(aUStr1) with s",
937*b1cdbd2cSJim Jagielski                 new OUString(aUStr31),
938*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), 0, 115 },
939*b1cdbd2cSJim Jagielski 	{"set the middle character of OUStringBuffer(aUStr1) with m",
940*b1cdbd2cSJim Jagielski                 new OUString(aUStr3),
941*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), 4, 109 },
942*b1cdbd2cSJim Jagielski         {"set the last character of OUStringBuffer(aUStr1) with ' '",
943*b1cdbd2cSJim Jagielski                 new OUString(aUStr32),
944*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), 15, 32 },
945*b1cdbd2cSJim Jagielski 	{"set the only character of OUStringBuffer(aUStr27) with ' '",
946*b1cdbd2cSJim Jagielski                 new OUString(aUStr33),
947*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), 0, 32},
948*b1cdbd2cSJim Jagielski 	{"set the only of OUStringBuffer(aUStr28) with special character",
949*b1cdbd2cSJim Jagielski                 new OUString(aUStr34),
950*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), 1, 5},
951*b1cdbd2cSJim Jagielski /*
952*b1cdbd2cSJim Jagielski         {"set the only of OUStringBuffer(aUStr28) with special character",
953*b1cdbd2cSJim Jagielski                 new OUString(aUStr35),
954*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), 1, -5}
955*b1cdbd2cSJim Jagielski */
956*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
957*b1cdbd2cSJim Jagielski 	,{"invalid character of OUStringBuffer()",
958*b1cdbd2cSJim Jagielski                 0,
959*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), 0, 5},
960*b1cdbd2cSJim Jagielski         {"invalid character of OUStringBuffer()",
961*b1cdbd2cSJim Jagielski                 0,
962*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), -2, 5},
963*b1cdbd2cSJim Jagielski         {"invalid character of OUStringBuffer()",
964*b1cdbd2cSJim Jagielski                 0,
965*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), 3, 5}
966*b1cdbd2cSJim Jagielski #endif
967*b1cdbd2cSJim Jagielski 
968*b1cdbd2cSJim Jagielski 	};
969*b1cdbd2cSJim Jagielski 
970*b1cdbd2cSJim Jagielski 
971*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
972*b1cdbd2cSJim Jagielski     sal_uInt32 i;
973*b1cdbd2cSJim Jagielski 
974*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
975*b1cdbd2cSJim Jagielski     {
976*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
977*b1cdbd2cSJim Jagielski             ( (arrTestCase[i].input1->setCharAt(arrTestCase[i].input2,
978*b1cdbd2cSJim Jagielski                 arrTestCase[i].input3)).getStr() == *(arrTestCase[i].expVal) );
979*b1cdbd2cSJim Jagielski         if(i<=4)
980*b1cdbd2cSJim Jagielski         {
981*b1cdbd2cSJim Jagielski             c_rtl_tres_state
982*b1cdbd2cSJim Jagielski             (
983*b1cdbd2cSJim Jagielski                 hRtlTestResult,
984*b1cdbd2cSJim Jagielski                 lastRes,
985*b1cdbd2cSJim Jagielski                 arrTestCase[i].comments,
986*b1cdbd2cSJim Jagielski                 createName( pMeth, "setCharAt", i )
987*b1cdbd2cSJim Jagielski 
988*b1cdbd2cSJim Jagielski             );
989*b1cdbd2cSJim Jagielski         }
990*b1cdbd2cSJim Jagielski         else
991*b1cdbd2cSJim Jagielski         {
992*b1cdbd2cSJim Jagielski             c_rtl_tres_state
993*b1cdbd2cSJim Jagielski             (
994*b1cdbd2cSJim Jagielski                 hRtlTestResult,
995*b1cdbd2cSJim Jagielski                 sal_True,
996*b1cdbd2cSJim Jagielski                 arrTestCase[i].comments,
997*b1cdbd2cSJim Jagielski                 createName( pMeth, "setCharAt", i )
998*b1cdbd2cSJim Jagielski 
999*b1cdbd2cSJim Jagielski             );
1000*b1cdbd2cSJim Jagielski         }
1001*b1cdbd2cSJim Jagielski 	res &= lastRes;
1002*b1cdbd2cSJim Jagielski     }
1003*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "setCharAt");
1004*b1cdbd2cSJim Jagielski //    return ( res );
1005*b1cdbd2cSJim Jagielski }
1006*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1007*b1cdbd2cSJim Jagielski // testing the method append(const OUString &str)
1008*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1009*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_append_001(hTestResult hRtlTestResult)1010*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_001(
1011*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1012*b1cdbd2cSJim Jagielski {
1013*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1014*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1015*b1cdbd2cSJim Jagielski 
1016*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1017*b1cdbd2cSJim Jagielski                         OUString(),
1018*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1019*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1020*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1021*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1022*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1023*b1cdbd2cSJim Jagielski 
1024*b1cdbd2cSJim Jagielski     typedef struct TestCase
1025*b1cdbd2cSJim Jagielski     {
1026*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1027*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1028*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1029*b1cdbd2cSJim Jagielski         OUString*               input2;
1030*b1cdbd2cSJim Jagielski 
1031*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete input2; delete expVal; }
1032*b1cdbd2cSJim Jagielski     } TestCase;
1033*b1cdbd2cSJim Jagielski 
1034*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1035*b1cdbd2cSJim Jagielski 
1036*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
1037*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1038*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), new OUString(aUStr8) },
1039*b1cdbd2cSJim Jagielski 	{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
1040*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1041*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), new OUString(aUStr36) },
1042*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
1043*b1cdbd2cSJim Jagielski                 new OUString(aUStr37),
1044*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), new OUString(aUStr23) },
1045*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
1046*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1047*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), new OUString()},
1048*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
1049*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1050*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), new OUString(aUStr7)},
1051*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
1052*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1053*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), new OUString(aUStr2)},
1054*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
1055*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1056*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), new OUString(aUStr1) },
1057*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
1058*b1cdbd2cSJim Jagielski                 new OUString(),
1059*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), new OUString()},
1060*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
1061*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1062*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), new OUString(aUStr7)},
1063*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
1064*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1065*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), new OUString(aUStr2)},
1066*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
1067*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1068*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), new OUString(aUStr1) },
1069*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
1070*b1cdbd2cSJim Jagielski                 new OUString(),
1071*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), new OUString()},
1072*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
1073*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1074*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), new OUString(aUStr7)},
1075*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
1076*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1077*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), new OUString(aUStr2)},
1078*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
1079*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1080*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), new OUString(aUStr1) },
1081*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
1082*b1cdbd2cSJim Jagielski                 new OUString(),
1083*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), new OUString()},
1084*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
1085*b1cdbd2cSJim Jagielski                 new OUString(aUStr29),
1086*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), new OUString(aUStr38)},
1087*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
1088*b1cdbd2cSJim Jagielski                 new OUString(aUStr39),
1089*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), new OUString(aUStr17)},
1090*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
1091*b1cdbd2cSJim Jagielski                 new OUString(aUStr40),
1092*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), new OUString(aUStr31) },
1093*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
1094*b1cdbd2cSJim Jagielski                 new OUString(aUStr28),
1095*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), new OUString()}
1096*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1097*b1cdbd2cSJim Jagielski         ,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
1098*b1cdbd2cSJim Jagielski                 new OUString(),
1099*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), new OUString()}
1100*b1cdbd2cSJim Jagielski #endif
1101*b1cdbd2cSJim Jagielski 	};
1102*b1cdbd2cSJim Jagielski 
1103*b1cdbd2cSJim Jagielski 
1104*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1105*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1106*b1cdbd2cSJim Jagielski 
1107*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1108*b1cdbd2cSJim Jagielski     {
1109*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->append( *(arrTestCase[i].input2) );
1110*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1111*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1112*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1113*b1cdbd2cSJim Jagielski 
1114*b1cdbd2cSJim Jagielski         c_rtl_tres_state
1115*b1cdbd2cSJim Jagielski         (
1116*b1cdbd2cSJim Jagielski             hRtlTestResult,
1117*b1cdbd2cSJim Jagielski             lastRes,
1118*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
1119*b1cdbd2cSJim Jagielski             createName( pMeth, "append(const OUString &str)_001", i )
1120*b1cdbd2cSJim Jagielski 
1121*b1cdbd2cSJim Jagielski         );
1122*b1cdbd2cSJim Jagielski 
1123*b1cdbd2cSJim Jagielski         res &= lastRes;
1124*b1cdbd2cSJim Jagielski     }
1125*b1cdbd2cSJim Jagielski 
1126*b1cdbd2cSJim Jagielski     return ( res );
1127*b1cdbd2cSJim Jagielski }
1128*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1129*b1cdbd2cSJim Jagielski // testing the method append( const sal_Unicode * str )
1130*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1131*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_append_002(hTestResult hRtlTestResult)1132*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_002(
1133*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1134*b1cdbd2cSJim Jagielski {
1135*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1136*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1137*b1cdbd2cSJim Jagielski 
1138*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1139*b1cdbd2cSJim Jagielski                         OUString(),
1140*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1141*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1142*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1143*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1144*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1145*b1cdbd2cSJim Jagielski 
1146*b1cdbd2cSJim Jagielski     typedef struct TestCase
1147*b1cdbd2cSJim Jagielski     {
1148*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1149*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1150*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1151*b1cdbd2cSJim Jagielski         sal_Unicode*            input2;
1152*b1cdbd2cSJim Jagielski 
1153*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
1154*b1cdbd2cSJim Jagielski     } TestCase;
1155*b1cdbd2cSJim Jagielski 
1156*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1157*b1cdbd2cSJim Jagielski 
1158*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
1159*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1160*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr8 },
1161*b1cdbd2cSJim Jagielski 	{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
1162*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1163*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr36 },
1164*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
1165*b1cdbd2cSJim Jagielski                 new OUString(aUStr37),
1166*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr23 },
1167*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
1168*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1169*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr25 },
1170*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
1171*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1172*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr7 },
1173*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
1174*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1175*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2 },
1176*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
1177*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1178*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr1 },
1179*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
1180*b1cdbd2cSJim Jagielski                 new OUString(),
1181*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr25 },
1182*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
1183*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1184*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr7 },
1185*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
1186*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1187*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2 },
1188*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
1189*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1190*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr1 },
1191*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
1192*b1cdbd2cSJim Jagielski                 new OUString(),
1193*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr25 },
1194*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
1195*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1196*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr7 },
1197*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
1198*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1199*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2 },
1200*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
1201*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1202*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr1 },
1203*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
1204*b1cdbd2cSJim Jagielski                 new OUString(),
1205*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr25 },
1206*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
1207*b1cdbd2cSJim Jagielski                 new OUString(aUStr29),
1208*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr38 },
1209*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
1210*b1cdbd2cSJim Jagielski                 new OUString(aUStr39),
1211*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr17 },
1212*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
1213*b1cdbd2cSJim Jagielski                 new OUString(aUStr40),
1214*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr31 },
1215*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
1216*b1cdbd2cSJim Jagielski                 new OUString(aUStr28),
1217*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr25 }
1218*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1219*b1cdbd2cSJim Jagielski         ,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
1220*b1cdbd2cSJim Jagielski                 new OUString(),
1221*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), aUStr25 }
1222*b1cdbd2cSJim Jagielski #endif
1223*b1cdbd2cSJim Jagielski 	};
1224*b1cdbd2cSJim Jagielski 
1225*b1cdbd2cSJim Jagielski 
1226*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1227*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1228*b1cdbd2cSJim Jagielski 
1229*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1230*b1cdbd2cSJim Jagielski     {
1231*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->append( arrTestCase[i].input2 );
1232*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1233*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1234*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1235*b1cdbd2cSJim Jagielski 
1236*b1cdbd2cSJim Jagielski         c_rtl_tres_state
1237*b1cdbd2cSJim Jagielski         (
1238*b1cdbd2cSJim Jagielski             hRtlTestResult,
1239*b1cdbd2cSJim Jagielski             lastRes,
1240*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
1241*b1cdbd2cSJim Jagielski             createName( pMeth, "append( const sal_Unicode * str )_002", i )
1242*b1cdbd2cSJim Jagielski 
1243*b1cdbd2cSJim Jagielski         );
1244*b1cdbd2cSJim Jagielski 
1245*b1cdbd2cSJim Jagielski         res &= lastRes;
1246*b1cdbd2cSJim Jagielski     }
1247*b1cdbd2cSJim Jagielski 
1248*b1cdbd2cSJim Jagielski     return ( res );
1249*b1cdbd2cSJim Jagielski }
1250*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1251*b1cdbd2cSJim Jagielski // testing the method append( const sal_Unicode * str, sal_Int32 len)
1252*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1253*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_append_003(hTestResult hRtlTestResult)1254*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_003(
1255*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1256*b1cdbd2cSJim Jagielski {
1257*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1258*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1259*b1cdbd2cSJim Jagielski 
1260*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1261*b1cdbd2cSJim Jagielski                         OUString(),
1262*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1263*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1264*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1265*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1266*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1267*b1cdbd2cSJim Jagielski 
1268*b1cdbd2cSJim Jagielski     typedef struct TestCase
1269*b1cdbd2cSJim Jagielski     {
1270*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1271*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1272*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1273*b1cdbd2cSJim Jagielski         sal_Unicode*            input2;
1274*b1cdbd2cSJim Jagielski         sal_Int32               input3;
1275*b1cdbd2cSJim Jagielski 
1276*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
1277*b1cdbd2cSJim Jagielski     } TestCase;
1278*b1cdbd2cSJim Jagielski 
1279*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1280*b1cdbd2cSJim Jagielski 
1281*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
1282*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1283*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr36, 12 },
1284*b1cdbd2cSJim Jagielski 	{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
1285*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1286*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr36, 28 },
1287*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
1288*b1cdbd2cSJim Jagielski                 new OUString(aUStr37),
1289*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr23, 16 },
1290*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
1291*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1292*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr2, 0 },
1293*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1294*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[0]",
1295*b1cdbd2cSJim Jagielski                 new OUString(aUStr41),
1296*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), aUStr2, -1 },
1297*b1cdbd2cSJim Jagielski     */
1298*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
1299*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1300*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2, 4 },
1301*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
1302*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1303*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2, 32 },
1304*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
1305*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1306*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2, 16 },
1307*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
1308*b1cdbd2cSJim Jagielski                 new OUString(),
1309*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2, 0 },
1310*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1311*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[1]",
1312*b1cdbd2cSJim Jagielski                 new OUString(),
1313*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), aUStr2, -1 },
1314*b1cdbd2cSJim Jagielski     */
1315*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
1316*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1317*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2, 4 },
1318*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
1319*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1320*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2, 32 },
1321*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
1322*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1323*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2, 16 },
1324*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
1325*b1cdbd2cSJim Jagielski                 new OUString(),
1326*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2, 0 },
1327*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1328*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[2]",
1329*b1cdbd2cSJim Jagielski                 new OUString(),
1330*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), aUStr2, -1 },
1331*b1cdbd2cSJim Jagielski     */
1332*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
1333*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1334*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2, 4 },
1335*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
1336*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1337*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2, 32 },
1338*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
1339*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1340*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2, 16 },
1341*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
1342*b1cdbd2cSJim Jagielski                 new OUString(),
1343*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2, 0 },
1344*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1345*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[3]",
1346*b1cdbd2cSJim Jagielski                 new OUString(),
1347*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), aUStr2, -1 },
1348*b1cdbd2cSJim Jagielski     */
1349*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
1350*b1cdbd2cSJim Jagielski                 new OUString(aUStr29),
1351*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr38, 7 },
1352*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
1353*b1cdbd2cSJim Jagielski                 new OUString(aUStr39),
1354*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr17, 22 },
1355*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
1356*b1cdbd2cSJim Jagielski                 new OUString(aUStr40),
1357*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr31, 16 },
1358*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
1359*b1cdbd2cSJim Jagielski                 new OUString(aUStr28),
1360*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr2, 0 },
1361*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1362*b1cdbd2cSJim Jagielski       {"Appends the string(length less than 0) to the string buffer arrOUS[4]",
1363*b1cdbd2cSJim Jagielski                 new OUString(aUStr42),
1364*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), aUStr2, -1 }
1365*b1cdbd2cSJim Jagielski     */
1366*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1367*b1cdbd2cSJim Jagielski         ,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
1368*b1cdbd2cSJim Jagielski                 new OUString(),
1369*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), aUStr25 }
1370*b1cdbd2cSJim Jagielski #endif
1371*b1cdbd2cSJim Jagielski 	};
1372*b1cdbd2cSJim Jagielski 
1373*b1cdbd2cSJim Jagielski 
1374*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1375*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1376*b1cdbd2cSJim Jagielski 
1377*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1378*b1cdbd2cSJim Jagielski     {
1379*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->append(
1380*b1cdbd2cSJim Jagielski                     arrTestCase[i].input2, arrTestCase[i].input3);
1381*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1382*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1383*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1384*b1cdbd2cSJim Jagielski 
1385*b1cdbd2cSJim Jagielski         c_rtl_tres_state
1386*b1cdbd2cSJim Jagielski         (
1387*b1cdbd2cSJim Jagielski             hRtlTestResult,
1388*b1cdbd2cSJim Jagielski             lastRes,
1389*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
1390*b1cdbd2cSJim Jagielski             createName( pMeth, "append( const sal_Unicode * str, sal_Int32 len)_003", i )
1391*b1cdbd2cSJim Jagielski 
1392*b1cdbd2cSJim Jagielski         );
1393*b1cdbd2cSJim Jagielski 
1394*b1cdbd2cSJim Jagielski         res &= lastRes;
1395*b1cdbd2cSJim Jagielski     }
1396*b1cdbd2cSJim Jagielski 
1397*b1cdbd2cSJim Jagielski     return ( res );
1398*b1cdbd2cSJim Jagielski }
1399*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1400*b1cdbd2cSJim Jagielski // testing the method append(sal_Bool b)
1401*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1402*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_append_004(hTestResult hRtlTestResult)1403*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_004(
1404*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1405*b1cdbd2cSJim Jagielski {
1406*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1407*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1408*b1cdbd2cSJim Jagielski 
1409*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1410*b1cdbd2cSJim Jagielski                         OUString(),
1411*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1412*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1413*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1414*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1415*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1416*b1cdbd2cSJim Jagielski 
1417*b1cdbd2cSJim Jagielski     typedef struct TestCase
1418*b1cdbd2cSJim Jagielski     {
1419*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1420*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1421*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1422*b1cdbd2cSJim Jagielski         sal_Bool                input2;
1423*b1cdbd2cSJim Jagielski 
1424*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
1425*b1cdbd2cSJim Jagielski     } TestCase;
1426*b1cdbd2cSJim Jagielski 
1427*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1428*b1cdbd2cSJim Jagielski 
1429*b1cdbd2cSJim Jagielski 	{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[0]",
1430*b1cdbd2cSJim Jagielski                 new OUString(aUStr45),
1431*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), sal_True },
1432*b1cdbd2cSJim Jagielski 	{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[0]",
1433*b1cdbd2cSJim Jagielski                 new OUString(aUStr46),
1434*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), sal_False },
1435*b1cdbd2cSJim Jagielski 	{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[1]",
1436*b1cdbd2cSJim Jagielski                 new OUString(aUStr47),
1437*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), sal_True },
1438*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[1]",
1439*b1cdbd2cSJim Jagielski                 new OUString(aUStr48),
1440*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), sal_False },
1441*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[2]",
1442*b1cdbd2cSJim Jagielski                 new OUString(aUStr47),
1443*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), sal_True },
1444*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[2]",
1445*b1cdbd2cSJim Jagielski                 new OUString(aUStr48),
1446*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), sal_False },
1447*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[3]",
1448*b1cdbd2cSJim Jagielski                 new OUString(aUStr47),
1449*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), sal_True },
1450*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[3]",
1451*b1cdbd2cSJim Jagielski                 new OUString(aUStr48),
1452*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), sal_False },
1453*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_True) to the string buffer arrOUS[4]",
1454*b1cdbd2cSJim Jagielski                 new OUString(aUStr49),
1455*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), sal_True },
1456*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_False) to the string buffer arrOUS[4]",
1457*b1cdbd2cSJim Jagielski                 new OUString(aUStr50),
1458*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), sal_False }
1459*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1460*b1cdbd2cSJim Jagielski         ,{"Appends the sal_Bool(sal_True) to the string buffer(with INT_MAX) ",
1461*b1cdbd2cSJim Jagielski                 new OUString(aUStr47),
1462*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), sal_True },
1463*b1cdbd2cSJim Jagielski         {"Appends the sal_Bool(sal_False) to the string buffer(with INT_MAX) ",
1464*b1cdbd2cSJim Jagielski                 new OUString(aUStr48),
1465*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), sal_False }
1466*b1cdbd2cSJim Jagielski #endif
1467*b1cdbd2cSJim Jagielski 	};
1468*b1cdbd2cSJim Jagielski 
1469*b1cdbd2cSJim Jagielski 
1470*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1471*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1472*b1cdbd2cSJim Jagielski 
1473*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1474*b1cdbd2cSJim Jagielski     {
1475*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->append(
1476*b1cdbd2cSJim Jagielski                     arrTestCase[i].input2 );
1477*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1478*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1479*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1480*b1cdbd2cSJim Jagielski 
1481*b1cdbd2cSJim Jagielski         c_rtl_tres_state
1482*b1cdbd2cSJim Jagielski         (
1483*b1cdbd2cSJim Jagielski             hRtlTestResult,
1484*b1cdbd2cSJim Jagielski             lastRes,
1485*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
1486*b1cdbd2cSJim Jagielski             createName( pMeth, "append( sal_Bool b)_004", i )
1487*b1cdbd2cSJim Jagielski 
1488*b1cdbd2cSJim Jagielski         );
1489*b1cdbd2cSJim Jagielski 
1490*b1cdbd2cSJim Jagielski         res &= lastRes;
1491*b1cdbd2cSJim Jagielski     }
1492*b1cdbd2cSJim Jagielski 
1493*b1cdbd2cSJim Jagielski     return ( res );
1494*b1cdbd2cSJim Jagielski }
1495*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_appends(hTestResult hRtlTestResult)1496*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appends(
1497*b1cdbd2cSJim Jagielski 	                                          hTestResult hRtlTestResult )
1498*b1cdbd2cSJim Jagielski {
1499*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "appends");
1500*b1cdbd2cSJim Jagielski     sal_Bool bTSState = test_rtl_OUStringBuffer_append_001( hRtlTestResult );
1501*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_append_002( hRtlTestResult);
1502*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_append_003( hRtlTestResult);
1503*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_append_004( hRtlTestResult);
1504*b1cdbd2cSJim Jagielski 
1505*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "appends");
1506*b1cdbd2cSJim Jagielski //    return( bTSState );
1507*b1cdbd2cSJim Jagielski }
1508*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1509*b1cdbd2cSJim Jagielski // testing the method appendAscii( const sal_Char * str )
1510*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1511*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_appendAscii_001(hTestResult hRtlTestResult)1512*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_001(
1513*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1514*b1cdbd2cSJim Jagielski {
1515*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1516*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1517*b1cdbd2cSJim Jagielski 
1518*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1519*b1cdbd2cSJim Jagielski                         OUString(),
1520*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1521*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1522*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1523*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1524*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1525*b1cdbd2cSJim Jagielski 
1526*b1cdbd2cSJim Jagielski     typedef struct TestCase
1527*b1cdbd2cSJim Jagielski     {
1528*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1529*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1530*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1531*b1cdbd2cSJim Jagielski         const sal_Char*         input2;
1532*b1cdbd2cSJim Jagielski 
1533*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
1534*b1cdbd2cSJim Jagielski     } TestCase;
1535*b1cdbd2cSJim Jagielski 
1536*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1537*b1cdbd2cSJim Jagielski 
1538*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[0]",
1539*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1540*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr8 },
1541*b1cdbd2cSJim Jagielski 	{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
1542*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1543*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr36 },
1544*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
1545*b1cdbd2cSJim Jagielski                 new OUString(aUStr37),
1546*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr23 },
1547*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
1548*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1549*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr25 },
1550*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
1551*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1552*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr7 },
1553*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
1554*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1555*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2 },
1556*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
1557*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1558*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr1 },
1559*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
1560*b1cdbd2cSJim Jagielski                 new OUString(),
1561*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr25 },
1562*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
1563*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1564*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr7 },
1565*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
1566*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1567*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2 },
1568*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
1569*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1570*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr1 },
1571*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
1572*b1cdbd2cSJim Jagielski                 new OUString(),
1573*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr25 },
1574*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
1575*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1576*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr7 },
1577*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
1578*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1579*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2 },
1580*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
1581*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1582*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr1 },
1583*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
1584*b1cdbd2cSJim Jagielski                 new OUString(),
1585*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr25 },
1586*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
1587*b1cdbd2cSJim Jagielski                 new OUString(aUStr29),
1588*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr38 },
1589*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
1590*b1cdbd2cSJim Jagielski                 new OUString(aUStr39),
1591*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr17 },
1592*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
1593*b1cdbd2cSJim Jagielski                 new OUString(aUStr40),
1594*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr31 },
1595*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
1596*b1cdbd2cSJim Jagielski                 new OUString(aUStr28),
1597*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr25 }
1598*b1cdbd2cSJim Jagielski         /*{"Appends the string(with special characters) to the string buffer arrOUS[4]",
1599*b1cdbd2cSJim Jagielski                 new OUString(aUStr43),
1600*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr44 }*/
1601*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1602*b1cdbd2cSJim Jagielski         ,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
1603*b1cdbd2cSJim Jagielski                 new OUString(),
1604*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), kTestStr25 }
1605*b1cdbd2cSJim Jagielski #endif
1606*b1cdbd2cSJim Jagielski 
1607*b1cdbd2cSJim Jagielski 	};
1608*b1cdbd2cSJim Jagielski 
1609*b1cdbd2cSJim Jagielski 
1610*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1611*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1612*b1cdbd2cSJim Jagielski 
1613*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1614*b1cdbd2cSJim Jagielski     {
1615*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->appendAscii( arrTestCase[i].input2 );
1616*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1617*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1618*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1619*b1cdbd2cSJim Jagielski 
1620*b1cdbd2cSJim Jagielski             c_rtl_tres_state
1621*b1cdbd2cSJim Jagielski             (
1622*b1cdbd2cSJim Jagielski                 hRtlTestResult,
1623*b1cdbd2cSJim Jagielski                 lastRes,
1624*b1cdbd2cSJim Jagielski                 arrTestCase[i].comments,
1625*b1cdbd2cSJim Jagielski                 createName( pMeth, "appendAscii_001", i )
1626*b1cdbd2cSJim Jagielski             );
1627*b1cdbd2cSJim Jagielski 
1628*b1cdbd2cSJim Jagielski         res &= lastRes;
1629*b1cdbd2cSJim Jagielski     }
1630*b1cdbd2cSJim Jagielski     return ( res );
1631*b1cdbd2cSJim Jagielski }
1632*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1633*b1cdbd2cSJim Jagielski // testing the method appendAscii( const sal_Char * str, sal_Int32 len)
1634*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
1635*b1cdbd2cSJim Jagielski 
test_rtl_OUStringBuffer_appendAscii_002(hTestResult hRtlTestResult)1636*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_002(
1637*b1cdbd2cSJim Jagielski                                               hTestResult hRtlTestResult)
1638*b1cdbd2cSJim Jagielski {
1639*b1cdbd2cSJim Jagielski     sal_Char methName[MAXBUFLENGTH];
1640*b1cdbd2cSJim Jagielski     sal_Char* pMeth = methName;
1641*b1cdbd2cSJim Jagielski 
1642*b1cdbd2cSJim Jagielski     OUString arrOUS[5]={OUString( aUStr7 ),
1643*b1cdbd2cSJim Jagielski                         OUString(),
1644*b1cdbd2cSJim Jagielski                         OUString( aUStr25 ),
1645*b1cdbd2cSJim Jagielski                         OUString( "\0",0,
1646*b1cdbd2cSJim Jagielski 	                kEncodingRTLTextUSASCII,
1647*b1cdbd2cSJim Jagielski 	                kConvertFlagsOStringToOUString),
1648*b1cdbd2cSJim Jagielski                         OUString( aUStr28 )};
1649*b1cdbd2cSJim Jagielski 
1650*b1cdbd2cSJim Jagielski     typedef struct TestCase
1651*b1cdbd2cSJim Jagielski     {
1652*b1cdbd2cSJim Jagielski 	sal_Char*		comments;
1653*b1cdbd2cSJim Jagielski 	OUString*               expVal;
1654*b1cdbd2cSJim Jagielski         OUStringBuffer*         input1;
1655*b1cdbd2cSJim Jagielski         const sal_Char*         input2;
1656*b1cdbd2cSJim Jagielski         sal_Int32               input3;
1657*b1cdbd2cSJim Jagielski 
1658*b1cdbd2cSJim Jagielski     	~TestCase()             { delete input1; delete expVal; }
1659*b1cdbd2cSJim Jagielski     } TestCase;
1660*b1cdbd2cSJim Jagielski 
1661*b1cdbd2cSJim Jagielski     TestCase arrTestCase[]={
1662*b1cdbd2cSJim Jagielski 
1663*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
1664*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1665*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr36, 12 },
1666*b1cdbd2cSJim Jagielski 	{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
1667*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1668*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr36, 28 },
1669*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
1670*b1cdbd2cSJim Jagielski                 new OUString(aUStr37),
1671*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr23, 16 },
1672*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
1673*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1674*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr2, 0 },
1675*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1676*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[0]",
1677*b1cdbd2cSJim Jagielski                 new OUString(aUStr41),
1678*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[0]), kTestStr2, -1 },
1679*b1cdbd2cSJim Jagielski     */
1680*b1cdbd2cSJim Jagielski 	{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
1681*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1682*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2, 4 },
1683*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[1]",
1684*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1685*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2, 32 },
1686*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
1687*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1688*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2, 16 },
1689*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
1690*b1cdbd2cSJim Jagielski                 new OUString(),
1691*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2, 0 },
1692*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1693*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[1]",
1694*b1cdbd2cSJim Jagielski                 new OUString(),
1695*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[1]), kTestStr2, -1 },
1696*b1cdbd2cSJim Jagielski     */
1697*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[2]",
1698*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1699*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2, 4 },
1700*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[2]",
1701*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1702*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2, 32 },
1703*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
1704*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1705*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2, 16 },
1706*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
1707*b1cdbd2cSJim Jagielski                 new OUString(),
1708*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2, 0 },
1709*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1710*b1cdbd2cSJim Jagielski        {"Appends the string(length less than 0) to the string buffer arrOUS[2]",
1711*b1cdbd2cSJim Jagielski                 new OUString(),
1712*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[2]), kTestStr2, -1 },
1713*b1cdbd2cSJim Jagielski     */
1714*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[3]",
1715*b1cdbd2cSJim Jagielski                 new OUString(aUStr7),
1716*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2, 4 },
1717*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[3]",
1718*b1cdbd2cSJim Jagielski                 new OUString(aUStr2),
1719*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2, 32 },
1720*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
1721*b1cdbd2cSJim Jagielski                 new OUString(aUStr1),
1722*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2, 16 },
1723*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
1724*b1cdbd2cSJim Jagielski                 new OUString(),
1725*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2, 0 },
1726*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1727*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[3]",
1728*b1cdbd2cSJim Jagielski                 new OUString(),
1729*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[3]), kTestStr2, -1 },
1730*b1cdbd2cSJim Jagielski     */
1731*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 16) to the string buffer arrOUS[4]",
1732*b1cdbd2cSJim Jagielski                 new OUString(aUStr29),
1733*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr38, 7 },
1734*b1cdbd2cSJim Jagielski         {"Appends the string(length more than 16) to the string buffer arrOUS[4]",
1735*b1cdbd2cSJim Jagielski                 new OUString(aUStr39),
1736*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr17, 22 },
1737*b1cdbd2cSJim Jagielski 	{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
1738*b1cdbd2cSJim Jagielski                 new OUString(aUStr40),
1739*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr31, 16 },
1740*b1cdbd2cSJim Jagielski         {"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
1741*b1cdbd2cSJim Jagielski                 new OUString(aUStr28),
1742*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr2, 0 },
1743*b1cdbd2cSJim Jagielski     /* LLA: input3 must null < 0
1744*b1cdbd2cSJim Jagielski         {"Appends the string(length less than 0) to the string buffer arrOUS[4]",
1745*b1cdbd2cSJim Jagielski                 new OUString(aUStr42),
1746*b1cdbd2cSJim Jagielski                 new OUStringBuffer(arrOUS[4]), kTestStr2, -1 }
1747*b1cdbd2cSJim Jagielski     */
1748*b1cdbd2cSJim Jagielski #ifdef WITH_CORE
1749*b1cdbd2cSJim Jagielski         ,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
1750*b1cdbd2cSJim Jagielski                 new OUString(),
1751*b1cdbd2cSJim Jagielski                 new OUStringBuffer(kSInt32Max), kTestStr25 }
1752*b1cdbd2cSJim Jagielski #endif
1753*b1cdbd2cSJim Jagielski 	};
1754*b1cdbd2cSJim Jagielski 
1755*b1cdbd2cSJim Jagielski 
1756*b1cdbd2cSJim Jagielski     sal_Bool res = sal_True;
1757*b1cdbd2cSJim Jagielski     sal_uInt32 i;
1758*b1cdbd2cSJim Jagielski 
1759*b1cdbd2cSJim Jagielski     for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
1760*b1cdbd2cSJim Jagielski     {
1761*b1cdbd2cSJim Jagielski         arrTestCase[i].input1->appendAscii(
1762*b1cdbd2cSJim Jagielski                     arrTestCase[i].input2, arrTestCase[i].input3);
1763*b1cdbd2cSJim Jagielski         sal_Bool lastRes =
1764*b1cdbd2cSJim Jagielski             ( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
1765*b1cdbd2cSJim Jagielski               arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength()  );
1766*b1cdbd2cSJim Jagielski 
1767*b1cdbd2cSJim Jagielski         c_rtl_tres_state
1768*b1cdbd2cSJim Jagielski         (
1769*b1cdbd2cSJim Jagielski             hRtlTestResult,
1770*b1cdbd2cSJim Jagielski             lastRes,
1771*b1cdbd2cSJim Jagielski             arrTestCase[i].comments,
1772*b1cdbd2cSJim Jagielski             createName( pMeth, "appendAscii_002", i )
1773*b1cdbd2cSJim Jagielski 
1774*b1cdbd2cSJim Jagielski         );
1775*b1cdbd2cSJim Jagielski 
1776*b1cdbd2cSJim Jagielski         res &= lastRes;
1777*b1cdbd2cSJim Jagielski     }
1778*b1cdbd2cSJim Jagielski     return ( res );
1779*b1cdbd2cSJim Jagielski }
test_rtl_OUStringBuffer_appendAsciis(hTestResult hRtlTestResult)1780*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appendAsciis(
1781*b1cdbd2cSJim Jagielski 	                                          hTestResult hRtlTestResult )
1782*b1cdbd2cSJim Jagielski {
1783*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start( hRtlTestResult, "appendAsciis");
1784*b1cdbd2cSJim Jagielski     sal_Bool bTSState = test_rtl_OUStringBuffer_appendAscii_001( hRtlTestResult );
1785*b1cdbd2cSJim Jagielski     bTSState &= test_rtl_OUStringBuffer_appendAscii_002( hRtlTestResult);
1786*b1cdbd2cSJim Jagielski 
1787*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end( hRtlTestResult, "appendAsciis");
1788*b1cdbd2cSJim Jagielski //    return( bTSState );
1789*b1cdbd2cSJim Jagielski }
1790*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
test_rtl_OUStringBuffer(hTestResult hRtlTestResult)1791*b1cdbd2cSJim Jagielski extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer( hTestResult hRtlTestResult )
1792*b1cdbd2cSJim Jagielski {
1793*b1cdbd2cSJim Jagielski 
1794*b1cdbd2cSJim Jagielski     c_rtl_tres_state_start(hRtlTestResult, "rtl_OUStringBuffer" );
1795*b1cdbd2cSJim Jagielski 
1796*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_ctors( hRtlTestResult );
1797*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_makeStringAndClear( hRtlTestResult );
1798*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_getLength( hRtlTestResult );
1799*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_getCapacity( hRtlTestResult );
1800*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_ensureCapacity( hRtlTestResult );
1801*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_setLength( hRtlTestResult );
1802*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_charAt( hRtlTestResult );
1803*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_csuc( hRtlTestResult );
1804*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_getStr( hRtlTestResult );
1805*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_setCharAt( hRtlTestResult );
1806*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_appends( hRtlTestResult );
1807*b1cdbd2cSJim Jagielski     test_rtl_OUStringBuffer_appendAsciis( hRtlTestResult );
1808*b1cdbd2cSJim Jagielski 
1809*b1cdbd2cSJim Jagielski     c_rtl_tres_state_end(hRtlTestResult, "rtl_OUStringBuffer");
1810*b1cdbd2cSJim Jagielski }
1811*b1cdbd2cSJim Jagielski 
1812*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)1813*b1cdbd2cSJim Jagielski void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
1814*b1cdbd2cSJim Jagielski {
1815*b1cdbd2cSJim Jagielski     if (_pFunc)
1816*b1cdbd2cSJim Jagielski     {
1817*b1cdbd2cSJim Jagielski         (_pFunc)(&test_rtl_OUStringBuffer, "");
1818*b1cdbd2cSJim Jagielski     }
1819*b1cdbd2cSJim Jagielski }
1820