Kaydet (Commit) 2dd8e2ce authored tarafından David Tardon's avatar David Tardon

add test for structured content

Change-Id: I039e5ccfd6946f3f16505b6265e248fbead37a64
üst a6b0c67e
...@@ -34,6 +34,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_stream,\ ...@@ -34,6 +34,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_stream,\
sot \ sot \
test \ test \
tl \ tl \
unotest \
utl \ utl \
)) ))
...@@ -45,6 +46,8 @@ $(eval $(call gb_CppunitTest_use_configuration,writerperfect_stream)) ...@@ -45,6 +46,8 @@ $(eval $(call gb_CppunitTest_use_configuration,writerperfect_stream))
$(eval $(call gb_CppunitTest_use_components,writerperfect_stream,\ $(eval $(call gb_CppunitTest_use_components,writerperfect_stream,\
configmgr/source/configmgr \ configmgr/source/configmgr \
i18npool/util/i18npool \
package/util/package2 \
ucb/source/core/ucb1 \ ucb/source/core/ucb1 \
ucb/source/ucp/file/ucpfile1 \ ucb/source/ucp/file/ucpfile1 \
)) ))
......
...@@ -16,8 +16,10 @@ ...@@ -16,8 +16,10 @@
#include <cppunit/plugin/TestPlugIn.h> #include <cppunit/plugin/TestPlugIn.h>
#include "com/sun/star/io/XInputStream.hpp" #include "com/sun/star/io/XInputStream.hpp"
#include "com/sun/star/ucb/XSimpleFileAccess.hpp"
#include "com/sun/star/uno/Reference.hxx" #include "com/sun/star/uno/Reference.hxx"
#include "comphelper/processfactory.hxx"
#include "comphelper/seqstream.hxx" #include "comphelper/seqstream.hxx"
#include "rtl/ref.hxx" #include "rtl/ref.hxx"
...@@ -27,6 +29,7 @@ ...@@ -27,6 +29,7 @@
#include "WPXSvStream.hxx" #include "WPXSvStream.hxx"
namespace io = com::sun::star::io; namespace io = com::sun::star::io;
namespace ucb = com::sun::star::ucb;
namespace uno = com::sun::star::uno; namespace uno = com::sun::star::uno;
using boost::shared_ptr; using boost::shared_ptr;
...@@ -44,6 +47,7 @@ public: ...@@ -44,6 +47,7 @@ public:
CPPUNIT_TEST(testSeekSet); CPPUNIT_TEST(testSeekSet);
CPPUNIT_TEST(testSeekCur); CPPUNIT_TEST(testSeekCur);
CPPUNIT_TEST(testSeekEnd); CPPUNIT_TEST(testSeekEnd);
CPPUNIT_TEST(testStructured);
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
private: private:
...@@ -51,9 +55,12 @@ private: ...@@ -51,9 +55,12 @@ private:
void testSeekSet(); void testSeekSet();
void testSeekCur(); void testSeekCur();
void testSeekEnd(); void testSeekEnd();
void testStructured();
}; };
static const char aText[] = "hello world"; static const char aText[] = "hello world";
static const char aOLEFile[] = "/writerperfect/qa/unit/data/fdo40686-1.doc";
static const char aZipFile[] = "/writerperfect/qa/unit/data/test.odt";
shared_ptr<WPXInputStream> lcl_createStream() shared_ptr<WPXInputStream> lcl_createStream()
{ {
...@@ -69,6 +76,21 @@ shared_ptr<WPXInputStream> lcl_createStream() ...@@ -69,6 +76,21 @@ shared_ptr<WPXInputStream> lcl_createStream()
return pInputStream; return pInputStream;
} }
const shared_ptr<WPXInputStream> lcl_createStreamForURL(const rtl::OUString &rURL)
{
using uno::Reference;
using uno::UNO_QUERY_THROW;
const Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext(), UNO_QUERY_THROW);
const Reference<ucb::XSimpleFileAccess> xFileAccess(
xContext->getServiceManager()->createInstanceWithContext("com.sun.star.ucb.SimpleFileAccess", xContext),
UNO_QUERY_THROW);
const Reference<io::XInputStream> xInputStream(xFileAccess->openFileRead(rURL), UNO_QUERY_THROW);
const shared_ptr<WPXInputStream> pInput(new WPXSvInputStream(xInputStream));
return pInput;
}
void WPXSvStreamTest::testRead() void WPXSvStreamTest::testRead()
{ {
const shared_ptr<WPXInputStream> pInput(lcl_createStream()); const shared_ptr<WPXInputStream> pInput(lcl_createStream());
...@@ -244,6 +266,41 @@ void WPXSvStreamTest::testSeekEnd() ...@@ -244,6 +266,41 @@ void WPXSvStreamTest::testSeekEnd()
CPPUNIT_ASSERT(!pInput->atEOS()); CPPUNIT_ASSERT(!pInput->atEOS());
} }
void WPXSvStreamTest::testStructured()
{
// OLE2
{
const shared_ptr<WPXInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aOLEFile)));
assert(bool(pInput));
CPPUNIT_ASSERT(pInput->isOLEStream());
shared_ptr<WPXInputStream> pSubStream(pInput->getDocumentOLEStream("WordDocument"));
CPPUNIT_ASSERT(bool(pSubStream));
pSubStream.reset(pInput->getDocumentOLEStream("foo"));
CPPUNIT_ASSERT(!pSubStream);
}
// Zip
{
const shared_ptr<WPXInputStream> pInput(lcl_createStreamForURL(getURLFromSrc(aZipFile)));
assert(bool(pInput));
CPPUNIT_ASSERT(pInput->isOLEStream());
shared_ptr<WPXInputStream> pSubStream(pInput->getDocumentOLEStream("content.xml"));
CPPUNIT_ASSERT(bool(pSubStream));
pSubStream.reset(pInput->getDocumentOLEStream("foo"));
CPPUNIT_ASSERT(!pSubStream);
}
// not structured
{
const shared_ptr<WPXInputStream> pInput(lcl_createStream());
CPPUNIT_ASSERT(!pInput->isOLEStream());
CPPUNIT_ASSERT(0 == pInput->getDocumentOLEStream("foo"));
}
}
CPPUNIT_TEST_SUITE_REGISTRATION(WPXSvStreamTest); CPPUNIT_TEST_SUITE_REGISTRATION(WPXSvStreamTest);
} }
......
This diff was suppressed by a .gitattributes entry.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment