office-gobmx/sal/qa/rtl_strings/rtl_OUStringBuffer.cxx
Rüdiger Timm 68e32300b6 INTEGRATION: CWS changefileheader (1.10.64); FILE MERGED
2008/03/31 13:23:59 rt 1.10.64.1: #i87441# Change license header to LPGL v3.
2008-04-10 10:56:09 +00:00

1826 lines
70 KiB
C++

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: rtl_OUStringBuffer.cxx,v $
* $Revision: 1.11 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sal.hxx"
#ifndef _SAL_TYPES_H_
#include <sal/types.h>
#endif
// #ifndef _RTL_TRES_H_
// #include <rtl/tres.h>
// #endif
#include <testshl/tresstatewrapper.hxx>
#ifndef _RTL_STRING_HXX_
#include <rtl/string.hxx>
#endif
#ifndef _RTL_USTRING_H_
#include <rtl/ustring.h>
#endif
#ifndef _RTL_USTRING_HXX_
#include <rtl/ustring.hxx>
#endif
#ifndef _RTL_USTRBUF_H_
#include <rtl/ustrbuf.h>
#endif
#ifndef _RTL_USTRBUF_HXX
#include <rtl/ustrbuf.hxx>
#endif
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#ifndef _OSL_THREAD_H_
#include <osl/thread.h>
#endif
#ifndef _RTL_STRING_CONST_H_
#include <rtl_String_Const.h>
#endif
#ifndef _RTL_STRING_UTILS_HXX_
#include <rtl_String_Utils.hxx>
#endif
#include "stdio.h"
using namespace rtl;
//------------------------------------------------------------------------
// test classes
//------------------------------------------------------------------------
const int MAXBUFLENGTH = 255;
//------------------------------------------------------------------------
// helper functions
//------------------------------------------------------------------------
static void unused()
{
(void)kBinaryNumsStr;
(void)kOctolNumsStr;
(void)kDecimalNumsStr;
(void)kHexDecimalNumsStr;
(void)kBase36NumsStr;
(void)inputChar;
(void)input1StrDefault;
(void)input1StrNormal;
(void)input1StrLastDefault;
(void)input1StrLastNormal;
unused();
}
//------------------------------------------------------------------------
// testing constructors
//------------------------------------------------------------------------
static sal_Bool test_rtl_OUStringBuffer_ctor_001( hTestResult hRtlTestResult )
{
::rtl::OUStringBuffer aUStrBuf;
bool b1 =
aUStrBuf.getLength() == 0 &&
! *(aUStrBuf.getStr()) && aUStrBuf.getCapacity() == 16;
::rtl::OUStringBuffer aUStrBuf2(0);
bool b2 =
aUStrBuf2.getLength() == 0 &&
! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: !!! */ 0;
return
(
c_rtl_tres_state
(
hRtlTestResult,
b1 && b2,
"New OUStringBuffer containing no characters",
"ctor_001"
)
);
}
//------------------------------------------------------------------------
static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_002(
hTestResult hRtlTestResult )
{
::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
return
(
c_rtl_tres_state
(
hRtlTestResult,
aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() && res ,
"New OUStringBuffer from another OUStringBuffer",
"ctor_002"
)
);
}
//------------------------------------------------------------------------
/* static */
sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_003(
hTestResult hRtlTestResult )
{
::rtl::OUStringBuffer aUStrBuf1(kTestStr2Len);
#ifdef WITH_CORE
::rtl::OUStringBuffer aUStrBuf2(kSInt32Max); //will core dump
#else
::rtl::OUStringBuffer aUStrBuf2(0);
#endif
::rtl::OUStringBuffer aUStrBuf3(kNonSInt32Max);
bool b1 =
aUStrBuf1.getLength() == 0 &&
! *(aUStrBuf1.getStr()) && aUStrBuf1.getCapacity() == kTestStr2Len ;
bool b2 =
#ifdef WITH_CORE
aUStrBuf2.getLength() == 0 &&
! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == kSInt32Max ;
#else
aUStrBuf2.getLength() == 0 &&
! *(aUStrBuf2.getStr()) && aUStrBuf2.getCapacity() == /* LLA: ??? 16 */ 0;
#endif
bool b3 =
aUStrBuf3.getLength() == 0 &&
! *(aUStrBuf3.getStr()) && aUStrBuf3.getCapacity() == kNonSInt32Max;
return
(
c_rtl_tres_state
(
hRtlTestResult,
b1 && b2 && b3,
"New OUStringBuffer containing no characters and contain assigned capacity",
"ctor_003( will core dump,because the kSInt32Max )"
)
);
}
//------------------------------------------------------------------------
static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_004(
hTestResult hRtlTestResult)
{
::rtl::OUString aUStrtmp( aUStr1 );
::rtl::OUStringBuffer aUStrBuf( aUStrtmp );
sal_Int32 leg = aUStrBuf.getLength();
return
(
c_rtl_tres_state
(
hRtlTestResult,
aUStrBuf.getStr() == aUStrtmp &&
leg == aUStrtmp.pData->length &&
aUStrBuf.getCapacity() == leg+16 ,
"New OUStringBuffer from OUstring",
"ctor_004"
)
);
}
static sal_Bool SAL_CALL test_rtl_OUStringBuffer_ctor_005(
hTestResult hRtlTestResult)
{
::rtl::OUStringBuffer aUStrBuftmp( aUStr1 );
::rtl::OUString aUStrtmp = aUStrBuftmp.makeStringAndClear();
::rtl::OUStringBuffer aUStrBuf( aUStrBuftmp );
sal_Bool res = cmpustr(aUStrBuftmp.getStr(),aUStrBuf.getStr());
sal_Int32 leg = aUStrBuf.getLength();
return
(
c_rtl_tres_state
(
hRtlTestResult,
aUStrBuf.getLength()==aUStrBuftmp.getLength() &&
aUStrBuf.getCapacity() == aUStrBuftmp.getCapacity() &&
res && leg == 0,
"New OUStringBuffer from another OUStringBuffer after makeClearFromString",
"ctor_005"
)
);
}
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ctors(
hTestResult hRtlTestResult )
{
c_rtl_tres_state_start( hRtlTestResult, "ctors");
sal_Bool DCState = test_ini_uString();
(void)DCState;
sal_Bool bTSState = test_rtl_OUStringBuffer_ctor_001( hRtlTestResult );
bTSState &= test_rtl_OUStringBuffer_ctor_002( hRtlTestResult);
bTSState &= test_rtl_OUStringBuffer_ctor_003( hRtlTestResult);
bTSState &= test_rtl_OUStringBuffer_ctor_004( hRtlTestResult);
bTSState &= test_rtl_OUStringBuffer_ctor_005( hRtlTestResult);
c_rtl_tres_state_end( hRtlTestResult, "ctors");
// return( bTSState );
}
//------------------------------------------------------------------------
// testing the method makeStringAndClear()
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_makeStringAndClear(
hTestResult hRtlTestResult )
{
c_rtl_tres_state_start( hRtlTestResult, "makeStringAndClear");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
~TestCase() { delete input1;}
} TestCase;
OUString arrOUS[6]={
OUString( aUStr1 ),
OUString( aUStr14 ),
OUString( aUStr25 ),
OUString( aUStr27 ),
OUString( aUStr29 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString)
};
TestCase arrTestCase[]={
{"two empty strings(def. constructor)", new OUString(),
new OUStringBuffer()},
{"two empty strings(with a argu)", new OUString(),
new OUStringBuffer(26)},
{"normal string", new OUString(arrOUS[0]),
new OUStringBuffer(arrOUS[0])},
{"string with space ", new OUString(arrOUS[1]),
new OUStringBuffer(arrOUS[1])},
{"empty string", new OUString(arrOUS[2]),
new OUStringBuffer(arrOUS[2])},
{"string with a character", new OUString(arrOUS[3]),
new OUStringBuffer(arrOUS[3])},
{"string with special characters", new OUString(arrOUS[4]),
new OUStringBuffer(arrOUS[4])},
{"string only with (\0)", new OUString(arrOUS[5]),
new OUStringBuffer(arrOUS[5])}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
sal_Bool lastRes =
( arrTestCase[i].input1->makeStringAndClear() ==
*( arrTestCase[i].expVal ));
lastRes = lastRes && ( arrTestCase[i].input1->getCapacity() == 0 );
lastRes = lastRes && ( *(arrTestCase[i].input1->getStr()) == '\0' );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "makeStringAndClear", i )
);
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "makeStringAndClear");
// return (res);
}
//------------------------------------------------------------------------
// testing the method getLength
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getLength(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "getLength");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[6]={OUString( aUStr1 ),
OUString( "1",1,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString(),
OUString( "",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr2 )};
typedef struct TestCase
{
sal_Char* comments;
sal_Int32 expVal;
OUStringBuffer* input;
~TestCase() { delete input;}
} TestCase;
TestCase arrTestCase[]={
{"length of ascii string", kTestStr1Len,
new OUStringBuffer(arrOUS[0]) },
{"length of ascci string of size 1", 1,
new OUStringBuffer(arrOUS[1])},
{"length of empty string", 0,
new OUStringBuffer(arrOUS[2])},
{"length of empty string (empty ascii string arg)",0,
new OUStringBuffer(arrOUS[3])},
{"length of empty string (string arg = '\\0')", 0,
new OUStringBuffer(arrOUS[4])},
{"length(>16) of ascii string", kTestStr2Len,
new OUStringBuffer(arrOUS[5]) },
{"length of empty string (default constructor)", 0,
new OUStringBuffer()},
{"length of empty string (with capacity)", 0,
new OUStringBuffer(26)}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
sal_Int32 length = arrTestCase[i].input->getLength();
sal_Bool lastRes = (length == arrTestCase[i].expVal);
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "getLength", i )
);
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "getLength");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method getCapacity()
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getCapacity(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "getCapacity");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[6]={OUString( aUStr1 ),
OUString( "1",1,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString(),
OUString( "",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr2 )};
typedef struct TestCase
{
sal_Char* comments;
sal_Int32 expVal;
OUStringBuffer* input;
~TestCase() { delete input;}
} TestCase;
TestCase arrTestCase[]={
{"capacity of ascii string", kTestStr1Len+16,
new OUStringBuffer(arrOUS[0]) },
{"capacity of ascci string of size 1", 1+16,
new OUStringBuffer(arrOUS[1]) },
{"capacity of empty string", 0+16,
new OUStringBuffer(arrOUS[2]) },
{"capacity of empty string (empty ascii string arg)",0+16,
new OUStringBuffer(arrOUS[3]) },
{"capacity of empty string (string arg = '\\0')", 0+16,
new OUStringBuffer(arrOUS[4]) },
{"capacity(>16) of ascii string", kTestStr2Len+16,
new OUStringBuffer(arrOUS[5]) },
{"capacity of empty string (default constructor)", 16,
new OUStringBuffer() },
#ifdef WITH_CORE
{"capacity of empty string (with capacity 2147483647)(code will core dump)", kSInt32Max,
new OUStringBuffer(kSInt32Max) },// will core dump
#endif
{"capacity of empty string (with capacity -2147483648)", kNonSInt32Max,
new OUStringBuffer(kNonSInt32Max) },
{"capacity of empty string (with capacity 16)", 16,
new OUStringBuffer(16) },
{"capacity of empty string (with capacity 6)", 6,
new OUStringBuffer(6) },
{"capacity of empty string (with capacity 0)", 0,
new OUStringBuffer(0) },
{"capacity of empty string (with capacity -2)", -2,
new OUStringBuffer(-2) }
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
sal_Int32 length = arrTestCase[i].input->getCapacity();
sal_Bool lastRes = (length == arrTestCase[i].expVal);
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "getCapacity", i )
);
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "getCapacity");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method ensureCapacity(sal_Int32 minimumCapacity)
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_ensureCapacity(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "ensureCapacity");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
typedef struct TestCase
{
sal_Char* comments;
sal_Int32 expVal;
OUStringBuffer* input1;
sal_Int32 input2;
~TestCase() { delete input1;}
} TestCase;
TestCase arrTestCase[]={
{"capacity equal to 16, minimum is 5 ", 16,
new OUStringBuffer(), 5 },
{"capacity equal to 16, minimum is -5", 16,
new OUStringBuffer(), -5},
{"capacity equal to 16, minimum is 0", 16,
new OUStringBuffer(), 0},
{"capacity equal to 16, minimum is 20", 20, //the testcase is based on comments
new OUStringBuffer(), 20},
{"capacity equal to 16, minimum is 50", 50,
new OUStringBuffer(), 50},
{"capacity equal to 6, minimum is 20", 20,
new OUStringBuffer(6), 20 },
{"capacity equal to 6, minimum is 2", 6,
new OUStringBuffer(6), 2},
{"capacity equal to 6, minimum is -6", 6,
new OUStringBuffer(6), -6},
{"capacity equal to 6, minimum is -6", 10, //the testcase is based on comments
new OUStringBuffer(6), 10},
{"capacity equal to 0, minimum is 6", 6,
new OUStringBuffer(0), 6},
{"capacity equal to 0, minimum is 1", 2, //the testcase is based on comments
new OUStringBuffer(0), 1},
/*
{"capacity equal to 0, minimum is -1", 0,
new OUStringBuffer(0), -1},
*/
#ifdef WITH_CORE
{"capacity equal to 2147483647, minimum is 65535", kSInt32Max,//will core dump
new OUStringBuffer(kSInt32Max), 65535},
{"capacity equal to 2147483647, minimum is 2147483647", kSInt32Max,//will core dump
new OUStringBuffer(kSInt32Max), kSInt32Max},
{"capacity equal to 2147483647, minimum is -1", kSInt32Max,//will core dump
new OUStringBuffer(kSInt32Max), -1},
{"capacity equal to 2147483647, minimum is 0", kSInt32Max,//will core dump
new OUStringBuffer(kSInt32Max), 0},
{"capacity equal to 2147483647, minimum is -2147483648", kSInt32Max,//will core dump
new OUStringBuffer(kSInt32Max), kNonSInt32Max},
#endif
{"capacity equal to -2147483648, minimum is 65535", 65535,
new OUStringBuffer(kNonSInt32Max), 65535},
#ifdef WITH_CORE
{"capacity equal to -2147483648, minimum is 2147483647", 2147483647,//will core dump
new OUStringBuffer(kNonSInt32Max), 2147483647},
#endif
{"capacity equal to -2147483648, minimum is -1", 2,
new OUStringBuffer(kNonSInt32Max), -1},
{"capacity equal to -2147483648, minimum is 0", 2,
new OUStringBuffer(kNonSInt32Max), 0},
{"capacity equal to -2147483648, minimum is -2147483648", kNonSInt32Max,
new OUStringBuffer(kNonSInt32Max), kNonSInt32Max}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->ensureCapacity(arrTestCase[i].input2);
sal_Int32 length = arrTestCase[i].input1->getCapacity();
sal_Bool lastRes = (length == arrTestCase[i].expVal);
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "ensureCapacity", i )
);
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "ensureCapacity");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method setLength(sal_Int32 newLength)
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setLength(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "setLength");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[6]={OUString( aUStr1 ),
OUString( aUStr27),
OUString(),
OUString( "",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr2 )};
typedef struct TestCase
{
sal_Char* comments;
sal_Int32 expVal1;
OUString* expVal2;
sal_Int32 expVal3;
OUStringBuffer* input1;
sal_Int32 input2;
~TestCase() { delete input1; delete expVal2;}
} TestCase;
TestCase arrTestCase[]={
{"newLength more than the capacity of OUStringBuffer(aUStr1)",
50, new OUString(aUStr1), 50,
new OUStringBuffer(arrOUS[0]), 50 },
{"newLength more than the length of OUStringBuffer(aUStr1)",
kTestStr13Len, new OUString(aUStr1), 32,
new OUStringBuffer(arrOUS[0]), kTestStr13Len },
{"newLength equal to the length of OUStringBuffer(aUStr1)",
kTestStr1Len, new OUString(aUStr1), 32,
new OUStringBuffer(arrOUS[0]), kTestStr1Len },
{"newLength less than the length of OUStringBuffer(aUStr1)",
kTestStr7Len, new OUString(aUStr7), 32,
new OUStringBuffer(arrOUS[0]), kTestStr7Len},
{"newLength equal to 0",
0, new OUString(), 32,
new OUStringBuffer(arrOUS[0]), 0},
{"newLength more than the capacity of OUStringBuffer(1)",
25, new OUString(arrOUS[1]), 25,
new OUStringBuffer(arrOUS[1]), 25},
{"newLength more than the length of OUStringBuffer(1)",
5, new OUString(arrOUS[1]), 17,
new OUStringBuffer(arrOUS[1]), 5},
{"newLength equal to the length of OUStringBuffer(1)",
kTestStr27Len, new OUString(arrOUS[1]), 17,
new OUStringBuffer(arrOUS[1]), kTestStr27Len},
{"newLength less than the length of OUStringBuffer(1)",
0, new OUString(), 17,
new OUStringBuffer(arrOUS[1]), 0},
{"newLength more than the capacity of OUStringBuffer()",
20, new OUString(), 20,
new OUStringBuffer(arrOUS[2]), 20},
{"newLength more than the length of OUStringBuffer()",
3, new OUString(), 16,
new OUStringBuffer(arrOUS[2]), 3},
{"newLength less than the length of OUStringBuffer()",
0, new OUString(), 16,
new OUStringBuffer(arrOUS[2]), 0},
{"newLength more than the capacity of OUStringBuffer("")",
20, new OUString(), 20,
new OUStringBuffer(arrOUS[3]), 20},
{"newLength more than the length of OUStringBuffer("")",
5, new OUString(), 16,
new OUStringBuffer(arrOUS[3]), 5},
{"newLength less than the length of OUStringBuffer("")",
0, new OUString(), 16,
new OUStringBuffer(arrOUS[3]), 0},
{"newLength more than the length of OUStringBuffer(\0)",
20, new OUString(), 20,
new OUStringBuffer(arrOUS[4]), 20},
{"newLength more than the length of OUStringBuffer(\0)",
5, new OUString(), 16,
new OUStringBuffer(arrOUS[4]), 5},
{"newLength less than the length of OUStringBuffer(\0)",
0, new OUString(), 16,
new OUStringBuffer(arrOUS[4]), 0},
{"newLength more than the capacity of OUStringBuffer(aUStr2)",
50, new OUString(aUStr2), 66,
new OUStringBuffer(arrOUS[5]), 50,},
{"newLength more than the length of OUStringBuffer(aUStr2)",
40, new OUString(aUStr2), 48,
new OUStringBuffer(arrOUS[5]), 40,},
{"newLength equal to the length of OUStringBuffer(aUStr2)",
kTestStr2Len, new OUString(aUStr2), 48,
new OUStringBuffer(arrOUS[5]), kTestStr2Len,},
{"newLength less than the length of OUStringBuffer(aUStr2)",
kTestStr7Len, new OUString(aUStr7), 48,
new OUStringBuffer(arrOUS[5]), kTestStr7Len},
{"newLength equal to 0",
0, new OUString(), 48,
new OUStringBuffer(arrOUS[5]), 0}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->setLength(arrTestCase[i].input2);
sal_Bool lastRes =
( arrTestCase[i].input1->getStr() == *(arrTestCase[i].expVal2) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal1 &&
arrTestCase[i].input1->getCapacity() == arrTestCase[i].expVal3 );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "setLength", i )
);
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "setLength");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method charAt( sal_Int32 index )
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_charAt(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "charAt");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[4]={OUString( aUStr1 ), // "Sun Microsystems";
OUString( aUStr27), // "s";
OUString( aUStr28), // "\50\3\5\7\11\13\15\17sun";
OUString( )};
typedef struct TestCase
{
sal_Char* comments;
sal_Unicode expVal;
OUStringBuffer* input1;
sal_Int32 input2;
~TestCase() { delete input1;}
} TestCase;
TestCase arrTestCase[]={
{"return the first character of OUStringBuffer(aUStr1)",
83, new OUStringBuffer(arrOUS[0]), 0 },
{"return the middle character of OUStringBuffer(aUStr1)",
32, new OUStringBuffer(arrOUS[0]), 3 },
{"return the last character of OUStringBuffer(aUStr1)",
115, new OUStringBuffer(arrOUS[0]), 15 },
{"return the only character of OUStringBuffer(aUStr27)",
115, new OUStringBuffer(arrOUS[1]), 0},
{"return the first of OUStringBuffer(aUStr28) with special character",
40, new OUStringBuffer(arrOUS[2]), 0},
/*
{"return the mid of OUStringBuffer(aUStr28) with special character",
11, new OUStringBuffer(arrOUS[2]), 5},
*/
/*
{"invalid character of OUStringBuffer()",
0, new OUStringBuffer(arrOUS[3]), 0},
*/
/*
{"invalid character of OUStringBuffer()",
0, new OUStringBuffer(arrOUS[3]), -2}
*/
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
sal_Bool lastRes =
( arrTestCase[i].input1->charAt(arrTestCase[i].input2) ==
arrTestCase[i].expVal );
// LLA: last case removed, due to the fact of complexity of the test code :-(
// LLA: if(i<=7)
// LLA: {
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "charAt", i )
);
// LLA: }
// LLA: else
// LLA: {
// LLA: c_rtl_tres_state
// LLA: (
// LLA: hRtlTestResult,
// LLA: sal_True,
// LLA: arrTestCase[i].comments,
// LLA: createName( pMeth, "charAt", i )
// LLA:
// LLA: );
// LLA: }
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "charAt");
// return ( res );
}
//------------------------------------------------------------------------
// testing the operator const sal_Unicode * (csuc for short)
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_csuc(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "csuc");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
const sal_Unicode tmpUC=0x0;
rtl_uString* tmpUstring = NULL;
const sal_Char *tmpStr=kTestStr1;
sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
//sal_Int32 cmpLen = 0;
OUString tempString(aUStr1);
rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
OSL_ASSERT(tmpUstring != NULL);
typedef struct TestCase
{
sal_Char* comments;
const sal_Unicode* expVal;
sal_Int32 cmpLen;
OUStringBuffer* input1;
~TestCase() { delete input1; }
} TestCase;
TestCase arrTestCase[] =
{
{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
new OUStringBuffer(tempString)},
{"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
const sal_Unicode* pstr = *arrTestCase[i].input1;
res &= c_rtl_tres_state
(
hRtlTestResult,
cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
arrTestCase[i].comments,
createName( pMeth, "const sal_Unicode*", i )
);
}
c_rtl_tres_state_end( hRtlTestResult, "csuc");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method const sal_Unicode * getStr()
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_getStr(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "getStr");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
const sal_Unicode tmpUC=0x0;
rtl_uString* tmpUstring = NULL;
const sal_Char *tmpStr=kTestStr1;
sal_Int32 tmpLen=(sal_Int32) kTestStr1Len;
//sal_Int32 cmpLen = 0;
OUString tempString(aUStr1);
rtl_string2UString( &tmpUstring, tmpStr, tmpLen,
osl_getThreadTextEncoding(), OSTRING_TO_OUSTRING_CVTFLAGS );
OSL_ASSERT(tmpUstring != NULL);
typedef struct TestCase
{
sal_Char* comments;
const sal_Unicode* expVal;
sal_Int32 cmpLen;
OUStringBuffer* input1;
~TestCase() { delete input1;}
} TestCase;
TestCase arrTestCase[] =
{
{"test normal ustring",(*tmpUstring).buffer,kTestStr1Len,
new OUStringBuffer(tempString)},
{"test empty ustring",&tmpUC, 1, new OUStringBuffer()}
};
sal_Bool res = sal_True;
sal_uInt32 i;
for(i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
const sal_Unicode* pstr = arrTestCase[i].input1->getStr();
res &= c_rtl_tres_state
(
hRtlTestResult,
cmpustr( pstr, arrTestCase[i].expVal, arrTestCase[i].cmpLen ),
arrTestCase[i].comments,
createName( pMeth, "getStr", i )
);
}
c_rtl_tres_state_end( hRtlTestResult, "getStr");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method setCharAt(sal_Int32 index, sal_Unicode ch)
//------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_setCharAt(
hTestResult hRtlTestResult)
{
c_rtl_tres_state_start( hRtlTestResult, "setCharAt");
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[4]={OUString( aUStr1 ),
OUString( aUStr27),
OUString( aUStr28),
OUString( )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
sal_Int32 input2;
sal_Unicode input3;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"set the first character of OUStringBuffer(aUStr1) with s",
new OUString(aUStr31),
new OUStringBuffer(arrOUS[0]), 0, 115 },
{"set the middle character of OUStringBuffer(aUStr1) with m",
new OUString(aUStr3),
new OUStringBuffer(arrOUS[0]), 4, 109 },
{"set the last character of OUStringBuffer(aUStr1) with ' '",
new OUString(aUStr32),
new OUStringBuffer(arrOUS[0]), 15, 32 },
{"set the only character of OUStringBuffer(aUStr27) with ' '",
new OUString(aUStr33),
new OUStringBuffer(arrOUS[1]), 0, 32},
{"set the only of OUStringBuffer(aUStr28) with special character",
new OUString(aUStr34),
new OUStringBuffer(arrOUS[2]), 1, 5},
/*
{"set the only of OUStringBuffer(aUStr28) with special character",
new OUString(aUStr35),
new OUStringBuffer(arrOUS[2]), 1, -5}
*/
#ifdef WITH_CORE
,{"invalid character of OUStringBuffer()",
0,
new OUStringBuffer(arrOUS[3]), 0, 5},
{"invalid character of OUStringBuffer()",
0,
new OUStringBuffer(arrOUS[3]), -2, 5},
{"invalid character of OUStringBuffer()",
0,
new OUStringBuffer(arrOUS[3]), 3, 5}
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
sal_Bool lastRes =
( (arrTestCase[i].input1->setCharAt(arrTestCase[i].input2,
arrTestCase[i].input3)).getStr() == *(arrTestCase[i].expVal) );
if(i<=4)
{
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "setCharAt", i )
);
}
else
{
c_rtl_tres_state
(
hRtlTestResult,
sal_True,
arrTestCase[i].comments,
createName( pMeth, "setCharAt", i )
);
}
res &= lastRes;
}
c_rtl_tres_state_end( hRtlTestResult, "setCharAt");
// return ( res );
}
//------------------------------------------------------------------------
// testing the method append(const OUString &str)
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_001(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
OUString* input2;
~TestCase() { delete input1; delete input2; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[0]), new OUString(aUStr8) },
{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[0]), new OUString(aUStr36) },
{"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
new OUString(aUStr37),
new OUStringBuffer(arrOUS[0]), new OUString(aUStr23) },
{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[0]), new OUString()},
{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[1]), new OUString(aUStr7)},
{"Appends the string(length more than 16) to the string buffer arrOUS[1]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[1]), new OUString(aUStr2)},
{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[1]), new OUString(aUStr1) },
{"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), new OUString()},
{"Appends the string(length less than 16) to the string buffer arrOUS[2]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[2]), new OUString(aUStr7)},
{"Appends the string(length more than 16) to the string buffer arrOUS[2]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[2]), new OUString(aUStr2)},
{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[2]), new OUString(aUStr1) },
{"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), new OUString()},
{"Appends the string(length less than 16) to the string buffer arrOUS[3]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[3]), new OUString(aUStr7)},
{"Appends the string(length more than 16) to the string buffer arrOUS[3]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[3]), new OUString(aUStr2)},
{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[3]), new OUString(aUStr1) },
{"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), new OUString()},
{"Appends the string(length less than 16) to the string buffer arrOUS[4]",
new OUString(aUStr29),
new OUStringBuffer(arrOUS[4]), new OUString(aUStr38)},
{"Appends the string(length more than 16) to the string buffer arrOUS[4]",
new OUString(aUStr39),
new OUStringBuffer(arrOUS[4]), new OUString(aUStr17)},
{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
new OUString(aUStr40),
new OUStringBuffer(arrOUS[4]), new OUString(aUStr31) },
{"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
new OUString(aUStr28),
new OUStringBuffer(arrOUS[4]), new OUString()}
#ifdef WITH_CORE
,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
new OUString(),
new OUStringBuffer(kSInt32Max), new OUString()}
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->append( *(arrTestCase[i].input2) );
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "append(const OUString &str)_001", i )
);
res &= lastRes;
}
return ( res );
}
//------------------------------------------------------------------------
// testing the method append( const sal_Unicode * str )
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_002(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
sal_Unicode* input2;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[0]), aUStr8 },
{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[0]), aUStr36 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
new OUString(aUStr37),
new OUStringBuffer(arrOUS[0]), aUStr23 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[0]), aUStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[1]), aUStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[1]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[1]), aUStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[1]), aUStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), aUStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[2]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[2]), aUStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[2]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[2]), aUStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[2]), aUStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), aUStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[3]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[3]), aUStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[3]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[3]), aUStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[3]), aUStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), aUStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[4]",
new OUString(aUStr29),
new OUStringBuffer(arrOUS[4]), aUStr38 },
{"Appends the string(length more than 16) to the string buffer arrOUS[4]",
new OUString(aUStr39),
new OUStringBuffer(arrOUS[4]), aUStr17 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
new OUString(aUStr40),
new OUStringBuffer(arrOUS[4]), aUStr31 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
new OUString(aUStr28),
new OUStringBuffer(arrOUS[4]), aUStr25 }
#ifdef WITH_CORE
,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
new OUString(),
new OUStringBuffer(kSInt32Max), aUStr25 }
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->append( arrTestCase[i].input2 );
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "append( const sal_Unicode * str )_002", i )
);
res &= lastRes;
}
return ( res );
}
//------------------------------------------------------------------------
// testing the method append( const sal_Unicode * str, sal_Int32 len)
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_003(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
sal_Unicode* input2;
sal_Int32 input3;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[0]), aUStr36, 12 },
{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[0]), aUStr36, 28 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
new OUString(aUStr37),
new OUStringBuffer(arrOUS[0]), aUStr23, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[0]), aUStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[0]",
new OUString(aUStr41),
new OUStringBuffer(arrOUS[0]), aUStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[1]), aUStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[1]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[1]), aUStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[1]), aUStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), aUStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), aUStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[2]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[2]), aUStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[2]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[2]), aUStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[2]), aUStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), aUStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), aUStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[3]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[3]), aUStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[3]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[3]), aUStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[3]), aUStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), aUStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), aUStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[4]",
new OUString(aUStr29),
new OUStringBuffer(arrOUS[4]), aUStr38, 7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[4]",
new OUString(aUStr39),
new OUStringBuffer(arrOUS[4]), aUStr17, 22 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
new OUString(aUStr40),
new OUStringBuffer(arrOUS[4]), aUStr31, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
new OUString(aUStr28),
new OUStringBuffer(arrOUS[4]), aUStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[4]",
new OUString(aUStr42),
new OUStringBuffer(arrOUS[4]), aUStr2, -1 }
*/
#ifdef WITH_CORE
,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
new OUString(),
new OUStringBuffer(kSInt32Max), aUStr25 }
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->append(
arrTestCase[i].input2, arrTestCase[i].input3);
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "append( const sal_Unicode * str, sal_Int32 len)_003", i )
);
res &= lastRes;
}
return ( res );
}
//------------------------------------------------------------------------
// testing the method append(sal_Bool b)
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_append_004(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
sal_Bool input2;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[0]",
new OUString(aUStr45),
new OUStringBuffer(arrOUS[0]), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[0]",
new OUString(aUStr46),
new OUStringBuffer(arrOUS[0]), sal_False },
{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[1]",
new OUString(aUStr47),
new OUStringBuffer(arrOUS[1]), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[1]",
new OUString(aUStr48),
new OUStringBuffer(arrOUS[1]), sal_False },
{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[2]",
new OUString(aUStr47),
new OUStringBuffer(arrOUS[2]), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[2]",
new OUString(aUStr48),
new OUStringBuffer(arrOUS[2]), sal_False },
{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[3]",
new OUString(aUStr47),
new OUStringBuffer(arrOUS[3]), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[3]",
new OUString(aUStr48),
new OUStringBuffer(arrOUS[3]), sal_False },
{"Appends the sal_Bool(sal_True) to the string buffer arrOUS[4]",
new OUString(aUStr49),
new OUStringBuffer(arrOUS[4]), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer arrOUS[4]",
new OUString(aUStr50),
new OUStringBuffer(arrOUS[4]), sal_False }
#ifdef WITH_CORE
,{"Appends the sal_Bool(sal_True) to the string buffer(with INT_MAX) ",
new OUString(aUStr47),
new OUStringBuffer(kSInt32Max), sal_True },
{"Appends the sal_Bool(sal_False) to the string buffer(with INT_MAX) ",
new OUString(aUStr48),
new OUStringBuffer(kSInt32Max), sal_False }
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->append(
arrTestCase[i].input2 );
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "append( sal_Bool b)_004", i )
);
res &= lastRes;
}
return ( res );
}
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appends(
hTestResult hRtlTestResult )
{
c_rtl_tres_state_start( hRtlTestResult, "appends");
sal_Bool bTSState = test_rtl_OUStringBuffer_append_001( hRtlTestResult );
bTSState &= test_rtl_OUStringBuffer_append_002( hRtlTestResult);
bTSState &= test_rtl_OUStringBuffer_append_003( hRtlTestResult);
bTSState &= test_rtl_OUStringBuffer_append_004( hRtlTestResult);
c_rtl_tres_state_end( hRtlTestResult, "appends");
// return( bTSState );
}
//------------------------------------------------------------------------
// testing the method appendAscii( const sal_Char * str )
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_001(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
const sal_Char* input2;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[0]), kTestStr8 },
{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[0]), kTestStr36 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
new OUString(aUStr37),
new OUStringBuffer(arrOUS[0]), kTestStr23 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[0]), kTestStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[1]), kTestStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[1]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[1]), kTestStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[1]), kTestStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), kTestStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[2]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[2]), kTestStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[2]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[2]), kTestStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[2]), kTestStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), kTestStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[3]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[3]), kTestStr7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[3]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[3]), kTestStr2 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[3]), kTestStr1 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), kTestStr25 },
{"Appends the string(length less than 16) to the string buffer arrOUS[4]",
new OUString(aUStr29),
new OUStringBuffer(arrOUS[4]), kTestStr38 },
{"Appends the string(length more than 16) to the string buffer arrOUS[4]",
new OUString(aUStr39),
new OUStringBuffer(arrOUS[4]), kTestStr17 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
new OUString(aUStr40),
new OUStringBuffer(arrOUS[4]), kTestStr31 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
new OUString(aUStr28),
new OUStringBuffer(arrOUS[4]), kTestStr25 }
/*{"Appends the string(with special characters) to the string buffer arrOUS[4]",
new OUString(aUStr43),
new OUStringBuffer(arrOUS[4]), kTestStr44 }*/
#ifdef WITH_CORE
,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
new OUString(),
new OUStringBuffer(kSInt32Max), kTestStr25 }
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->appendAscii( arrTestCase[i].input2 );
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "appendAscii_001", i )
);
res &= lastRes;
}
return ( res );
}
//------------------------------------------------------------------------
// testing the method appendAscii( const sal_Char * str, sal_Int32 len)
//------------------------------------------------------------------------
sal_Bool SAL_CALL test_rtl_OUStringBuffer_appendAscii_002(
hTestResult hRtlTestResult)
{
sal_Char methName[MAXBUFLENGTH];
sal_Char* pMeth = methName;
OUString arrOUS[5]={OUString( aUStr7 ),
OUString(),
OUString( aUStr25 ),
OUString( "\0",0,
kEncodingRTLTextUSASCII,
kConvertFlagsOStringToOUString),
OUString( aUStr28 )};
typedef struct TestCase
{
sal_Char* comments;
OUString* expVal;
OUStringBuffer* input1;
const sal_Char* input2;
sal_Int32 input3;
~TestCase() { delete input1; delete expVal; }
} TestCase;
TestCase arrTestCase[]={
{"Appends the string(length less than 16) to the string buffer arrOUS[0]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[0]), kTestStr36, 12 },
{"Appends the string(length more than 16) to the string buffer arrOUS[0]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[0]), kTestStr36, 28 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[0]",
new OUString(aUStr37),
new OUStringBuffer(arrOUS[0]), kTestStr23, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[0]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[0]), kTestStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[0]",
new OUString(aUStr41),
new OUStringBuffer(arrOUS[0]), kTestStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[1]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[1]), kTestStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[1]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[1]), kTestStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[1]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[1]), kTestStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), kTestStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[1]",
new OUString(),
new OUStringBuffer(arrOUS[1]), kTestStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[2]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[2]), kTestStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[2]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[2]), kTestStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[2]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[2]), kTestStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), kTestStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[2]",
new OUString(),
new OUStringBuffer(arrOUS[2]), kTestStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[3]",
new OUString(aUStr7),
new OUStringBuffer(arrOUS[3]), kTestStr2, 4 },
{"Appends the string(length more than 16) to the string buffer arrOUS[3]",
new OUString(aUStr2),
new OUStringBuffer(arrOUS[3]), kTestStr2, 32 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[3]",
new OUString(aUStr1),
new OUStringBuffer(arrOUS[3]), kTestStr2, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), kTestStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[3]",
new OUString(),
new OUStringBuffer(arrOUS[3]), kTestStr2, -1 },
*/
{"Appends the string(length less than 16) to the string buffer arrOUS[4]",
new OUString(aUStr29),
new OUStringBuffer(arrOUS[4]), kTestStr38, 7 },
{"Appends the string(length more than 16) to the string buffer arrOUS[4]",
new OUString(aUStr39),
new OUStringBuffer(arrOUS[4]), kTestStr17, 22 },
{"Appends the string(length equal to 16) to the string buffer arrOUS[4]",
new OUString(aUStr40),
new OUStringBuffer(arrOUS[4]), kTestStr31, 16 },
{"Appends the string(length equal to 0) to the string buffer arrOUS[4]",
new OUString(aUStr28),
new OUStringBuffer(arrOUS[4]), kTestStr2, 0 },
/* LLA: input3 must null < 0
{"Appends the string(length less than 0) to the string buffer arrOUS[4]",
new OUString(aUStr42),
new OUStringBuffer(arrOUS[4]), kTestStr2, -1 }
*/
#ifdef WITH_CORE
,{"Appends the string(length equal to 0) to the string buffer(with INT_MAX) ",
new OUString(),
new OUStringBuffer(kSInt32Max), kTestStr25 }
#endif
};
sal_Bool res = sal_True;
sal_uInt32 i;
for (i = 0; i < (sizeof (arrTestCase))/(sizeof (TestCase)); i++)
{
arrTestCase[i].input1->appendAscii(
arrTestCase[i].input2, arrTestCase[i].input3);
sal_Bool lastRes =
( arrTestCase[i].input1->getStr()== *(arrTestCase[i].expVal) &&
arrTestCase[i].input1->getLength() == arrTestCase[i].expVal->getLength() );
c_rtl_tres_state
(
hRtlTestResult,
lastRes,
arrTestCase[i].comments,
createName( pMeth, "appendAscii_002", i )
);
res &= lastRes;
}
return ( res );
}
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer_appendAsciis(
hTestResult hRtlTestResult )
{
c_rtl_tres_state_start( hRtlTestResult, "appendAsciis");
sal_Bool bTSState = test_rtl_OUStringBuffer_appendAscii_001( hRtlTestResult );
bTSState &= test_rtl_OUStringBuffer_appendAscii_002( hRtlTestResult);
c_rtl_tres_state_end( hRtlTestResult, "appendAsciis");
// return( bTSState );
}
// -----------------------------------------------------------------------------
extern "C" void /* sal_Bool */ SAL_CALL test_rtl_OUStringBuffer( hTestResult hRtlTestResult )
{
c_rtl_tres_state_start(hRtlTestResult, "rtl_OUStringBuffer" );
test_rtl_OUStringBuffer_ctors( hRtlTestResult );
test_rtl_OUStringBuffer_makeStringAndClear( hRtlTestResult );
test_rtl_OUStringBuffer_getLength( hRtlTestResult );
test_rtl_OUStringBuffer_getCapacity( hRtlTestResult );
test_rtl_OUStringBuffer_ensureCapacity( hRtlTestResult );
test_rtl_OUStringBuffer_setLength( hRtlTestResult );
test_rtl_OUStringBuffer_charAt( hRtlTestResult );
test_rtl_OUStringBuffer_csuc( hRtlTestResult );
test_rtl_OUStringBuffer_getStr( hRtlTestResult );
test_rtl_OUStringBuffer_setCharAt( hRtlTestResult );
test_rtl_OUStringBuffer_appends( hRtlTestResult );
test_rtl_OUStringBuffer_appendAsciis( hRtlTestResult );
c_rtl_tres_state_end(hRtlTestResult, "rtl_OUStringBuffer");
}
// -----------------------------------------------------------------------------
void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
{
if (_pFunc)
{
(_pFunc)(&test_rtl_OUStringBuffer, "");
}
}