summaryrefslogtreecommitdiff
path: root/writerfilter/qa/cppunittests/doctok
diff options
context:
space:
mode:
Diffstat (limited to 'writerfilter/qa/cppunittests/doctok')
-rw-r--r--writerfilter/qa/cppunittests/doctok/doctok.job1
-rw-r--r--writerfilter/qa/cppunittests/doctok/export.map7
-rw-r--r--writerfilter/qa/cppunittests/doctok/makefile.mk72
-rw-r--r--writerfilter/qa/cppunittests/doctok/testdoctok.cxx228
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;
+