diff options
author | Thomas Arnhold <thomas@arnhold.org> | 2011-07-09 18:40:58 +0200 |
---|---|---|
committer | Thomas Arnhold <thomas@arnhold.org> | 2011-07-09 18:40:58 +0200 |
commit | 0ec08e4a93313db32bc2c93dc446a877ce49ed9a (patch) | |
tree | 5151de0de2cb28ebadfb2c5b63c503f3de126972 /extensions/test | |
parent | 2a2637c81b87699e7a07f6f974699d7842436ff5 (diff) |
Remove unused test/sax
Diffstat (limited to 'extensions/test')
-rw-r--r-- | extensions/test/sax/exports.dxp | 2 | ||||
-rw-r--r-- | extensions/test/sax/factory.hxx | 33 | ||||
-rw-r--r-- | extensions/test/sax/makefile.mk | 64 | ||||
-rw-r--r-- | extensions/test/sax/testsax.cxx | 902 | ||||
-rw-r--r-- | extensions/test/sax/testwriter.cxx | 758 |
5 files changed, 0 insertions, 1759 deletions
diff --git a/extensions/test/sax/exports.dxp b/extensions/test/sax/exports.dxp deleted file mode 100644 index e4bc69d23003..000000000000 --- a/extensions/test/sax/exports.dxp +++ /dev/null @@ -1,2 +0,0 @@ -exService_writeRegEntry -exService_getFactory diff --git a/extensions/test/sax/factory.hxx b/extensions/test/sax/factory.hxx deleted file mode 100644 index 267e7b6649ee..000000000000 --- a/extensions/test/sax/factory.hxx +++ /dev/null @@ -1,33 +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. - * - ************************************************************************/ -XInterfaceRef OSaxWriterTest_CreateInstance( const XMultiServiceFactoryRef & rSMgr ) THROWS((Exception)); -UString OSaxWriterTest_getServiceName( ) THROWS( () ); -UString OSaxWriterTest_getImplementationName( ) THROWS( () ); -Sequence<UString> OSaxWriterTest_getSupportedServiceNames( ) THROWS( () ); - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/test/sax/makefile.mk b/extensions/test/sax/makefile.mk deleted file mode 100644 index 62e2706dd1e7..000000000000 --- a/extensions/test/sax/makefile.mk +++ /dev/null @@ -1,64 +0,0 @@ -#************************************************************************* -# -# 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. -# -#************************************************************************* -PRJ=..$/.. - -PRJNAME=extensions -TARGET=testsax -USE_DEFFILE=TRUE -ENABLE_EXCEPTIONS=TRUE -# --- Settings ----------------------------------------------------- -.INCLUDE : $(PRJ)$/util$/makefile.pmk - -# --- Files -------------------------------------------------------- - - - -OBJFILES = $(SLO)$/testsax.obj $(SLO)$/testwriter.obj - -LIB1TARGET= $(SLB)$/$(TARGET).lib -LIB1OBJFILES= $(OBJFILES) - - -SHL1TARGET= $(TARGET)$(DLLPOSTFIX) - -SHL1STDLIBS= \ - $(SALLIB) \ - $(TOOLSLIB) - -SHL1LIBS= $(LIB1TARGET) -SHL1IMPLIB= i$(TARGET) -SHL1DEPN= makefile.mk $(SHL1LIBS) -SHL1DEF= $(MISC)$/$(SHL1TARGET).def - -DEF1NAME= $(SHL1TARGET) -DEF1EXPORTFILE= exports.dxp - - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk -.INCLUDE : $(PRJ)$/util$/target.pmk diff --git a/extensions/test/sax/testsax.cxx b/extensions/test/sax/testsax.cxx deleted file mode 100644 index 67ea67a31038..000000000000 --- a/extensions/test/sax/testsax.cxx +++ /dev/null @@ -1,902 +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_extensions.hxx" - -#include <stdio.h> -#include <string.h> -#include <smart/com/sun/star/test/XSimpleTest.hxx> - -#include <rtl/wstring.hxx> -#include <osl/time.h> -#include <usr/weak.hxx> -#include <tools/string.hxx> -#include <osl/conditn.hxx> - -#include <smart/com/sun/star/io/XOutputStream.hxx> -#include <smart/com/sun/star/xml/sax/SAXParseException.hxx> -#include <smart/com/sun/star/xml/sax/XParser.hxx> -#include <smart/com/sun/star/xml/sax/XExtendedDocumentHandler.hxx> - -#include <smart/com/sun/star/lang/XMultiServiceFactory.hxx> // for the multiservice-factories -#include <usr/factoryhlp.hxx> - -#include <usr/reflserv.hxx> // for EXTERN_SERVICE_CALLTYPE - -#include "factory.hxx" - -using namespace usr; - -#define BUILD_ERROR(expr, Message)\ - {\ - m_seqErrors.realloc( m_seqErrors.getLen() + 1 ); \ - m_seqExceptions.realloc( m_seqExceptions.getLen() + 1 ); \ - String str; \ - str += __FILE__;\ - str += " "; \ - str += "(" ; \ - str += __LINE__ ;\ - str += ")\n";\ - str += "[ " ; \ - str += #expr; \ - str += " ] : " ; \ - str += Message; \ - m_seqErrors.getArray()[ m_seqErrors.getLen()-1] = StringToUString( str , CHARSET_SYSTEM ); \ - }\ - ((void)0) - - -#define WARNING_ASSERT(expr, Message) \ - if( ! (expr) ) { \ - m_seqWarnings.realloc( m_seqErrors.getLen() +1 ); \ - String str;\ - str += __FILE__;\ - str += " "; \ - str += "(" ; \ - str += __LINE__ ;\ - str += ")\n";\ - str += "[ " ; \ - str += #expr; \ - str += " ] : " ; \ - str += Message; \ - m_seqWarnings.getArray()[ m_seqWarnings.getLen()-1] = StringToUString( str , CHARSET_SYSTEM ); \ - return; \ - }\ - ((void)0) - -#define ERROR_ASSERT(expr, Message) \ - if( ! (expr) ) { \ - BUILD_ERROR(expr, Message );\ - return; \ - }\ - ((void)0) - -#define ERROR_EXCEPTION_ASSERT(expr, Message, Exception) \ - if( !(expr)) { \ - BUILD_ERROR(expr,Message);\ - m_seqExceptions.getArray()[ m_seqExceptions.getLen()-1] = UsrAny( Exception );\ - return; \ - } \ - ((void)0) - -/**** -* test szenarios : -****/ - - -class OSaxParserTest : - public XSimpleTest, - public OWeakObject -{ -public: - OSaxParserTest( const XMultiServiceFactoryRef & rFactory ) : m_rFactory( rFactory ) - { - - } - -public: // refcounting - BOOL queryInterface( Uik aUik, XInterfaceRef & rOut ); - void acquire() { OWeakObject::acquire(); } - void release() { OWeakObject::release(); } - void* getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); } - -public: - virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject) - THROWS( ( IllegalArgumentException, - UsrSystemException) ); - - virtual INT32 test( const UString& TestName, - const XInterfaceRef& TestObject, - INT32 hTestHandle) THROWS( ( IllegalArgumentException, - UsrSystemException) ); - - virtual BOOL testPassed(void) THROWS( ( UsrSystemException) ); - virtual Sequence< UString > getErrors(void) THROWS( (UsrSystemException) ); - virtual Sequence< UsrAny > getErrorExceptions(void) THROWS( (UsrSystemException) ); - virtual Sequence< UString > getWarnings(void) THROWS( (UsrSystemException) ); - -private: - void testSimple( const XParserRef &r ); - void testNamespaces( const XParserRef &r ); - void testFile( const XParserRef &r ); - void testEncoding( const XParserRef &rParser ); - void testPerformance( const XParserRef &rParser ); - -private: - Sequence<UsrAny> m_seqExceptions; - Sequence<UString> m_seqErrors; - Sequence<UString> m_seqWarnings; - XMultiServiceFactoryRef m_rFactory; -}; - - - -/** -* for external binding -**/ -XInterfaceRef OSaxParserTest_CreateInstance( const XMultiServiceFactoryRef & rSMgr ) THROWS((Exception)) -{ - OSaxParserTest *p = new OSaxParserTest( rSMgr ); - XInterfaceRef xService = *p; - return xService; -} - - -UString OSaxParserTest_getServiceName( ) THROWS( () ) -{ - return L"test.com.sun.star.xml.sax.Parser"; -} - -UString OSaxParserTest_getImplementationName( ) THROWS( () ) -{ - return L"test.extensions.xml.sax.Parser"; -} - -Sequence<UString> OSaxParserTest_getSupportedServiceNames( ) THROWS( () ) -{ - Sequence<UString> aRet(1); - - aRet.getArray()[0] = OSaxParserTest_getImplementationName( ); - - return aRet; -} - - -BOOL OSaxParserTest::queryInterface( Uik uik , XInterfaceRef &rOut ) -{ - if( XSimpleTest::getSmartUik() == uik ) { - rOut = (XSimpleTest *) this; - } - else { - return OWeakObject::queryInterface( uik , rOut ); - } - return TRUE; -} - - -void OSaxParserTest::testInvariant( const UString& TestName, const XInterfaceRef& TestObject ) - THROWS( ( IllegalArgumentException, - UsrSystemException) ) -{ - if( L"com.sun.star.xml.sax.Parser" == TestName ) { - XParserRef parser( TestObject , USR_QUERY ); - - ERROR_ASSERT( parser.is() , "XDataInputStream cannot be queried" ); - } -} - - -INT32 OSaxParserTest::test( const UString& TestName, - const XInterfaceRef& TestObject, - INT32 hTestHandle) THROWS( ( IllegalArgumentException, - UsrSystemException) ) -{ - if( L"com.sun.star.xml.sax.Parser" == TestName ) { - try { - if( 0 == hTestHandle ) { - testInvariant( TestName , TestObject ); - } - else { - - XParserRef parser( TestObject , USR_QUERY ); - - if( 1 == hTestHandle ) { - testSimple( parser ); - } - else if( 2 == hTestHandle ) { - testNamespaces( parser ); - } - else if( 3 == hTestHandle ) { - testEncoding( parser ); - } - else if( 4 == hTestHandle ) { - testFile( parser ); - } - else if( 5 == hTestHandle ) { - testPerformance( parser ); - } - } - } - catch( Exception& e ) { - BUILD_ERROR( 0 , UStringToString( e.getName() , CHARSET_SYSTEM ).GetCharStr() ); - } - catch(...) { - BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" ); - } - - hTestHandle ++; - - if( hTestHandle >= 6) { - // all tests finished. - hTestHandle = -1; - } - } - else { - BUILD_ERROR( 0 , "service not supported by test." ); - } - return hTestHandle; -} - - - -BOOL OSaxParserTest::testPassed(void) THROWS( (UsrSystemException) ) -{ - return m_seqErrors.getLen() == 0; -} - - -Sequence< UString > OSaxParserTest::getErrors(void) THROWS( (UsrSystemException) ) -{ - return m_seqErrors; -} - - -Sequence< UsrAny > OSaxParserTest::getErrorExceptions(void) THROWS( (UsrSystemException) ) -{ - return m_seqExceptions; -} - - -Sequence< UString > OSaxParserTest::getWarnings(void) THROWS( (UsrSystemException) ) -{ - return m_seqWarnings; -} - -XInputStreamRef createStreamFromSequence( const Sequence<BYTE> seqBytes , XMultiServiceFactoryRef &xSMgr ) -{ - XInterfaceRef xOutStreamService = xSMgr->createInstance( L"com.sun.star.io.Pipe" ); - OSL_ASSERT( xOutStreamService.is() ); - XOutputStreamRef rOutStream( xOutStreamService , USR_QUERY ); - OSL_ASSERT( rOutStream.is() ); - - XInputStreamRef rInStream( xOutStreamService , USR_QUERY ); - OSL_ASSERT( rInStream.is() ); - - rOutStream->writeBytes( seqBytes ); - rOutStream->flush(); - rOutStream->closeOutput(); - - return rInStream; -} - -XInputStreamRef createStreamFromFile( const char *pcFile , XMultiServiceFactoryRef &xSMgr ) -{ - FILE *f = fopen( pcFile , "rb" ); - XInputStreamRef r; - - if( f ) { - fseek( f , 0 , SEEK_END ); - int nLength = ftell( f ); - fseek( f , 0 , SEEK_SET ); - - Sequence<BYTE> seqIn(nLength); - fread( seqIn.getArray() , nLength , 1 , f ); - - r = createStreamFromSequence( seqIn , xSMgr ); - fclose( f ); - } - return r; -} - - - - - - - - - -#define PCHAR_TO_USTRING(x) StringToUString(String(x),CHARSET_PC_1252) -#define USTRING_TO_PCHAR(x) UStringToString(x,CHARSET_PC_437).GetStr() - - - -class TestDocumentHandler : - public XExtendedDocumentHandler, - public XEntityResolver, - public XErrorHandler, - public OWeakObject -{ -public: - TestDocumentHandler( XMultiServiceFactoryRef &r , BOOL bPrint ) - { - m_xSMgr = r; - m_bPrint = bPrint; - } - - -public: - BOOL queryInterface( Uik aUik, XInterfaceRef & rOut ); - void acquire() { OWeakObject::acquire(); } - void release() { OWeakObject::release(); } - void* getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); } - - -public: // Error handler - virtual void error(const UsrAny& aSAXParseException) THROWS( (SAXException, UsrSystemException) ) - { - printf( "Error !\n" ); - THROW( SAXException( L"error from error handler" , XInterfaceRef() , aSAXParseException ) ); - } - virtual void fatalError(const UsrAny& aSAXParseException) THROWS( (SAXException, UsrSystemException) ) - { - printf( "Fatal Error !\n" ); - } - virtual void warning(const UsrAny& aSAXParseException) THROWS( (SAXException, UsrSystemException) ) - { - printf( "Warning !\n" ); - } - - -public: // ExtendedDocumentHandler - - virtual void startDocument(void) THROWS( (SAXException, UsrSystemException) ) - { - m_iLevel = 0; - m_iElementCount = 0; - m_iAttributeCount = 0; - m_iWhitespaceCount =0; - m_iCharCount=0; - if( m_bPrint ) { - printf( "document started\n" ); - } - } - virtual void endDocument(void) THROWS( (SAXException, UsrSystemException) ) - { - if( m_bPrint ) { - printf( "document finished\n" ); - printf( "(ElementCount %d),(AttributeCount %d),(WhitespaceCount %d),(CharCount %d)\n", - m_iElementCount, m_iAttributeCount, m_iWhitespaceCount , m_iCharCount ); - } - } - virtual void startElement(const UString& aName, const XAttributeListRef& xAttribs) - THROWS( (SAXException,UsrSystemException) ) - { - - if( m_rLocator.is() ) { - if( m_bPrint ) - printf( "%s(%d):" , USTRING_TO_PCHAR( m_rLocator->getSystemId() ) , - m_rLocator->getLineNumber() ); - } - if( m_bPrint ) { - int i; - for( i = 0; i < m_iLevel ; i ++ ) { - printf( " " ); - } - printf( "<%s> " , USTRING_TO_PCHAR( aName ) ); - - for( i = 0 ; i < xAttribs->getLength() ; i ++ ) { - printf( "(%s,%s,'%s')" , USTRING_TO_PCHAR( xAttribs->getNameByIndex( i ) ) , - USTRING_TO_PCHAR( xAttribs->getTypeByIndex( i ) ) , - USTRING_TO_PCHAR( xAttribs->getValueByIndex( i ) ) ); - } - printf( "\n" ); - } - m_iLevel ++; - m_iElementCount ++; - m_iAttributeCount += xAttribs->getLength(); - } - virtual void endElement(const UString& aName) THROWS( (SAXException,UsrSystemException) ) - { - OSL_ASSERT( m_iLevel ); - m_iLevel --; - if( m_bPrint ) { - int i; - for( i = 0; i < m_iLevel ; i ++ ) { - printf( " " ); - } - printf( "</%s>\n" , USTRING_TO_PCHAR( aName ) ); - } - } - - virtual void characters(const UString& aChars) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) { - int i; - for( i = 0; i < m_iLevel ; i ++ ) { - printf( " " ); - } - printf( "%s\n" , USTRING_TO_PCHAR( aChars ) ); - } - m_iCharCount += aChars.len(); - } - virtual void ignorableWhitespace(const UString& aWhitespaces) THROWS( (SAXException,UsrSystemException) ) - { - m_iWhitespaceCount += aWhitespaces.len(); - } - - virtual void processingInstruction(const UString& aTarget, const UString& aData) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) - printf( "PI : %s,%s\n" , USTRING_TO_PCHAR( aTarget ) , USTRING_TO_PCHAR( aData ) ); - } - - virtual void setDocumentLocator(const XLocatorRef& xLocator) THROWS( (SAXException,UsrSystemException) ) - { - m_rLocator = xLocator; - } - - virtual InputSource resolveEntity(const UString& sPublicId, const UString& sSystemId) - THROWS( (SAXException,UsrSystemException) ) - { - InputSource source; - source.sSystemId = sSystemId; - source.sPublicId = sPublicId; - source.aInputStream = createStreamFromFile( USTRING_TO_PCHAR( sSystemId ) , m_xSMgr ); - - return source; - } - - virtual void startCDATA(void) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) { - printf( "CDataStart :\n" ); - } - } - virtual void endCDATA(void) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) { - printf( "CEndStart :\n" ); - } - } - virtual void comment(const UString& sComment) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) { - printf( "<!--%s-->\n" , USTRING_TO_PCHAR( sComment ) ); - } - } - virtual void unknown(const UString& sString) THROWS( (SAXException,UsrSystemException) ) - { - if( m_bPrint ) { - printf( "UNKNOWN : {%s}\n" , USTRING_TO_PCHAR( sString ) ); - } - } - - virtual void allowLineBreak( void) THROWS( (SAXException, UsrSystemException ) ) - { - - } - - -public: - int m_iLevel; - int m_iElementCount; - int m_iAttributeCount; - int m_iWhitespaceCount; - int m_iCharCount; - BOOL m_bPrint; - - XMultiServiceFactoryRef m_xSMgr; - XLocatorRef m_rLocator; -}; - -BOOL TestDocumentHandler::queryInterface( Uik aUik , XInterfaceRef & rOut ) -{ - if( aUik == XDocumentHandler::getSmartUik() ) { - rOut = (XDocumentHandler * )this; - } - else if ( aUik == XExtendedDocumentHandler::getSmartUik() ) { - rOut = (XExtendedDocumentHandler *) this; - } - else if ( aUik == XEntityResolver::getSmartUik() ) { - rOut = (XEntityResolver *) this; - } - else if ( aUik == XErrorHandler::getSmartUik() ) { - rOut = (XErrorHandler * ) this; - } - else { - return OWeakObject::queryInterface( aUik , rOut ); - } - return TRUE; -} - - - - -void OSaxParserTest::testSimple( const XParserRef &rParser ) -{ - - char TestString[] = - "<!DOCTYPE personnel [\n" - "<!ENTITY testInternal \"internal Test!\">\n" - "<!ENTITY test SYSTEM \"external_entity.xml\">\n" - "]>\n" - - "<personnel>\n" - "<person> fjklsfdklsdfkl\n" - "fjklsfdklsdfkl\n" - "<?testpi pidata?>\n" - "&testInternal;\n" - "<HUHU x='5' y='kjfd'> blahuhu\n" - "<HI> blahi\n" - " <![CDATA[<greeting>Hello, '+1+12world!</greeting>]]>\n" - " <!-- huhu <jdk> -->\n" - "<?testpi pidata?>\n" - "</HI>\n" - "aus XMLTest\n" - "</HUHU>\n" - "</person>\n" - "</personnel>\n\n\n"; - - Sequence<BYTE> seqBytes( strlen( TestString ) ); - memcpy( seqBytes.getArray() , TestString , strlen( TestString ) ); - - - XInputStreamRef rInStream; - UString sInput; - rInStream = createStreamFromSequence( seqBytes , m_rFactory ); - sInput = UString( L"internal" ); - - if( rParser.is() ) { - InputSource source; - - source.aInputStream = rInStream; - source.sSystemId = sInput; - - TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE ); - XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY ); - XEntityResolverRef rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY ); - - rParser->setDocumentHandler( rDocHandler ); - rParser->setEntityResolver( rEntityResolver ); - - try { - rParser->parseStream( source ); - ERROR_ASSERT( pDocHandler->m_iElementCount == 4 , "wrong element count" ); - ERROR_ASSERT( pDocHandler->m_iAttributeCount == 2 , "wrong attribut count" ); - ERROR_ASSERT( pDocHandler->m_iCharCount == 130 , "wrong char count" ); - ERROR_ASSERT( pDocHandler->m_iWhitespaceCount == 0, "wrong whitespace count" ); - } - catch( SAXParseException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch( SAXException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - - } - catch( Exception& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch(...) { - BUILD_ERROR( 1 , "unknown exception" ); - } - - } - - -} - -void OSaxParserTest::testNamespaces( const XParserRef &rParser ) -{ - - char TestString[] = - "<?xml version='1.0'?>\n" - "<!-- all elements here are explicitly in the HTML namespace -->\n" - "<html:html xmlns:html='http://www.w3.org/TR/REC-html40'>\n" - "<html:head><html:title>Frobnostication</html:title></html:head>\n" - "<html:body><html:p>Moved to \n" - "<html:a href='http://frob.com'>here.</html:a></html:p></html:body>\n" - "</html:html>\n"; - - Sequence<BYTE> seqBytes( strlen( TestString ) ); - memcpy( seqBytes.getArray() , TestString , strlen( TestString ) ); - - - XInputStreamRef rInStream; - UString sInput; - - rInStream = createStreamFromSequence( seqBytes , m_rFactory ); - sInput = UString( L"internal" ); - - if( rParser.is() ) { - InputSource source; - - source.aInputStream = rInStream; - source.sSystemId = sInput; - - TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE ); - XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY ); - XEntityResolverRef rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY ); - - rParser->setDocumentHandler( rDocHandler ); - rParser->setEntityResolver( rEntityResolver ); - - try { - rParser->parseStream( source ); - ERROR_ASSERT( pDocHandler->m_iElementCount == 6 , "wrong element count" ); - ERROR_ASSERT( pDocHandler->m_iAttributeCount == 2 , "wrong attribut count" ); - ERROR_ASSERT( pDocHandler->m_iCharCount == 33, "wrong char count" ); - ERROR_ASSERT( pDocHandler->m_iWhitespaceCount == 0 , "wrong whitespace count" ); - } - catch( SAXParseException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch( SAXException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - - } - catch( Exception& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch(...) { - BUILD_ERROR( 1 , "unknown exception" ); - } - } -} - -void OSaxParserTest::testEncoding( const XParserRef &rParser ) -{ - char TestString[] = - "<?xml version='1.0' encoding=\"iso-8859-1\"?>\n" - "<!-- all elements here are explicitly in the HTML namespace -->\n" - "<html:html xmlns:html='http://www.w3.org/TR/REC-html40'>\n" - "<html:head><html:title>Frobnostication</html:title></html:head>\n" - "<html:body><html:p>Moved to \n" - "<html:a href='http://frob.com'>here.</html:a></html:p></html:body>\n" - "</html:html>\n"; - - Sequence<BYTE> seqBytes( strlen( TestString ) ); - memcpy( seqBytes.getArray() , TestString , strlen( TestString ) ); - - - XInputStreamRef rInStream; - UString sInput; - - rInStream = createStreamFromSequence( seqBytes , m_rFactory ); - sInput = UString( L"internal" ); - - if( rParser.is() ) { - InputSource source; - - source.aInputStream = rInStream; - source.sSystemId = sInput; - - TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE ); - XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY ); - XEntityResolverRef rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY ); - - rParser->setDocumentHandler( rDocHandler ); - rParser->setEntityResolver( rEntityResolver ); - try { - rParser->parseStream( source ); - } - catch( SAXParseException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch( SAXException& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - - } - catch( Exception& e ) { - BUILD_ERROR( 1 , USTRING_TO_PCHAR( e.Message ) ); - } - catch(...) { - BUILD_ERROR( 1 , "unknown exception" ); - } - - } - -} - -void OSaxParserTest::testFile( const XParserRef & rParser ) -{ - - XInputStreamRef rInStream = createStreamFromFile( "testsax.xml" , m_rFactory ); - UString sInput = UString( PCHAR_TO_USTRING( "testsax.xml" ) ); - - - if( rParser.is() && rInStream.is() ) { - InputSource source; - - source.aInputStream = rInStream; - source.sSystemId = sInput; - - TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , TRUE ); - XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY ); - XEntityResolverRef rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY ); - XErrorHandlerRef rErrorHandler( ( XErrorHandler * )pDocHandler , USR_QUERY ); - - rParser->setDocumentHandler( rDocHandler ); - rParser->setEntityResolver( rEntityResolver ); - rParser->setErrorHandler( rErrorHandler ); - - try { - rParser->parseStream( source ); - } - catch( SAXParseException& e ) { - UsrAny any; - any.set( &e , SAXParseException_getReflection() ); - while(TRUE) { - SAXParseException *pEx; - if( any.getReflection() == SAXParseException_getReflection() ) { - pEx = ( SAXParseException * ) any.get(); - printf( "%s\n" , UStringToString( pEx->Message , CHARSET_SYSTEM ).GetStr() ); - any = pEx->WrappedException; - } - else { - break; - } - } - } - catch( SAXException& e ) { - printf( "%s\n" , UStringToString( e.Message , CHARSET_SYSTEM ).GetStr() ); - - } - catch( Exception& e ) { - printf( "normal exception ! %s\n", e.getName() ); - } - catch(...) { - printf( "any exception !!!!\n" ); - } - } -} - -void OSaxParserTest::testPerformance( const XParserRef & rParser ) -{ - - XInputStreamRef rInStream = createStreamFromFile( "testPerformance.xml" , m_rFactory ); - UString sInput = UString( PCHAR_TO_USTRING( "testperformance.xml" ) ); - - if( rParser.is() && rInStream.is() ) { - InputSource source; - - source.aInputStream = rInStream; - source.sSystemId = sInput; - - TestDocumentHandler *pDocHandler = new TestDocumentHandler( m_rFactory , FALSE ); - XDocumentHandlerRef rDocHandler( (XDocumentHandler *) pDocHandler , USR_QUERY ); - XEntityResolverRef rEntityResolver( (XEntityResolver *) pDocHandler , USR_QUERY ); - XErrorHandlerRef rErrorHandler( ( XErrorHandler * )pDocHandler , USR_QUERY ); - - rParser->setDocumentHandler( rDocHandler ); - rParser->setEntityResolver( rEntityResolver ); - rParser->setErrorHandler( rErrorHandler ); - - try { - TimeValue aStartTime, aEndTime; - osl_getSystemTime( &aStartTime ); - rParser->parseStream( source ); - osl_getSystemTime( &aEndTime ); - - double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0); - double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0); - - printf( "Performance reading : %g s\n" , fEnd - fStart ); - - } - catch( SAXParseException& e ) { - UsrAny any; - any.set( &e , SAXParseException_getReflection() ); - while(TRUE) { - SAXParseException *pEx; - if( any.getReflection() == SAXParseException_getReflection() ) { - pEx = ( SAXParseException * ) any.get(); - printf( "%s\n" , UStringToString( pEx->Message , CHARSET_SYSTEM ).GetStr() ); - any = pEx->WrappedException; - } - else { - break; - } - } - } - catch( SAXException& e ) { - printf( "%s\n" , UStringToString( e.Message , CHARSET_SYSTEM ).GetStr() ); - - } - catch( Exception& e ) { - printf( "normal exception ! %s\n", e.getName() ); - } - catch(...) { - printf( "any exception !!!!\n" ); - } - } - -} - - -extern "C" -{ -BOOL EXTERN_SERVICE_CALLTYPE exService_writeRegEntry( - const UNO_INTERFACE(XRegistryKey)* xUnoKey) - -{ - XRegistryKeyRef xKey; - uno2smart(xKey, *xUnoKey); - - UString str = UString( L"/" ) + OSaxParserTest_getImplementationName() + UString( L"/UNO/SERVICES" ); - XRegistryKeyRef xNewKey = xKey->createKey( str ); - xNewKey->createKey( OSaxParserTest_getServiceName() ); - - str = UString( L"/" ) + OSaxWriterTest_getImplementationName() + UString( L"/UNO/SERVICES" ); - xNewKey = xKey->createKey( str ); - xNewKey->createKey( OSaxWriterTest_getServiceName() ); - - return TRUE; -} - - -UNO_INTERFACE(XInterface) EXTERN_SERVICE_CALLTYPE exService_getFactory -( - const wchar_t* implementationName, - const UNO_INTERFACE(XMultiServiceFactory)* xUnoFact, - const UNO_INTERFACE(XRegistryKey)* -) -{ - UNO_INTERFACE(XInterface) xUnoRet = {0, 0}; - - XInterfaceRef xRet; - XMultiServiceFactoryRef xSMgr; - UString aImplementationName(implementationName); - - uno2smart(xSMgr, *xUnoFact); - - if (aImplementationName == OSaxWriterTest_getImplementationName() ) - { - xRet = createSingleFactory( xSMgr, implementationName, - OSaxWriterTest_CreateInstance, - OSaxWriterTest_getSupportedServiceNames() ); - } - else if (aImplementationName == OSaxParserTest_getImplementationName() ) - { - xRet = createSingleFactory( xSMgr, implementationName, - OSaxParserTest_CreateInstance, - OSaxParserTest_getSupportedServiceNames() ); - } - if (xRet.is()) - { - smart2uno(xRet, xUnoRet); - } - - return xUnoRet; -} - -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/test/sax/testwriter.cxx b/extensions/test/sax/testwriter.cxx deleted file mode 100644 index 1f778092e2eb..000000000000 --- a/extensions/test/sax/testwriter.cxx +++ /dev/null @@ -1,758 +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_extensions.hxx" - -#include <vector> -#include <smart/com/sun/star/test/XSimpleTest.hxx> -#include <smart/com/sun/star/lang/XMultiServiceFactory.hxx> // for the multiservice-factories - -#include <stdio.h> - -#include <smart/com/sun/star/io/XActiveDataSource.hxx> -#include <smart/com/sun/star/io/XOutputStream.hxx> -#include <smart/com/sun/star/xml/sax/SAXParseException.hxx> -#include <smart/com/sun/star/xml/sax/XParser.hxx> -#include <smart/com/sun/star/xml/sax/XExtendedDocumentHandler.hxx> - -#include <rtl/wstring.hxx> -#include <osl/time.h> -#include <usr/weak.hxx> -#include <tools/string.hxx> - -#include <usr/factoryhlp.hxx> - -#include <usr/reflserv.hxx> // for EXTERN_SERVICE_CALLTYPE - -using namespace std; -using namespace usr; - -#define BUILD_ERROR(expr, Message)\ - {\ - m_seqErrors.realloc( m_seqErrors.getLen() + 1 ); \ - m_seqExceptions.realloc( m_seqExceptions.getLen() + 1 ); \ - String str; \ - str += __FILE__;\ - str += " "; \ - str += "(" ; \ - str += __LINE__ ;\ - str += ")\n";\ - str += "[ " ; \ - str += #expr; \ - str += " ] : " ; \ - str += Message; \ - m_seqErrors.getArray()[ m_seqErrors.getLen()-1] = StringToUString( str , CHARSET_SYSTEM ); \ - }\ - ((void)0) - - -#define WARNING_ASSERT(expr, Message) \ - if( ! (expr) ) { \ - m_seqWarnings.realloc( m_seqErrors.getLen() +1 ); \ - String str;\ - str += __FILE__;\ - str += " "; \ - str += "(" ; \ - str += __LINE__ ;\ - str += ")\n";\ - str += "[ " ; \ - str += #expr; \ - str += " ] : " ; \ - str += Message; \ - m_seqWarnings.getArray()[ m_seqWarnings.getLen()-1] = StringToUString( str , CHARSET_SYSTEM ); \ - return; \ - }\ - ((void)0) - -#define ERROR_ASSERT(expr, Message) \ - if( ! (expr) ) { \ - BUILD_ERROR(expr, Message );\ - return; \ - }\ - ((void)0) - -#define ERROR_EXCEPTION_ASSERT(expr, Message, Exception) \ - if( !(expr)) { \ - BUILD_ERROR(expr,Message);\ - m_seqExceptions.getArray()[ m_seqExceptions.getLen()-1] = UsrAny( Exception );\ - return; \ - } \ - ((void)0) - -/**** -* test szenarios : -****/ - - -class OFileWriter : - public XOutputStream, - public OWeakObject -{ -public: - OFileWriter( char *pcFile ) { strcpy( m_pcFile , pcFile ); m_f = 0; } - - -public: // refcounting - BOOL queryInterface( Uik aUik, XInterfaceRef & rOut ) - { - if( XOutputStream::getSmartUik() == aUik ) { - rOut = (XOutputStream *) this; - } - else return OWeakObject::queryInterface( aUik , rOut ); - - return TRUE; - } - void acquire() { OWeakObject::acquire(); } - void release() { OWeakObject::release(); } - void* getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); } - -public: - virtual void writeBytes(const Sequence< BYTE >& aData) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ); - virtual void flush(void) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ); - virtual void closeOutput(void) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ); - - -private: - char m_pcFile[256]; - FILE *m_f; -}; - - -void OFileWriter::writeBytes(const Sequence< BYTE >& aData) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ) -{ - if( ! m_f ) { - m_f = fopen( m_pcFile , "w" ); - } - - fwrite( aData.getConstArray() , 1 , aData.getLen() , m_f ); - -} - - -void OFileWriter::flush(void) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ) -{ - fflush( m_f ); -} - -void OFileWriter::closeOutput(void) - THROWS( (NotConnectedException, BufferSizeExceededException, UsrSystemException) ) -{ - fclose( m_f ); - m_f = 0; -} - - -class OSaxWriterTest : - public XSimpleTest, - public OWeakObject -{ -public: - OSaxWriterTest( const XMultiServiceFactoryRef & rFactory ) : m_rFactory( rFactory ) - { - - } - ~OSaxWriterTest() {} - -public: // refcounting - BOOL queryInterface( Uik aUik, XInterfaceRef & rOut ); - void acquire() { OWeakObject::acquire(); } - void release() { OWeakObject::release(); } - void* getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); } - -public: - virtual void testInvariant(const UString& TestName, const XInterfaceRef& TestObject) - THROWS( ( IllegalArgumentException, - UsrSystemException) ); - - virtual INT32 test( const UString& TestName, - const XInterfaceRef& TestObject, - INT32 hTestHandle) THROWS( ( IllegalArgumentException, - UsrSystemException) ); - - virtual BOOL testPassed(void) THROWS( ( UsrSystemException) ); - virtual Sequence< UString > getErrors(void) THROWS( (UsrSystemException) ); - virtual Sequence< UsrAny > getErrorExceptions(void) THROWS( (UsrSystemException) ); - virtual Sequence< UString > getWarnings(void) THROWS( (UsrSystemException) ); - -private: - void testSimple( const XExtendedDocumentHandlerRef &r ); - void testExceptions( const XExtendedDocumentHandlerRef &r ); - void testDTD( const XExtendedDocumentHandlerRef &r ); - void testPerformance( const XExtendedDocumentHandlerRef &r ); - void writeParagraph( const XExtendedDocumentHandlerRef &r , const UString & s); - -private: - Sequence<UsrAny> m_seqExceptions; - Sequence<UString> m_seqErrors; - Sequence<UString> m_seqWarnings; - XMultiServiceFactoryRef m_rFactory; - -}; - - - -/*---------------------------------------- -* -* Attributlist implementation -* -*----------------------------------------*/ -struct AttributeListImpl_impl; -class AttributeListImpl : - public XAttributeList, - public OWeakObject -{ -public: - AttributeListImpl(); - AttributeListImpl( const AttributeListImpl & ); - ~AttributeListImpl(); - -public: - BOOL queryInterface( Uik aUik, XInterfaceRef & rOut ); - void acquire() { OWeakObject::acquire(); } - void release() { OWeakObject::release(); } - void* getImplementation(Reflection *p) { return OWeakObject::getImplementation(p); } - -public: - virtual INT16 getLength(void) THROWS( (UsrSystemException) ); - virtual UString getNameByIndex(INT16 i) THROWS( (UsrSystemException) ); - virtual UString getTypeByIndex(INT16 i) THROWS( (UsrSystemException) ); - virtual UString getTypeByName(const UString& aName) THROWS( (UsrSystemException) ); - virtual UString getValueByIndex(INT16 i) THROWS( (UsrSystemException) ); - virtual UString getValueByName(const UString& aName) THROWS( (UsrSystemException) ); - -public: - void addAttribute( const UString &sName , const UString &sType , const UString &sValue ); - void clear(); - -private: - struct AttributeListImpl_impl *m_pImpl; -}; - - -struct TagAttribute -{ - TagAttribute(){} - TagAttribute( const UString &sName, const UString &sType , const UString &sValue ) - { - this->sName = sName; - this->sType = sType; - this->sValue = sValue; - } - - UString sName; - UString sType; - UString sValue; -}; - -struct AttributeListImpl_impl -{ - AttributeListImpl_impl() - { - // performance improvement during adding - vecAttribute.reserve(20); - } - vector<struct TagAttribute> vecAttribute; -}; - - - -INT16 AttributeListImpl::getLength(void) THROWS( (UsrSystemException) ) -{ - return m_pImpl->vecAttribute.size(); -} - - -AttributeListImpl::AttributeListImpl( const AttributeListImpl &r ) -{ - m_pImpl = new AttributeListImpl_impl; - *m_pImpl = *(r.m_pImpl); -} - -UString AttributeListImpl::getNameByIndex(INT16 i) THROWS( (UsrSystemException) ) -{ - if( i < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sName; - } - return UString(); -} - - -UString AttributeListImpl::getTypeByIndex(INT16 i) THROWS( (UsrSystemException) ) -{ - if( i < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sType; - } - return UString(); -} - -UString AttributeListImpl::getValueByIndex(INT16 i) THROWS( (UsrSystemException) ) -{ - if( i < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sValue; - } - return UString(); - -} - -UString AttributeListImpl::getTypeByName( const UString& sName ) THROWS( (UsrSystemException) ) -{ - vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin(); - - for (; ii != m_pImpl->vecAttribute.end(); ++ii) - { - if( (*ii).sName == sName ) - { - return (*ii).sType; - } - } - return UString(); -} - -UString AttributeListImpl::getValueByName(const UString& sName) THROWS( (UsrSystemException) ) -{ - vector<struct TagAttribute>::iterator ii = m_pImpl->vecAttribute.begin(); - - for (; ii != m_pImpl->vecAttribute.end(); ++ii) - { - if( (*ii).sName == sName ) - { - return (*ii).sValue; - } - } - return UString(); -} - - -BOOL AttributeListImpl::queryInterface( Uik aUik, XInterfaceRef & rOut ) -{ - if( aUik == XAttributeList::getSmartUik() ) { - rOut = (XAttributeList * )this; - } - else { - return OWeakObject::queryInterface( aUik , rOut ); - } - return TRUE; -} - - -AttributeListImpl::AttributeListImpl() -{ - m_pImpl = new AttributeListImpl_impl; -} - - - -AttributeListImpl::~AttributeListImpl() -{ - delete m_pImpl; -} - - -void AttributeListImpl::addAttribute( const UString &sName , - const UString &sType , - const UString &sValue ) -{ - m_pImpl->vecAttribute.push_back( TagAttribute( sName , sType , sValue ) ); -} - -void AttributeListImpl::clear() -{ - vector<struct TagAttribute> dummy; - m_pImpl->vecAttribute.swap( dummy ); - - OSL_ASSERT( ! getLength() ); -} - -/** -* for external binding -**/ -XInterfaceRef OSaxWriterTest_CreateInstance( const XMultiServiceFactoryRef & rSMgr ) THROWS((Exception)) -{ - OSaxWriterTest *p = new OSaxWriterTest( rSMgr ); - XInterfaceRef xService = *p; - return xService; -} - -UString OSaxWriterTest_getServiceName( ) THROWS( () ) -{ - return L"test.com.sun.star.xml.sax.Writer"; -} - -UString OSaxWriterTest_getImplementationName( ) THROWS( () ) -{ - return L"test.extensions.xml.sax.Writer"; -} - -Sequence<UString> OSaxWriterTest_getSupportedServiceNames( ) THROWS( () ) -{ - Sequence<UString> aRet(1); - - aRet.getArray()[0] = OSaxWriterTest_getImplementationName( ); - - return aRet; -} - - -BOOL OSaxWriterTest::queryInterface( Uik uik , XInterfaceRef &rOut ) -{ - if( XSimpleTest::getSmartUik() == uik ) { - rOut = (XSimpleTest *) this; - } - else { - return OWeakObject::queryInterface( uik , rOut ); - } - return TRUE; -} - - -void OSaxWriterTest::testInvariant( const UString& TestName, const XInterfaceRef& TestObject ) - THROWS( ( IllegalArgumentException, - UsrSystemException) ) -{ - if( L"com.sun.star.xml.sax.Writer" == TestName ) { - XDocumentHandlerRef doc( TestObject , USR_QUERY ); - XExtendedDocumentHandlerRef ext( TestObject , USR_QUERY ); - XActiveDataSourceRef source( TestObject , USR_QUERY ); - - ERROR_ASSERT( doc.is() , "XDocumentHandler cannot be queried" ); - ERROR_ASSERT( ext.is() , "XExtendedDocumentHandler cannot be queried" ); - ERROR_ASSERT( source.is() , "XActiveDataSource cannot be queried" ); - } - else { - BUILD_ERROR( 0 , "wrong test" ); - } -} - - -INT32 OSaxWriterTest::test( const UString& TestName, - const XInterfaceRef& TestObject, - INT32 hTestHandle) THROWS( ( IllegalArgumentException, - UsrSystemException) ) -{ - if( L"com.sun.star.xml.sax.Writer" == TestName ) { - try { - if( 0 == hTestHandle ) { - testInvariant( TestName , TestObject ); - } - else { - - XExtendedDocumentHandlerRef writer( TestObject , USR_QUERY ); - - if( 1 == hTestHandle ) { - testSimple( writer ); - } - else if( 2 == hTestHandle ) { - testExceptions( writer ); - } - else if( 3 == hTestHandle ) { - testDTD( writer ); - } - else if( 4 == hTestHandle ) { - testPerformance( writer ); - } - } - } - catch( Exception& e ) { - BUILD_ERROR( 0 , UStringToString( e.getName() , CHARSET_SYSTEM ).GetCharStr() ); - } - catch(...) { - BUILD_ERROR( 0 , "unknown exception (Exception is not base class)" ); - } - - hTestHandle ++; - - if( hTestHandle >= 5) { - // all tests finished. - hTestHandle = -1; - } - } - else { - BUILD_ERROR( 0 , "service not supported by test." ); - } - return hTestHandle; -} - - - -BOOL OSaxWriterTest::testPassed(void) THROWS( (UsrSystemException) ) -{ - return m_seqErrors.getLen() == 0; -} - - -Sequence< UString > OSaxWriterTest::getErrors(void) THROWS( (UsrSystemException) ) -{ - return m_seqErrors; -} - - -Sequence< UsrAny > OSaxWriterTest::getErrorExceptions(void) THROWS( (UsrSystemException) ) -{ - return m_seqExceptions; -} - - -Sequence< UString > OSaxWriterTest::getWarnings(void) THROWS( (UsrSystemException) ) -{ - return m_seqWarnings; -} - -void OSaxWriterTest::writeParagraph( const XExtendedDocumentHandlerRef &r , const UString & s) -{ - int nMax = s.len(); - int nStart = 0; - - Sequence<UINT16> seq( s.len() ); - memcpy( seq.getArray() , s.getStr() , s.len() * sizeof( UINT16 ) ); - - for( int n = 1 ; n < nMax ; n++ ){ - if( 32 == seq.getArray()[n] ) { - r->allowLineBreak(); - r->characters( s.copy( nStart , n - nStart ) ); - nStart = n; - } - } - r->allowLineBreak(); - r->characters( s.copy( nStart , n - nStart ) ); - - -} - - - -void OSaxWriterTest::testSimple( const XExtendedDocumentHandlerRef &r ) -{ - UString testParagraph = L"Dies ist ein bloeder Test um zu uberpruefen, ob der SAXWriter " - L"wohl Zeilenumbrueche halbwegs richtig macht oder ob er die Zeile " - L"bis zum bitteren Ende schreibt."; - - OFileWriter *pw = new OFileWriter("output.xml"); - AttributeListImpl *pList = new AttributeListImpl; - - XAttributeListRef rList( (XAttributeList *) pList , USR_QUERY ); - XOutputStreamRef ref( ( XOutputStream * ) pw , USR_QUERY ); - - XActiveDataSourceRef source( r , USR_QUERY ); - - ERROR_ASSERT( ref.is() , "no output stream" ); - ERROR_ASSERT( source.is() , "no active data source" ); - - source->setOutputStream( ref ); - - r->startDocument(); - - pList->addAttribute( L"Arg1" , L"CDATA" , L"bla\n u" ); - pList->addAttribute( L"Arg2" , L"CDATA" , L"blub" ); - - r->startElement( L"tag1" , rList ); - r->ignorableWhitespace( L"" ); - - r->characters( L"huhu" ); - r->ignorableWhitespace( L"" ); - - r->startElement( L"hi" , rList ); - r->ignorableWhitespace( L"" ); - - // the enpassant must be converted & -> & - r->characters( L"ü" ); - - // Test added for mib. Tests if errors during conversions occurs - r->ignorableWhitespace( UString() ); - sal_Char array[256]; - for( sal_Int32 n = 32 ; n < 254 ; n ++ ) { - array[n-32] = n; - } - array[254-32] = 0; - r->characters( - StringToUString( array , RTL_TEXTENCODING_SYMBOL ) - ); - r->ignorableWhitespace( UString() ); - - // '>' must not be converted - r->startCDATA(); - r->characters( L">fsfsdf<" ); - r->endCDATA(); - r->ignorableWhitespace( UString() ); - - writeParagraph( r , testParagraph ); - - - r->ignorableWhitespace( UString() ); - r->comment( L"Dies ist ein Kommentar !" ); - r->ignorableWhitespace( UString() ); - - r->startElement( L"emptytagtest" , rList ); - r->endElement( L"emptytagtest" ); - - r->endElement( L"hi" ); - r->ignorableWhitespace( L"" ); - - r->endElement( L"tag1" ); - r->endDocument(); - -} - -void OSaxWriterTest::testExceptions( const XExtendedDocumentHandlerRef & r ) -{ - - OFileWriter *pw = new OFileWriter("output2.xml"); - AttributeListImpl *pList = new AttributeListImpl; - - XAttributeListRef rList( (XAttributeList *) pList , USR_QUERY ); - XOutputStreamRef ref( ( XOutputStream * ) pw , USR_QUERY ); - - XActiveDataSourceRef source( r , USR_QUERY ); - - ERROR_ASSERT( ref.is() , "no output stream" ); - ERROR_ASSERT( source.is() , "no active data source" ); - - source->setOutputStream( ref ); - - { // startDocument must be called before start element - BOOL bException = TRUE; - try { - r->startElement( L"huhu" , rList ); - bException = FALSE; - } - catch( SAXException& e ) { - - } - ERROR_ASSERT( bException , "expected exception not thrown !" ); - } - - r->startDocument(); - - r->startElement( L"huhu" , rList ); - r->startCDATA(); - - { - BOOL bException = TRUE; - try { - r->startElement( L"huhu" , rList ); - bException = FALSE; - } - catch( SAXException& e ) { - - } - ERROR_ASSERT( bException , "expected exception not thrown !" ); - } - - r->endCDATA(); - r->endElement( L"hi" ); - - r->endDocument(); -} - - -void OSaxWriterTest::testDTD(const XExtendedDocumentHandlerRef &r ) -{ - OFileWriter *pw = new OFileWriter("outputDTD.xml"); - AttributeListImpl *pList = new AttributeListImpl; - - XAttributeListRef rList( (XAttributeList *) pList , USR_QUERY ); - XOutputStreamRef ref( ( XOutputStream * ) pw , USR_QUERY ); - - XActiveDataSourceRef source( r , USR_QUERY ); - - ERROR_ASSERT( ref.is() , "no output stream" ); - ERROR_ASSERT( source.is() , "no active data source" ); - - source->setOutputStream( ref ); - - - r->startDocument(); - r->unknown( L"<!DOCTYPE iCalendar >\n" ); - r->startElement( L"huhu" , rList ); - - r->endElement( L"huhu" ); - r->endDocument(); -} - -void OSaxWriterTest::testPerformance(const XExtendedDocumentHandlerRef &r ) -{ - OFileWriter *pw = new OFileWriter("testPerformance.xml"); - AttributeListImpl *pList = new AttributeListImpl; - - UString testParagraph = L"Dies ist ein bloeder Test um zu uberpruefen, ob der SAXWriter " - L"wohl > Zeilenumbrueche halbwegs richtig macht oder ob er die Zeile " - L"bis zum bitteren Ende schreibt."; - - - XAttributeListRef rList( (XAttributeList *) pList , USR_QUERY ); - XOutputStreamRef ref( ( XOutputStream * ) pw , USR_QUERY ); - - XActiveDataSourceRef source( r , USR_QUERY ); - - ERROR_ASSERT( ref.is() , "no output stream" ); - ERROR_ASSERT( source.is() , "no active data source" ); - - source->setOutputStream( ref ); - - TimeValue aStartTime, aEndTime; - osl_getSystemTime( &aStartTime ); - - - r->startDocument(); - // just write a bunch of xml tags ! - // for performance testing - sal_Int32 i2; - for( i2 = 0 ; i2 < 15 ; i2 ++ ) - { - r->startElement( UString( L"tag" ) + UString::valueOf( i2 ), rList ); - for( sal_Int32 i = 0 ; i < 450 ; i ++ ) - { - r->ignorableWhitespace( L""); - r->startElement( L"huhu" , rList ); - r->characters( testParagraph ); - r->ignorableWhitespace( L""); - r->endElement( L"huhu" ); - } - } - for( i2 = 14 ; i2 >= 0 ; i2-- ) - { - r->ignorableWhitespace( L""); - r->endElement( UString( L"tag" ) + UString::valueOf( i2 ) ); - } - - r->endDocument(); - - osl_getSystemTime( &aEndTime ); - - double fStart = (double)aStartTime.Seconds + ((double)aStartTime.Nanosec / 1000000000.0); - double fEnd = (double)aEndTime.Seconds + ((double)aEndTime.Nanosec / 1000000000.0); - - printf( "Performance writing : %g s\n" , fEnd - fStart ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |