diff options
Diffstat (limited to 'sal/qa/rtl/oustring/rtl_OUString2.cxx')
-rw-r--r-- | sal/qa/rtl/oustring/rtl_OUString2.cxx | 1283 |
1 files changed, 0 insertions, 1283 deletions
diff --git a/sal/qa/rtl/oustring/rtl_OUString2.cxx b/sal/qa/rtl/oustring/rtl_OUString2.cxx deleted file mode 100644 index b81cd0f57..000000000 --- a/sal/qa/rtl/oustring/rtl_OUString2.cxx +++ /dev/null @@ -1,1283 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * 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" -// autogenerated file with codegen.pl - -#include <math.h> -#include <stdio.h> - -#include <algorithm> // STL - -#include <testshl/simpleheader.hxx> -#include "stringhelper.hxx" -#include "valueequal.hxx" - -inline void printOUString( ::rtl::OUString const & _suStr ) -{ - rtl::OString aString; - - t_print( "OUString: " ); - aString = ::rtl::OUStringToOString( _suStr, RTL_TEXTENCODING_ASCII_US ); - t_print( "'%s'\n", aString.getStr( ) ); -} - -namespace rtl_OUString -{ - - class ctors_rtl_uString : public CppUnit::TestFixture - { - - public: - /// test of OUString(rtl_uString*) - void ctors_001() - { - rtl::OUString *pStr = new rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("a String") ); - - rtl::OUString aStrToTest(pStr->pData); - delete pStr; - - // maybe here should we do something with current memory - char* pBuffer = (char*) malloc(2 * 8); - memset(pBuffer, 0, 2 * 8); - free(pBuffer); - - sal_Bool bResult = aStrToTest.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a String"))); - CPPUNIT_ASSERT_MESSAGE("String must not be empty", bResult == sal_True); - } - - // Change the following lines only, if you add, remove or rename - // member functions of the current class, - // because these macros are need by auto register mechanism. - - CPPUNIT_TEST_SUITE(ctors_rtl_uString); - CPPUNIT_TEST(ctors_001); - CPPUNIT_TEST_SUITE_END(); - }; - -// ----------------------------------------------------------------------------- -class valueOf : public CppUnit::TestFixture -{ - void valueOf_float_test_impl(float _nValue) - { - rtl::OUString suValue; - suValue = rtl::OUString::valueOf( _nValue ); - rtl::OString sValue; - sValue <<= suValue; - t_print(T_VERBOSE, "nFloat := %.9f sValue := %s\n", _nValue, sValue.getStr()); - - float nValueATOF = static_cast<float>(atof( sValue.getStr() )); - - bool bEqualResult = is_float_equal(_nValue, nValueATOF); - CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true); - } - - void valueOf_float_test(float _nValue) - { - valueOf_float_test_impl(_nValue); - - // test also the negative part. - float nNegativeValue = -_nValue; - valueOf_float_test_impl(nNegativeValue); - } - -public: - // insert your test code here. - void valueOf_float_test_001() - { - // this is demonstration code - // CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1); - float nValue = 3.0f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_002() - { - float nValue = 3.5f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_003() - { - float nValue = 3.0625f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_004() - { - float nValue = 3.502525f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_005() - { - float nValue = 3.141592f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_006() - { - float nValue = 3.5025255f; - valueOf_float_test(nValue); - } - - void valueOf_float_test_007() - { - float nValue = 3.0039062f; - valueOf_float_test(nValue); - } - -private: - - void valueOf_double_test_impl(double _nValue) - { - rtl::OUString suValue; - suValue = rtl::OUString::valueOf( _nValue ); - rtl::OString sValue; - sValue <<= suValue; - t_print(T_VERBOSE, "nDouble := %.20f sValue := %s\n", _nValue, sValue.getStr()); - - double nValueATOF = atof( sValue.getStr() ); - - bool bEqualResult = is_double_equal(_nValue, nValueATOF); - CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true); - } - - void valueOf_double_test(double _nValue) - { - valueOf_double_test_impl(_nValue); - - // test also the negative part. - double nNegativeValue = -_nValue; - valueOf_double_test_impl(nNegativeValue); - } -public: - - // valueOf double - void valueOf_double_test_001() - { - double nValue = 3.0; - valueOf_double_test(nValue); - } - void valueOf_double_test_002() - { - double nValue = 3.5; - valueOf_double_test(nValue); - } - void valueOf_double_test_003() - { - double nValue = 3.0625; - valueOf_double_test(nValue); - } - void valueOf_double_test_004() - { - double nValue = 3.1415926535; - valueOf_double_test(nValue); - } - void valueOf_double_test_005() - { - double nValue = 3.141592653589793; - valueOf_double_test(nValue); - } - void valueOf_double_test_006() - { - double nValue = 3.1415926535897932; - valueOf_double_test(nValue); - } - void valueOf_double_test_007() - { - double nValue = 3.14159265358979323; - valueOf_double_test(nValue); - } - void valueOf_double_test_008() - { - double nValue = 3.141592653589793238462643; - valueOf_double_test(nValue); - } - - - // Change the following lines only, if you add, remove or rename - // member functions of the current class, - // because these macros are need by auto register mechanism. - - CPPUNIT_TEST_SUITE(valueOf); - CPPUNIT_TEST(valueOf_float_test_001); - CPPUNIT_TEST(valueOf_float_test_002); - CPPUNIT_TEST(valueOf_float_test_003); - CPPUNIT_TEST(valueOf_float_test_004); - CPPUNIT_TEST(valueOf_float_test_005); - CPPUNIT_TEST(valueOf_float_test_006); - CPPUNIT_TEST(valueOf_float_test_007); - - CPPUNIT_TEST(valueOf_double_test_001); - CPPUNIT_TEST(valueOf_double_test_002); - CPPUNIT_TEST(valueOf_double_test_003); - CPPUNIT_TEST(valueOf_double_test_004); - CPPUNIT_TEST(valueOf_double_test_005); - CPPUNIT_TEST(valueOf_double_test_006); - CPPUNIT_TEST(valueOf_double_test_007); - CPPUNIT_TEST(valueOf_double_test_008); - CPPUNIT_TEST_SUITE_END(); -}; // class valueOf - -//------------------------------------------------------------------------ -// testing the method toDouble() -//------------------------------------------------------------------------ -template<class T> -sal_Int16 SAL_CALL checkPrecisionSize() -{ - // sal_Int16 nSize = sizeof(T); - volatile T nCalcValue = 1.0; - - - // (i + 1) is the current precision - // numerical series - // 1.1 - // 10.1 - // 100.1 - // ... - // 1000...0.1 - - sal_Int16 i = 0; - for (i=0;i<50;i++) - { - nCalcValue *= 10; - volatile T nValue = nCalcValue + static_cast<T>(0.1); - volatile T dSub = nValue - nCalcValue; - // ----- 0.11 ---- 0.1 ---- 0.09 ----- - if (0.11 > dSub && dSub < 0.09) - { - // due to the fact, that the value is break down we sub 1 from the precision value - // but to suppress this, we start at zero, precision is i+1 till here --i; - break; - } - } - - sal_Int16 j= 0; - nCalcValue = 1.0; - - // numerical series - // 1.1 - // 1.01 - // 1.001 - // ... - // 1.000...001 - - for (j=0;j<50;j++) - { - nCalcValue /= 10; - volatile T nValue = nCalcValue + static_cast<T>(1.0); - volatile T dSub = nValue - static_cast<T>(1.0); - // ---- 0.02 ----- 0.01 ---- 0 --- -0.99 ---- -0.98 ---- - // volatile T dSubAbsolut = fabs(dSub); - // ---- 0.02 ----- 0.01 ---- 0 (cut) - if ( dSub == 0) - break; - } - if (i != j) - { - // hmmm.... - // imho i +- 1 == j is a good value - int n = i - j; - if (n < 0) n = -n; - if (n <= 1) - { - return std::min(i,j); - } - else - { - t_print("warning: presision differs more than 1!\n"); - } - } - - return i; -} - -// ----------------------------------------------------------------------------- - - class testPrecision - { - public: - testPrecision() - { - sal_Int16 nPrecision; - nPrecision = checkPrecisionSize<float>(); - t_print("precision of float: %d sizeof()=%d \n", nPrecision, sizeof(float)); - - nPrecision = checkPrecisionSize<double>(); - t_print("precision of double: %d sizeof()=%d \n", nPrecision, sizeof(double)); - - nPrecision = checkPrecisionSize<long double>(); - t_print("precision of long double: %d sizeof()=%d \n", nPrecision, sizeof(long double)); - - } - - }; - - class toInt: public CppUnit::TestFixture { - public: - void test() { - CPPUNIT_ASSERT_EQUAL( - static_cast< sal_Int32 >(-0x76543210), - (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-76543210")). - toInt32(16))); - CPPUNIT_ASSERT_EQUAL( - static_cast< sal_Int32 >(0xFEDCBA98), - (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("+FEDCBA98")). - toInt32(16))); - CPPUNIT_ASSERT_EQUAL( - static_cast< sal_Int64 >(-SAL_CONST_INT64(0x76543210FEDCBA98)), - (rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM("-76543210FEDCBA98")). - toInt64(16))); - CPPUNIT_ASSERT_EQUAL( - static_cast< sal_Int64 >(SAL_CONST_INT64(0xFEDCBA9876543210)), - (rtl::OUString( - RTL_CONSTASCII_USTRINGPARAM("+FEDCBA9876543210")). - toInt64(16))); - } - - CPPUNIT_TEST_SUITE(toInt); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); - }; - -// ----------------------------------------------------------------------------- -// - toDouble (tests) -// ----------------------------------------------------------------------------- - class toDouble : public CppUnit::TestFixture - { - public: - void toDouble_test_impl(rtl::OString const& _sValue) - { - //t_print("the original str is %s\n", _sValue.getStr()); - double nValueATOF = atof( _sValue.getStr() ); - //t_print("original data is %e\n", nValueATOF); - rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() ); - double nValueToDouble = suValue.toDouble(); - //t_print("result data is %e\n", nValueToDouble); - - bool bEqualResult = is_double_equal(nValueToDouble, nValueATOF); - CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true); - } - - void toDouble_test(rtl::OString const& _sValue) - { - toDouble_test_impl(_sValue); - - // test also the negativ part. - rtl::OString sNegativValue("-"); - sNegativValue += _sValue; - toDouble_test_impl(sNegativValue); - } - - // insert your test code here. - void toDouble_selftest() - { - t_print("Start selftest:\n"); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.01) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.0001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.00001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000001) == false); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000001) == false); - // we check til 15 values after comma - CPPUNIT_ASSERT (is_double_equal(1.0, 1.00000000000001) == true); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.000000000000001) == true); - CPPUNIT_ASSERT (is_double_equal(1.0, 1.0000000000000001) == true); - t_print("Selftest done.\n"); - } - - void toDouble_test_3() - { - rtl::OString sValue("3"); - toDouble_test(sValue); - } - void toDouble_test_3_5() - { - rtl::OString sValue("3.5"); - toDouble_test(sValue); - } - void toDouble_test_3_0625() - { - rtl::OString sValue("3.0625"); - toDouble_test(sValue); - } - void toDouble_test_pi() - { - // value from http://www.angio.net/pi/digits/50.txt - rtl::OString sValue("3.141592653589793238462643383279502884197169399375"); - toDouble_test(sValue); - } - - void toDouble_test_1() - { - rtl::OString sValue("1"); - toDouble_test(sValue); - } - void toDouble_test_10() - { - rtl::OString sValue("10"); - toDouble_test(sValue); - } - void toDouble_test_100() - { - rtl::OString sValue("100"); - toDouble_test(sValue); - } - void toDouble_test_1000() - { - rtl::OString sValue("1000"); - toDouble_test(sValue); - } - void toDouble_test_10000() - { - rtl::OString sValue("10000"); - toDouble_test(sValue); - } - void toDouble_test_1e99() - { - rtl::OString sValue("1e99"); - toDouble_test(sValue); - } - void toDouble_test_1e_n99() - { - rtl::OString sValue("1e-99"); - toDouble_test(sValue); - } - void toDouble_test_1e308() - { - rtl::OString sValue("1e308"); - toDouble_test(sValue); - } - - // Change the following lines only, if you add, remove or rename - // member functions of the current class, - // because these macros are need by auto register mechanism. - - CPPUNIT_TEST_SUITE(toDouble); - CPPUNIT_TEST(toDouble_selftest); - - CPPUNIT_TEST(toDouble_test_3); - CPPUNIT_TEST(toDouble_test_3_5); - CPPUNIT_TEST(toDouble_test_3_0625); - CPPUNIT_TEST(toDouble_test_pi); - CPPUNIT_TEST(toDouble_test_1); - CPPUNIT_TEST(toDouble_test_10); - CPPUNIT_TEST(toDouble_test_100); - CPPUNIT_TEST(toDouble_test_1000); - CPPUNIT_TEST(toDouble_test_10000); - CPPUNIT_TEST(toDouble_test_1e99); - CPPUNIT_TEST(toDouble_test_1e_n99); - CPPUNIT_TEST(toDouble_test_1e308); - CPPUNIT_TEST_SUITE_END(); - }; // class toDouble - -// ----------------------------------------------------------------------------- -// - toFloat (tests) -// ----------------------------------------------------------------------------- - class toFloat : public CppUnit::TestFixture - { - public: - void toFloat_test_impl(rtl::OString const& _sValue) - { - //t_print("the original str is %s\n", _sValue.getStr()); - float nValueATOF = static_cast<float>(atof( _sValue.getStr() )); - //t_print("the original str is %.10f\n", nValueATOF); - rtl::OUString suValue = rtl::OUString::createFromAscii( _sValue.getStr() ); - float nValueToFloat = suValue.toFloat(); - //t_print("the result str is %.10f\n", nValueToFloat); - - bool bEqualResult = is_float_equal(nValueToFloat, nValueATOF); - CPPUNIT_ASSERT_MESSAGE("Values are not equal.", bEqualResult == true); - } - - void toFloat_test(rtl::OString const& _sValue) - { - toFloat_test_impl(_sValue); - - // test also the negativ part. - rtl::OString sNegativValue("-"); - sNegativValue += _sValue; - toFloat_test_impl(sNegativValue); - } - - // insert your test code here. - void toFloat_selftest() - { - t_print("Start selftest:\n"); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.01f) == false); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.001f) == false); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.0001f) == false); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.00001f) == false); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.000002f) == false); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.0000001f) == true); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.00000001f) == true); - CPPUNIT_ASSERT (is_float_equal(1.0f, 1.000000001f) == true); - - t_print("Selftest done.\n"); - } - - void toFloat_test_3() - { - rtl::OString sValue("3"); - toFloat_test(sValue); - } - void toFloat_test_3_5() - { - rtl::OString sValue("3.5"); - toFloat_test(sValue); - } - void toFloat_test_3_0625() - { - rtl::OString sValue("3.0625"); - toFloat_test(sValue); - } - void toFloat_test_3_0625_e() - { - rtl::OString sValue("3.0625e-4"); - toFloat_test(sValue); - } - void toFloat_test_pi() - { - // value from http://www.angio.net/pi/digits/50.txt - rtl::OString sValue("3.141592653589793238462643383279502884197169399375"); - toFloat_test(sValue); - } - - void toFloat_test_1() - { - rtl::OString sValue("1"); - toFloat_test(sValue); - } - void toFloat_test_10() - { - rtl::OString sValue("10"); - toFloat_test(sValue); - } - void toFloat_test_100() - { - rtl::OString sValue("100"); - toFloat_test(sValue); - } - void toFloat_test_1000() - { - rtl::OString sValue("1000"); - toFloat_test(sValue); - } - void toFloat_test_10000() - { - rtl::OString sValue("10000"); - toFloat_test(sValue); - } - void toFloat_test_mix() - { - rtl::OString sValue("456789321455.123456789012"); - toFloat_test(sValue); - } - void toFloat_test_1e99() - { - rtl::OString sValue("1e99"); - toFloat_test(sValue); - } - void toFloat_test_1e_n99() - { - rtl::OString sValue("1e-9"); - toFloat_test(sValue); - } - void toFloat_test_1e308() - { - rtl::OString sValue("1e308"); - toFloat_test(sValue); - } - - // Change the following lines only, if you add, remove or rename - // member functions of the current class, - // because these macros are need by auto register mechanism. - - CPPUNIT_TEST_SUITE(toFloat); - CPPUNIT_TEST(toFloat_selftest); - - CPPUNIT_TEST(toFloat_test_3); - CPPUNIT_TEST(toFloat_test_3_5); - CPPUNIT_TEST(toFloat_test_3_0625); - CPPUNIT_TEST(toFloat_test_3_0625_e); - CPPUNIT_TEST(toFloat_test_pi); - CPPUNIT_TEST(toFloat_test_1); - CPPUNIT_TEST(toFloat_test_10); - CPPUNIT_TEST(toFloat_test_100); - CPPUNIT_TEST(toFloat_test_1000); - CPPUNIT_TEST(toFloat_test_10000); - CPPUNIT_TEST(toFloat_test_mix); - CPPUNIT_TEST(toFloat_test_1e99); - CPPUNIT_TEST(toFloat_test_1e_n99); - CPPUNIT_TEST(toFloat_test_1e308); - CPPUNIT_TEST_SUITE_END(); - }; // class toFloat - -// ----------------------------------------------------------------------------- -// - lastIndexOf (tests) -// ----------------------------------------------------------------------------- -class lastIndexOf : public CppUnit::TestFixture -{ - -public: - void lastIndexOf_oustring(rtl::OUString const& _suStr, rtl::OUString const& _suSearchStr, sal_Int32 _nExpectedResultPos) - { - // Algorithm - // search the string _suSearchStr (rtl::OUString) in the string _suStr. - // check if the _nExpectedResultPos occurs. - - sal_Int32 nPos = _suStr.lastIndexOf(_suSearchStr); - CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos); - } - - void lastIndexOf_salunicode(rtl::OUString const& _suStr, sal_Unicode _cuSearchChar, sal_Int32 _nExpectedResultPos) - { - // Algorithm - // search the unicode char _suSearchChar (sal_Unicode) in the string _suStr. - // check if the _nExpectedResultPos occurs. - - sal_Int32 nPos = _suStr.lastIndexOf(_cuSearchChar); - CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos); - } - - void lastIndexOf_oustring_offset(rtl::OUString const& _suStr, rtl::OUString const& _suSearchStr, sal_Int32 _nExpectedResultPos, sal_Int32 _nStartOffset) - { - sal_Int32 nPos = _suStr.lastIndexOf(_suSearchStr, _nStartOffset); - CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos); - } - - void lastIndexOf_salunicode_offset(rtl::OUString const& _suStr, sal_Unicode _cuSearchChar, sal_Int32 _nExpectedResultPos, sal_Int32 _nStartOffset) - { - sal_Int32 nPos = _suStr.lastIndexOf(_cuSearchChar, _nStartOffset); - CPPUNIT_ASSERT_MESSAGE("expected position is wrong", nPos == _nExpectedResultPos); - } - - // ----------------------------------------------------------------------------- - - void lastIndexOf_test_oustring_offset_001() - { - // search for sun, start at the end, found (pos==0) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring_offset(aStr, aSearchStr, 0, aStr.getLength()); - } - - void lastIndexOf_test_oustring_offset_002() - { - // search for sun, start at pos = 3, found (pos==0) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring_offset(aStr, aSearchStr, 0, 3); - } - - void lastIndexOf_test_oustring_offset_003() - { - // search for sun, start at pos = 2, found (pos==-1) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring_offset(aStr, aSearchStr, -1, 2); - } - - void lastIndexOf_test_oustring_offset_004() - { - // search for sun, start at the end, found (pos==0) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring_offset(aStr, aSearchStr, -1, -1); - } - - void lastIndexOf_test_oustring_001() - { - // search for sun, found (pos==0) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, 0); - } - - void lastIndexOf_test_oustring_002() - { - // search for sun, found (pos==4) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, 4); - } - - void lastIndexOf_test_oustring_003() - { - // search for sun, found (pos==8) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, 8); - } - - void lastIndexOf_test_oustring_004() - { - // search for sun, found (pos==8) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, 8); - } - - void lastIndexOf_test_oustring_005() - { - // search for sun, found (pos==4) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun su")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, 4); - } - - void lastIndexOf_test_oustring_006() - { - // search for sun, found (pos==-1) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the su su")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("sun")); - lastIndexOf_oustring(aStr, aSearchStr, -1); - } - - void lastIndexOf_test_oustring_007() - { - // search for earth, not found (-1) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the su su")); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("earth")); - lastIndexOf_oustring(aStr, aSearchStr, -1); - } - - void lastIndexOf_test_oustring_008() - { - // search for earth, not found (-1) - rtl::OUString aStr = rtl::OUString(); - rtl::OUString aSearchStr(RTL_CONSTASCII_USTRINGPARAM("earth")); - lastIndexOf_oustring(aStr, aSearchStr, -1); - } - - void lastIndexOf_test_oustring_009() - { - // search for earth, not found (-1) - rtl::OUString aStr = rtl::OUString(); - rtl::OUString aSearchStr = rtl::OUString(); - lastIndexOf_oustring(aStr, aSearchStr, -1); - - } - - void lastIndexOf_test_salunicode_001() - { - // search for 's', found (19) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - sal_Unicode suChar = L's'; - lastIndexOf_salunicode(aStr, suChar, 19); - } - - void lastIndexOf_test_salunicode_002() - { - // search for 'x', not found (-1) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - sal_Unicode suChar = L'x'; - lastIndexOf_salunicode(aStr, suChar, -1); - } - - void lastIndexOf_test_salunicode_offset_001() - { - // search for 's', start from pos last char, found (19) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - sal_Unicode cuChar = L's'; - lastIndexOf_salunicode_offset(aStr, cuChar, 19, aStr.getLength()); - } - void lastIndexOf_test_salunicode_offset_002() - { - // search for 's', start pos is last occur from search behind, found (17) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - sal_Unicode cuChar = L's'; - lastIndexOf_salunicode_offset(aStr, cuChar, 17, 19); - } - void lastIndexOf_test_salunicode_offset_003() - { - // search for 't', start pos is 1, found (0) - rtl::OUString aStr(RTL_CONSTASCII_USTRINGPARAM("the sun sun java system")); - sal_Unicode cuChar = L't'; - lastIndexOf_salunicode_offset(aStr, cuChar, 0, 1); - } - - // Change the following lines only, if you add, remove or rename - // member functions of the current class, - // because these macros are need by auto register mechanism. - - CPPUNIT_TEST_SUITE(lastIndexOf); - CPPUNIT_TEST(lastIndexOf_test_oustring_001); - CPPUNIT_TEST(lastIndexOf_test_oustring_002); - CPPUNIT_TEST(lastIndexOf_test_oustring_003); - CPPUNIT_TEST(lastIndexOf_test_oustring_004); - CPPUNIT_TEST(lastIndexOf_test_oustring_005); - CPPUNIT_TEST(lastIndexOf_test_oustring_006); - CPPUNIT_TEST(lastIndexOf_test_oustring_007); - CPPUNIT_TEST(lastIndexOf_test_oustring_008); - CPPUNIT_TEST(lastIndexOf_test_oustring_009); - - CPPUNIT_TEST(lastIndexOf_test_oustring_offset_001); - CPPUNIT_TEST(lastIndexOf_test_oustring_offset_002); - CPPUNIT_TEST(lastIndexOf_test_oustring_offset_003); - CPPUNIT_TEST(lastIndexOf_test_oustring_offset_004); - - CPPUNIT_TEST(lastIndexOf_test_salunicode_001); - CPPUNIT_TEST(lastIndexOf_test_salunicode_002); - - CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_001); - CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_002); - CPPUNIT_TEST(lastIndexOf_test_salunicode_offset_003); - - CPPUNIT_TEST_SUITE_END(); -}; // class lastIndexOf - - -// ----------------------------------------------------------------------------- -// - getToken (tests) -// ----------------------------------------------------------------------------- -class getToken : public CppUnit::TestFixture -{ - -public: - void getToken_000() - { - rtl::OUString suTokenStr; - - sal_Int32 nIndex = 0; - do - { - rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex ); - } - while ( nIndex >= 0 ); - t_print("Index %d\n", nIndex); - // should not GPF - } - - void getToken_001() - { - rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;b")); - - sal_Int32 nIndex = 0; - - rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True); - CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1); - } - - void getToken_002() - { - rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;b.c")); - - sal_Int32 nIndex = 0; - - rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'c'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("c"))) == sal_True); - CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1); - } - - void getToken_003() - { - rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("a;;b")); - - sal_Int32 nIndex = 0; - - rtl::OUString suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'a'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("a"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be empty", suToken.getLength() == 0); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, ';', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be a 'b'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("b"))) == sal_True); - CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1); - } - - void getToken_004() - { - rtl::OUString suTokenStr(RTL_CONSTASCII_USTRINGPARAM("longer.then.ever.")); - - sal_Int32 nIndex = 0; - - rtl::OUString suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be 'longer'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("longer"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be 'then'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("then"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be 'ever'", suToken.equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ever"))) == sal_True); - - /* rtl::OUString */ suToken = suTokenStr.getToken( 0, '.', nIndex ); - CPPUNIT_ASSERT_MESSAGE("Token should be empty", suToken.getLength() == 0); - - CPPUNIT_ASSERT_MESSAGE("index should be negative", nIndex == -1); - } - - void getToken_005() { - rtl::OUString ab(RTL_CONSTASCII_USTRINGPARAM("ab")); - sal_Int32 n = 0; - CPPUNIT_ASSERT_MESSAGE( - "token should be 'ab'", ab.getToken(0, '-', n) == ab); - CPPUNIT_ASSERT_MESSAGE("n should be -1", n == -1); - CPPUNIT_ASSERT_MESSAGE( - "token should be empty", ab.getToken(0, '-', n).getLength() == 0); - } - - CPPUNIT_TEST_SUITE(getToken); - CPPUNIT_TEST(getToken_000); - CPPUNIT_TEST(getToken_001); - CPPUNIT_TEST(getToken_002); - CPPUNIT_TEST(getToken_003); - CPPUNIT_TEST(getToken_004); - CPPUNIT_TEST(getToken_005); - CPPUNIT_TEST_SUITE_END(); -}; // class getToken - -class convertToString: public CppUnit::TestFixture { -public: - void test(); - - CPPUNIT_TEST_SUITE(convertToString); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); -}; - -void convertToString::test() { - static sal_Unicode const utf16[] = { 0x0041, 0x00E4, 0x0061 }; - rtl::OString s; - CPPUNIT_ASSERT( - rtl::OUString(utf16, SAL_N_ELEMENTS(utf16)).convertToString( - &s, RTL_TEXTENCODING_UTF7, - (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | - RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR))); - CPPUNIT_ASSERT_EQUAL( - rtl::OString(RTL_CONSTASCII_STRINGPARAM("A+AOQ-a")), s); -} - -// ----------------------------------------------------------------------------- -// - string construction & interning (tests) -// ----------------------------------------------------------------------------- -class construction : public CppUnit::TestFixture -{ -public: - void construct() - { -#ifdef RTL_INLINE_STRINGS - ::rtl::OUString aFoo( RTL_CONSTASCII_USTRINGPARAM("foo") ); - CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[0] == 'f'); - CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[1] == 'o'); - CPPUNIT_ASSERT_MESSAGE("string contents", aFoo[2] == 'o'); - CPPUNIT_ASSERT_MESSAGE("string length", aFoo.getLength() == 3); - - ::rtl::OUString aBaa( RTL_CONSTASCII_USTRINGPARAM("this is a very long string with a lot of long things inside it and it goes on and on and on forever etc.") ); - CPPUNIT_ASSERT_MESSAGE("string length", aBaa.getLength() == 104); - // Dig at the internals ... FIXME: should we have the bit-flag defines public ? - CPPUNIT_ASSERT_MESSAGE("string static flags", (aBaa.pData->refCount & 1<<30) != 0); -#endif - } - - void intern() - { - // The empty string is 'static' a special case ... - rtl::OUString aEmpty = rtl::OUString().intern(); - rtl::OUString aEmpty2 = rtl::OUString::intern( RTL_CONSTASCII_USTRINGPARAM( "" ) ); - - ::rtl::OUString aFoo( RTL_CONSTASCII_USTRINGPARAM("foo") ); - ::rtl::OUString aFooIntern = aFoo.intern(); - CPPUNIT_ASSERT_MESSAGE("string contents", aFooIntern.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_MESSAGE("string length", aFooIntern.getLength() == 3); - // We have to dup due to no atomic 'intern' bit-set operation - CPPUNIT_ASSERT_MESSAGE("intern dups", aFoo.pData != aFooIntern.pData); - - // Test interning lots of things - int i; - static const int nSequence = 4096; - rtl::OUString *pStrs; - sal_uIntPtr *pValues; - - pStrs = new rtl::OUString[nSequence]; - pValues = new sal_uIntPtr[nSequence]; - for (i = 0; i < nSequence; i++) - { - pStrs[i] = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern(); - pValues[i] = reinterpret_cast<sal_uIntPtr>( pStrs[i].pData ); - } - for (i = 0; i < nSequence; i++) - { - rtl::OUString aNew = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern(); - CPPUNIT_ASSERT_MESSAGE("double intern failed", - aNew.pData == pStrs[i].pData); - } - - // Free strings to check for leaks - for (i = 0; i < nSequence; i++) - { - // Overwrite - hopefully this re-uses the memory - pStrs[i] = rtl::OUString(); - pStrs[i] = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ); - } - - for (i = 0; i < nSequence; i++) - { - rtl::OUString aIntern; - sal_uIntPtr nValue; - aIntern = rtl::OUString::valueOf( sqrt( static_cast<double>(i) ) ).intern(); - - nValue = reinterpret_cast<sal_uIntPtr>( aIntern.pData ); - // This may not be 100% reliable: memory may - // have been re-used, but it's worth checking. - CPPUNIT_ASSERT_MESSAGE("intern leaking", nValue != pValues[i]); - } - delete [] pValues; - delete [] pStrs; - } - - CPPUNIT_TEST_SUITE(construction); - CPPUNIT_TEST(construct); - CPPUNIT_TEST(intern); - CPPUNIT_TEST_SUITE_END(); -}; - -class indexOfAscii: public CppUnit::TestFixture { -public: - void test(); - - CPPUNIT_TEST_SUITE(indexOfAscii); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); -}; - -void indexOfAscii::test() { - CPPUNIT_ASSERT_EQUAL( - sal_Int32(-1), - rtl::OUString().indexOfAsciiL(RTL_CONSTASCII_STRINGPARAM(""))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(-1), - rtl::OUString().lastIndexOfAsciiL(RTL_CONSTASCII_STRINGPARAM(""))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(0), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo")).indexOfAsciiL( - RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(0), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foo")).lastIndexOfAsciiL( - RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(2), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("fofoobar")).indexOfAsciiL( - RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(3), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foofoofob")). - lastIndexOfAsciiL(RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_EQUAL( - sal_Int32(3), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foofoobar")).indexOfAsciiL( - RTL_CONSTASCII_STRINGPARAM("foo"), 1)); -} - -class endsWith: public CppUnit::TestFixture { -public: - void test(); - - CPPUNIT_TEST_SUITE(endsWith); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); -}; - -void endsWith::test() { - CPPUNIT_ASSERT_EQUAL( - true, - rtl::OUString().endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM(""))); - CPPUNIT_ASSERT_EQUAL( - false, - rtl::OUString().endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM("foo"))); - CPPUNIT_ASSERT_EQUAL( - true, - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bar")).endsWithAsciiL( - RTL_CONSTASCII_STRINGPARAM("bar"))); - CPPUNIT_ASSERT_EQUAL( - true, - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("foobar")).endsWithAsciiL( - RTL_CONSTASCII_STRINGPARAM("bar"))); - CPPUNIT_ASSERT_EQUAL( - false, - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FOOBAR")).endsWithAsciiL( - RTL_CONSTASCII_STRINGPARAM("bar"))); -} - -class createFromCodePoints: public CppUnit::TestFixture { -public: - void test(); - - CPPUNIT_TEST_SUITE(createFromCodePoints); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); -}; - -void createFromCodePoints::test() { - CPPUNIT_ASSERT_EQUAL( - sal_Int32(0), - rtl::OUString(static_cast< sal_uInt32 const * >(NULL), 0).getLength()); - static sal_uInt32 const cp[] = { 0, 0xD800, 0xFFFF, 0x10000, 0x10FFFF }; - rtl::OUString s(cp, sizeof cp / sizeof (sal_uInt32)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(7), s.getLength()); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0), s[0]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xD800), s[1]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xFFFF), s[2]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xD800), s[3]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDC00), s[4]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDBFF), s[5]); - CPPUNIT_ASSERT_EQUAL(sal_Unicode(0xDFFF), s[6]); -} - -class iterateCodePoints: public CppUnit::TestFixture { -public: - void testNotWellFormed(); - - CPPUNIT_TEST_SUITE(iterateCodePoints); - CPPUNIT_TEST(testNotWellFormed); - CPPUNIT_TEST_SUITE_END(); -}; - -void iterateCodePoints::testNotWellFormed() { - static sal_Unicode const utf16[] = - { 0xD800, 0xDC00, 0x0041, 0xDBFF, 0xDFFF, 0xDDEF, 0xD9AB }; - rtl::OUString s(utf16, sizeof utf16 / sizeof (sal_Unicode)); - sal_Int32 i = 0; - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(7), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i, -1)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i, -1)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i, -1)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i, -1)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i); - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i, -1)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i); - i = 1; - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDC00), s.iterateCodePoints(&i, 2)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i); - i = 4; - CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i, -3)); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i); -} - -class convertFromString: public CppUnit::TestFixture { -public: - void test(); - - CPPUNIT_TEST_SUITE(createFromCodePoints); - CPPUNIT_TEST(test); - CPPUNIT_TEST_SUITE_END(); -}; - -void convertFromString::test() { - rtl::OUString t; - CPPUNIT_ASSERT( - !rtl_convertStringToUString( - &t.pData, RTL_CONSTASCII_STRINGPARAM("\x80"), RTL_TEXTENCODING_UTF8, - (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))); - CPPUNIT_ASSERT( - !rtl_convertStringToUString( - &t.pData, RTL_CONSTASCII_STRINGPARAM("\xC0"), RTL_TEXTENCODING_UTF8, - (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))); - CPPUNIT_ASSERT( - !rtl_convertStringToUString( - &t.pData, RTL_CONSTASCII_STRINGPARAM("\xFF"), RTL_TEXTENCODING_UTF8, - (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))); - CPPUNIT_ASSERT( - rtl_convertStringToUString( - &t.pData, RTL_CONSTASCII_STRINGPARAM("abc"), RTL_TEXTENCODING_UTF8, - (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR | - RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR))); - CPPUNIT_ASSERT(t.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("abc"))); -} - -// ----------------------------------------------------------------------------- -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::valueOf, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toInt, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toDouble, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toFloat, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::lastIndexOf, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::getToken, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( - rtl_OUString::convertToString, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::construction, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( - rtl_OUString::indexOfAscii, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::endsWith, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( - rtl_OUString::createFromCodePoints, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( - rtl_OUString::iterateCodePoints, "rtl_OUString"); -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( - rtl_OUString::convertFromString, "rtl_OUString"); - -} // namespace rtl_OUString - - -// ----------------------------------------------------------------------------- - -// this macro creates an empty function, which will called by the RegisterAllFunctions() -// to let the user the possibility to also register some functions by hand. -NOADDITIONAL; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |