diff options
Diffstat (limited to 'writerfilter/qa/cppunittests/doctok')
-rw-r--r-- | writerfilter/qa/cppunittests/doctok/doctok.job | 1 | ||||
-rw-r--r-- | writerfilter/qa/cppunittests/doctok/export.map | 7 | ||||
-rw-r--r-- | writerfilter/qa/cppunittests/doctok/makefile.mk | 72 | ||||
-rw-r--r-- | writerfilter/qa/cppunittests/doctok/testdoctok.cxx | 228 |
4 files changed, 308 insertions, 0 deletions
diff --git a/writerfilter/qa/cppunittests/doctok/doctok.job b/writerfilter/qa/cppunittests/doctok/doctok.job new file mode 100644 index 000000000000..c99341dd55d9 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/doctok.job @@ -0,0 +1 @@ +doctok.test.openFile
\ No newline at end of file diff --git a/writerfilter/qa/cppunittests/doctok/export.map b/writerfilter/qa/cppunittests/doctok/export.map new file mode 100644 index 000000000000..4ca70fa85463 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/export.map @@ -0,0 +1,7 @@ +UDK_3.0 { + global: + registerAllTestFunction; + + local: + *; +}; diff --git a/writerfilter/qa/cppunittests/doctok/makefile.mk b/writerfilter/qa/cppunittests/doctok/makefile.mk new file mode 100644 index 000000000000..6ee065ee6161 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/makefile.mk @@ -0,0 +1,72 @@ +#************************************************************************* +# +# 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=writerfilter +TARGET=test-doctok +# this is removed at the moment because we need some enhancements +# TESTDIR=TRUE + +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + + +# BEGIN ---------------------------------------------------------------- +# auto generated Target:doctok by codegen.pl +SHL1OBJS= \ + $(SLO)$/testdoctok.obj + +SHL1TARGET= testdoctok +SHL1STDLIBS=\ + $(SALLIB) \ + $(UCBHELPERLIB) \ + $(CPPUHELPERLIB) \ + $(CPPULIB) \ + $(TESTSHL2LIB) \ + $(CPPUNITLIB) + +SHL1LIBS=\ + $(SLB)$/doctok.lib +SHL1DEPS= \ + $(SHL1LIBS) + +SHL1IMPLIB= i$(SHL1TARGET) +# SHL1DEF= $(MISC)$/$(SHL1TARGET).def + +DEF1NAME =$(SHL1TARGET) +# DEF1EXPORTFILE= export.exp +SHL1VERSIONMAP= export.map +# auto generated Target:doctok +# END ------------------------------------------------------------------ + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : _cppunit.mk diff --git a/writerfilter/qa/cppunittests/doctok/testdoctok.cxx b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx new file mode 100644 index 000000000000..0ed8035fb1d3 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx @@ -0,0 +1,228 @@ +// autogenerated file with codegen.pl + +#include <testshl/simpleheader.hxx> + +#include <osl/process.h> +#include <ucbhelper/contentbroker.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <com/sun/star/ucb/XSimpleFileAccess.hpp> +#include <com/sun/star/io/XInputStream.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/uno/Any.hxx> +#include <com/sun/star/container/XNameContainer.hpp> + +#include <doctok/exceptions.hxx> +#include <doctok/WW8Document.hxx> +#include <resourcemodel/WW8ResourceModel.hxx> + +#include <iostream> + +namespace testdoctok +{ + using namespace ::std; + using namespace ::com::sun::star; + using namespace doctok; + + uno::Reference<io::XInputStream> xStream; + uno::Reference<uno::XComponentContext> xContext; + WW8Document::Pointer_t pDocument; + uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess; + + class test : public CppUnit::TestFixture + { + + public: + // initialise your test code values here. + void setUp() + { + } + + void tearDown() + { + } + + void testInitUno() + { + bool bResult = false; + + // initialise UCB-Broker + uno::Reference<uno::XComponentContext> + xComponentContext + (::cppu::defaultBootstrap_InitialComponentContext()); + OSL_ASSERT( xComponentContext.is() ); + + xContext = xComponentContext; + + uno::Reference<lang::XMultiComponentFactory> + xFactory(xComponentContext->getServiceManager() ); + OSL_ASSERT(xFactory.is()); + + uno::Sequence<uno::Any> aUcbInitSequence(2); + aUcbInitSequence[0] <<= + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local")); + aUcbInitSequence[1] <<= + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office")); + + uno::Reference<lang::XMultiServiceFactory> + xServiceFactory(xFactory, uno::UNO_QUERY); + OSL_ASSERT( xServiceFactory.is() ); + + if (xServiceFactory.is()) + { + sal_Bool bRet = + ::ucb::ContentBroker::initialize(xServiceFactory, + aUcbInitSequence); + + OSL_ASSERT(bRet); + if (bRet) + { + uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > + xNameContainer(xFactory->createInstanceWithContext + (::rtl::OUString::createFromAscii + ("com.sun.star.ucb.SimpleFileAccess" ), + xComponentContext), uno::UNO_QUERY ); + + if (xNameContainer.is()) + { + xSimpleFileAccess = xNameContainer; + + bResult = true; + } + } + } + + CPPUNIT_ASSERT_MESSAGE("UNO initialization failed", + bResult); + } + + // insert your test code here. + void testOpenFile() + { + try + { + rtl_uString *dir=NULL; + osl_getProcessWorkingDir(&dir); + rtl_uString *fname=NULL; + //rtl_uString_newFromAscii(&fname, "/OpenDocument-v1.doc"); + rtl_uString_newFromAscii(&fname, "/test.doc"); + //rtl_uString_newFromAscii(&fname, "/numbers.doc"); + rtl_uString *absfile=NULL; + rtl_uString_newConcat(&absfile, dir, fname); + + rtl::OUString sInputFileURL( absfile ); + + for (sal_uInt32 n = 0; n < sInputFileURL.getLength(); ++n) + { + sal_uChar nC = sInputFileURL[n]; + + if (nC < 0xff && isprint(nC)) + clog << static_cast<char>(nC); + else + clog << "."; + } + + clog << endl; + + xStream = xSimpleFileAccess->openFileRead(sInputFileURL); + + WW8Stream::Pointer_t pStream = + WW8DocumentFactory::createStream(xContext, xStream); + + pDocument = WW8DocumentFactory::createDocument(pStream); + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + + CPPUNIT_ASSERT_MESSAGE("creating document failed", + pDocument != NULL); + +#if 1 + } + + void testTraversal() + { +#endif + sal_uInt32 nResult = 0; + + try + { + WW8DocumentIterator::Pointer_t pIt = pDocument->begin(); + WW8DocumentIterator::Pointer_t pItEnd = pDocument->end(); + + while (! pIt->equal(*pItEnd)) + { + pIt->dump(clog); + + clog << endl; + + WW8PropertySet::Pointer_t pAttrs = pIt->getProperties(); + + if (pAttrs != NULL) + { + pAttrs->dump(clog); + } + + pIt->getText().dump(clog); + ++(*pIt); + ++nResult; + } + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + + char sBuffer[256]; + snprintf(sBuffer, 255, "%d", nResult); + clog << "Iterator steps:" << sBuffer << endl; + + CPPUNIT_ASSERT_MESSAGE("traversing document failed", + nResult > 0); + } + + void testEvents() + { + try + { + Stream::Pointer_t pStream = doctok::createStreamHandler(); + + pDocument->resolve(*pStream); + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + } + + void testEnd() + { + ::ucb::ContentBroker::deinitialize(); + } + + // 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(test); + CPPUNIT_TEST(testInitUno); + CPPUNIT_TEST(testOpenFile); + //CPPUNIT_TEST(testTraversal); + CPPUNIT_TEST(testEvents); + CPPUNIT_TEST(testEnd); + CPPUNIT_TEST_SUITE_END(); + }; // class test + + // ----------------------------------------------------------------------------- + CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testdoctok::test, "doctok"); +} // namespace doctok + + +// ----------------------------------------------------------------------------- + +// 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; + |