| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| // autogenerated file with codegen.pl |
| |
| #include "gtest/gtest.h" |
| |
| #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 <resourcemodel/exceptions.hxx> |
| #include <doctok/WW8Document.hxx> |
| #include <resourcemodel/WW8ResourceModel.hxx> |
| |
| #include <iostream> |
| |
| namespace testdoctok |
| { |
| using namespace ::std; |
| using namespace ::com::sun::star; |
| using namespace ::writerfilter::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 ::testing::Test |
| { |
| |
| public: |
| // initialise your test code values here. |
| void SetUp() |
| { |
| } |
| |
| void TearDown() |
| { |
| } |
| }; // class test |
| |
| TEST_F(test, 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 = |
| ::ucbhelper::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; |
| } |
| } |
| } |
| |
| ASSERT_TRUE(bResult) << "UNO initialization failed"; |
| } |
| |
| // insert your test code here. |
| TEST_F(test, 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 = WW8Document::Pointer_t(WW8DocumentFactory::createDocument(pStream)); |
| } |
| catch (::writerfilter::Exception e) |
| { |
| clog << "Exception!!" << endl; |
| } |
| |
| ASSERT_TRUE(pDocument != NULL) << "creating document failed"; |
| |
| #if 1 |
| } |
| |
| TEST_F(test, 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; |
| |
| // Doesn't compile: |
| // WW8PropertySet::Pointer_t pAttrs = pIt->getProperties(); |
| // |
| // if (pAttrs != NULL) |
| // { |
| // pAttrs->dump(clog); |
| // } |
| |
| pIt->getText().dump(clog); |
| ++(*pIt); |
| ++nResult; |
| } |
| } |
| catch (::writerfilter::Exception e) |
| { |
| clog << "Exception!!" << endl; |
| } |
| |
| char sBuffer[256]; |
| snprintf(sBuffer, 255, "%d", nResult); |
| clog << "Iterator steps:" << sBuffer << endl; |
| |
| ASSERT_TRUE(nResult > 0) << "traversing document failed"; |
| } |
| |
| TEST_F(test, testEvents) |
| { |
| try |
| { |
| ::writerfilter::Stream::Pointer_t pStream = ::writerfilter::createStreamHandler(); |
| |
| pDocument->resolve(*pStream); |
| } |
| catch (::writerfilter::Exception e) |
| { |
| clog << "Exception!!" << endl; |
| } |
| } |
| |
| TEST_F(test, testEnd) |
| { |
| ::ucbhelper::ContentBroker::deinitialize(); |
| } |
| |
| |
| } // namespace doctok |
| |
| |
| int main(int argc, char **argv) |
| { |
| osl_setCommandArgs(argc, argv); |
| ::testing::InitGoogleTest(&argc, argv); |
| return RUN_ALL_TESTS(); |
| } |