1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove 26*b1cdbd2cSJim Jagielski #include "precompiled_sal.hxx" 27*b1cdbd2cSJim Jagielski #include <testshl/simpleheader.hxx> 28*b1cdbd2cSJim Jagielski #include "stringhelper.hxx" 29*b1cdbd2cSJim Jagielski #include <rtl/ustrbuf.hxx> 30*b1cdbd2cSJim Jagielski #include <rtl/uri.hxx> 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski namespace rtl_OUStringBuffer 33*b1cdbd2cSJim Jagielski { 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski class insertUtf32 : public CppUnit::TestFixture 37*b1cdbd2cSJim Jagielski { 38*b1cdbd2cSJim Jagielski public: 39*b1cdbd2cSJim Jagielski // initialise your test code values here. setUp()40*b1cdbd2cSJim Jagielski void setUp() 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski } 43*b1cdbd2cSJim Jagielski tearDown()44*b1cdbd2cSJim Jagielski void tearDown() 45*b1cdbd2cSJim Jagielski { 46*b1cdbd2cSJim Jagielski } 47*b1cdbd2cSJim Jagielski insertUtf32_001()48*b1cdbd2cSJim Jagielski void insertUtf32_001() 49*b1cdbd2cSJim Jagielski { 50*b1cdbd2cSJim Jagielski ::rtl::OUStringBuffer aUStrBuf(4); 51*b1cdbd2cSJim Jagielski aUStrBuf.insertUtf32(0,0x10ffff); 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski rtl::OUString suStr = aUStrBuf.makeStringAndClear(); 54*b1cdbd2cSJim Jagielski rtl::OUString suStr2 = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8); 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski rtl::OString sStr; 57*b1cdbd2cSJim Jagielski sStr <<= suStr2; 58*b1cdbd2cSJim Jagielski t_print("%s\n", sStr.getStr()); 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski CPPUNIT_ASSERT_MESSAGE("Strings must be '%F4%8F%BF%BF'", sStr.equals(rtl::OString("%F4%8F%BF%BF")) == sal_True); 61*b1cdbd2cSJim Jagielski } 62*b1cdbd2cSJim Jagielski insertUtf32_002()63*b1cdbd2cSJim Jagielski void insertUtf32_002() 64*b1cdbd2cSJim Jagielski { 65*b1cdbd2cSJim Jagielski ::rtl::OUStringBuffer aUStrBuf(4); 66*b1cdbd2cSJim Jagielski aUStrBuf.insertUtf32(0,0x41); 67*b1cdbd2cSJim Jagielski aUStrBuf.insertUtf32(1,0x42); 68*b1cdbd2cSJim Jagielski aUStrBuf.insertUtf32(2,0x43); 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski rtl::OUString suStr = aUStrBuf.makeStringAndClear(); 71*b1cdbd2cSJim Jagielski rtl::OUString suStr2 = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8); 72*b1cdbd2cSJim Jagielski 73*b1cdbd2cSJim Jagielski rtl::OString sStr; 74*b1cdbd2cSJim Jagielski sStr <<= suStr2; 75*b1cdbd2cSJim Jagielski t_print("%s\n", sStr.getStr()); 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski CPPUNIT_ASSERT_MESSAGE("Strings must be 'ABC'", sStr.equals(rtl::OString("ABC")) == sal_True); 78*b1cdbd2cSJim Jagielski } 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski CPPUNIT_TEST_SUITE(insertUtf32); 81*b1cdbd2cSJim Jagielski CPPUNIT_TEST(insertUtf32_001); 82*b1cdbd2cSJim Jagielski CPPUNIT_TEST(insertUtf32_002); 83*b1cdbd2cSJim Jagielski CPPUNIT_TEST_SUITE_END(); 84*b1cdbd2cSJim Jagielski }; // class getToken 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 87*b1cdbd2cSJim Jagielski CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUStringBuffer::insertUtf32, "rtl_OUStringBuffer"); 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski } // namespace rtl_OUStringBuffer 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski // this macro creates an empty function, which will called by the RegisterAllFunctions() 95*b1cdbd2cSJim Jagielski // to let the user the possibility to also register some functions by hand. 96*b1cdbd2cSJim Jagielski NOADDITIONAL; 97*b1cdbd2cSJim Jagielski 98