From f471c55378290fb8dc3571c74cc6abe90d81c46c Mon Sep 17 00:00:00 2001 From: osnola Date: Wed, 10 Aug 2016 13:26:58 +0200 Subject: [PATCH] add test files for libstaroffice Change-Id: Iabb5965eb09e9128f2cfc720bf69e97f6a96fa22 --- config_host/config_writerperfect.h.in | 4 ++++ configure.ac | 1 + writerperfect/qa/unit/WpftCalcFilterTest.cxx | 1 + writerperfect/qa/unit/WpftDrawFilterTest.cxx | 5 +++++ writerperfect/qa/unit/WpftImportTestBase.hxx | 3 +++ writerperfect/qa/unit/WpftWriterFilterTest.cxx | 5 +++++ .../data/calc/libstaroffice/fail/.gitignore | 0 .../calc/libstaroffice/indeterminate/.gitignore | 0 .../data/calc/libstaroffice/pass/Calc_3.1.sdc | Bin 0 -> 11776 bytes .../data/draw/libstaroffice/fail/.gitignore | 0 .../draw/libstaroffice/indeterminate/.gitignore | 0 .../data/draw/libstaroffice/pass/Draw_3.1.sda | Bin 0 -> 23040 bytes .../data/writer/libstaroffice/fail/.gitignore | 0 .../libstaroffice/indeterminate/.gitignore | 0 .../writer/libstaroffice/pass/Writer_3.1.sdw | Bin 0 -> 10752 bytes 15 files changed, 19 insertions(+) create mode 100644 writerperfect/qa/unit/data/calc/libstaroffice/fail/.gitignore create mode 100644 writerperfect/qa/unit/data/calc/libstaroffice/indeterminate/.gitignore create mode 100644 writerperfect/qa/unit/data/calc/libstaroffice/pass/Calc_3.1.sdc create mode 100644 writerperfect/qa/unit/data/draw/libstaroffice/fail/.gitignore create mode 100644 writerperfect/qa/unit/data/draw/libstaroffice/indeterminate/.gitignore create mode 100644 writerperfect/qa/unit/data/draw/libstaroffice/pass/Draw_3.1.sda create mode 100644 writerperfect/qa/unit/data/writer/libstaroffice/fail/.gitignore create mode 100644 writerperfect/qa/unit/data/writer/libstaroffice/indeterminate/.gitignore create mode 100644 writerperfect/qa/unit/data/writer/libstaroffice/pass/Writer_3.1.sdw diff --git a/config_host/config_writerperfect.h.in b/config_host/config_writerperfect.h.in index b42b3a7d9ccb..8d2d819dd6d7 100644 --- a/config_host/config_writerperfect.h.in +++ b/config_host/config_writerperfect.h.in @@ -24,6 +24,10 @@ #undef MWAW_VERSION_MINOR #undef MWAW_VERSION_MICRO +#undef STAROFFICE_VERSION_MAJOR +#undef STAROFFICE_VERSION_MINOR +#undef STAROFFICE_VERSION_MICRO + #undef WPS_VERSION_MAJOR #undef WPS_VERSION_MINOR #undef WPS_VERSION_MICRO diff --git a/configure.ac b/configure.ac index 6a1e021ed403..627794281c37 100644 --- a/configure.ac +++ b/configure.ac @@ -7913,6 +7913,7 @@ dnl =================================================================== dnl Check for system libstaroffice dnl =================================================================== libo_CHECK_SYSTEM_MODULE([libstaroffice],[STAROFFICE],[libstaroffice-0.0]) +libo_PKG_VERSION([STAROFFICE], [libstaroffice-0.0], [0.0.2]) dnl =================================================================== dnl Check for system libvisio diff --git a/writerperfect/qa/unit/WpftCalcFilterTest.cxx b/writerperfect/qa/unit/WpftCalcFilterTest.cxx index 848f7e218f32..98c43024a821 100644 --- a/writerperfect/qa/unit/WpftCalcFilterTest.cxx +++ b/writerperfect/qa/unit/WpftCalcFilterTest.cxx @@ -39,6 +39,7 @@ void WpftCalcFilterTest::test() doTest("com.sun.star.comp.Calc.MWAWCalcImportFilter", "/writerperfect/qa/unit/data/calc/libmwaw/"); doTest("com.sun.star.comp.Calc.MSWorksCalcImportFilter", "/writerperfect/qa/unit/data/calc/libwps/"); doTest("org.libreoffice.comp.Calc.NumbersImportFilter", "/writerperfect/qa/unit/data/calc/libetonyek/", aEtonyekOptional); + doTest("org.libreoffice.comp.Calc.StarOfficeCalcImportFilter", "/writerperfect/qa/unit/data/calc/libstaroffice/"); } CPPUNIT_TEST_SUITE_REGISTRATION(WpftCalcFilterTest); diff --git a/writerperfect/qa/unit/WpftDrawFilterTest.cxx b/writerperfect/qa/unit/WpftDrawFilterTest.cxx index c5288eedf20b..b2c9bb823b6d 100644 --- a/writerperfect/qa/unit/WpftDrawFilterTest.cxx +++ b/writerperfect/qa/unit/WpftDrawFilterTest.cxx @@ -45,6 +45,10 @@ void WpftDrawFilterTest::test() {"MacDraw_II.hqx", REQUIRE_MWAW_VERSION(0, 3, 3)}, {"MacDraw_Pro_1.0.hqx", REQUIRE_MWAW_VERSION(0, 3, 4)}, }; + const writerperfect::test::WpftOptionalMap_t aStarOfficeOptional + { + {"Draw_3.1.sda", REQUIRE_STAROFFICE_VERSION(0, 0, 1)}, + }; doTest("com.sun.star.comp.Draw.CDRImportFilter", "/writerperfect/qa/unit/data/draw/libcdr/"); doTest("com.sun.star.comp.Draw.CMXImportFilter", "/writerperfect/qa/unit/data/draw/libcdr-cmx/"); @@ -54,6 +58,7 @@ void WpftDrawFilterTest::test() doTest("com.sun.star.comp.Draw.VisioImportFilter", "/writerperfect/qa/unit/data/draw/libvisio/"); doTest("com.sun.star.comp.Draw.WPGImportFilter", "/writerperfect/qa/unit/data/draw/libwpg/"); doTest("org.libreoffice.comp.Draw.PageMakerImportFilter", "/writerperfect/qa/unit/data/draw/libpagemaker/"); + doTest("org.libreoffice.comp.Draw.StarOfficeDrawImportFilter", "/writerperfect/qa/unit/data/draw/libstaroffice/", aStarOfficeOptional); doTest("org.libreoffice.comp.Draw.ZMFImportFilter", "/writerperfect/qa/unit/data/draw/libzmf/"); } diff --git a/writerperfect/qa/unit/WpftImportTestBase.hxx b/writerperfect/qa/unit/WpftImportTestBase.hxx index ce7017240a70..a3baec93a3e7 100644 --- a/writerperfect/qa/unit/WpftImportTestBase.hxx +++ b/writerperfect/qa/unit/WpftImportTestBase.hxx @@ -38,6 +38,9 @@ #define REQUIRE_MWAW_VERSION(major, minor, micro) \ REQUIRE_VERSION(MWAW_VERSION_MAJOR, MWAW_VERSION_MINOR, MWAW_VERSION_MICRO, major, minor, micro) +#define REQUIRE_STAROFFICE_VERSION(major, minor, micro) \ + REQUIRE_VERSION(STAROFFICE_VERSION_MAJOR, STAROFFICE_VERSION_MINOR, STAROFFICE_VERSION_MICRO, major, minor, micro) + #define REQUIRE_WPS_VERSION(major, minor, micro) \ REQUIRE_VERSION(WPS_VERSION_MAJOR, WPS_VERSION_MINOR, WPS_VERSION_MICRO, major, minor, micro) diff --git a/writerperfect/qa/unit/WpftWriterFilterTest.cxx b/writerperfect/qa/unit/WpftWriterFilterTest.cxx index bf97854b9076..3e9c6bad9105 100644 --- a/writerperfect/qa/unit/WpftWriterFilterTest.cxx +++ b/writerperfect/qa/unit/WpftWriterFilterTest.cxx @@ -47,6 +47,10 @@ void WpftWriterFilterTest::test() {"RagTime_3.2.hqx", REQUIRE_MWAW_VERSION(0, 3, 2)}, {"RagTime_5.5.rag", REQUIRE_MWAW_VERSION(0, 3, 6)}, }; + const writerperfect::test::WpftOptionalMap_t aStarOfficeOptional + { + {"Writer_3.1.sdw", REQUIRE_STAROFFICE_VERSION(0, 0, 2)}, + }; const writerperfect::test::WpftOptionalMap_t aWpsOptional { {"Word_5.0_DOS.doc", REQUIRE_WPS_VERSION(0, 4, 3)}, @@ -58,6 +62,7 @@ void WpftWriterFilterTest::test() doTest("com.sun.star.comp.Writer.MSWorksImportFilter", "/writerperfect/qa/unit/data/writer/libwps/", aWpsOptional); doTest("com.sun.star.comp.Writer.MWAWImportFilter", "/writerperfect/qa/unit/data/writer/libmwaw/", aMWAWOptional); doTest("org.libreoffice.comp.Writer.PagesImportFilter", "/writerperfect/qa/unit/data/writer/libetonyek/", aEtonyekOptional); + doTest("org.libreoffice.comp.Writer.StarOfficeWriterImportFilter", "/writerperfect/qa/unit/data/writer/libstaroffice/", aStarOfficeOptional); doTest("com.sun.star.comp.Writer.WordPerfectImportFilter", "/writerperfect/qa/unit/data/writer/libwpd/"); } diff --git a/writerperfect/qa/unit/data/calc/libstaroffice/fail/.gitignore b/writerperfect/qa/unit/data/calc/libstaroffice/fail/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/writerperfect/qa/unit/data/calc/libstaroffice/indeterminate/.gitignore b/writerperfect/qa/unit/data/calc/libstaroffice/indeterminate/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/writerperfect/qa/unit/data/calc/libstaroffice/pass/Calc_3.1.sdc b/writerperfect/qa/unit/data/calc/libstaroffice/pass/Calc_3.1.sdc new file mode 100644 index 0000000000000000000000000000000000000000..683d1a85cc5f420ec15d0f39f1965519cf645cff GIT binary patch literal 11776 zcmeHNeQaA-6+h2*5~p4Jl9rZsYa1`?@{%PZu{#Q*o9euLv{@I`TQcY%ns90-4LEji zlC_&UU=ow|Pk~Am&`w*sQCilqkFFb{Pyu2BfwXBALINa&${$Gl#YUweF|mf<@80+P z950IzNdySL-2;S?Q zdBjEnvW^ek}0hdTQt3&NDx}q3(D*;M*hOnNdCO2wzM z=zpj%9esG4@uRn@jgk@J@AD^@V?fel;}i4a&f8j4(!A7YTr`7X0zT~R|8oOW3w<%v zG0RYMYUN;tOU8_pjJd5iCZ`(x_Sm^<%;c|qe8IE1L&9wx?H%pgBa!y)w?*2*9UVJ5 zc1#`oROA!Lv~Nd~{zcpzMSAHPA`b(@kDa{wue}HAo;wHMz0Pcg21N?wv0ImtA0NlHH_MN>t%wO+nN7_>Il+7goucGNzdo$2) zw0Q=v#fcqDbUG2wCRhv@Z8r7x`?lKbr;=?WBR8wENbI$>_5&bw@#^ht9rpBkANB*{ z8HqZnBWtXO1G!~CmdT_T6a*xMmR>erFd@4Go5V#Jr@>066y9ZqKP7cG^FRdScXD4{8jYaI}Q`6b6hPgm)+{nyo_`=XMw8 zgoDFyN+Ntv37r9@&cNSvCO|=!#nU*ja;jWXOseUR$`(=UF!HDjxnlmNFgV_H0vE`w z(|QD$XvTp|tGya*IF4Tj9)Vb0)}yG)$GXkIBJMdf5bHbmsabJPwc_QIBMcWo7nb+% zzSS`D-005;D$xZ$LdBlM*i=t?bS$0hn@Wx=S30d-$uAA)y&)&f7fth|dCGj+e8&8) zdD{G*dB!|ze&2l7JZC;<{=j_RJa4}21Kx#VcrSp}OXkZ!e8n$Mny;AVljc)%@b)-s z3h*b5`KpR_x1&GwR}37TT;z7H3aS)CW*16o2#{Bnf(ZgJQ&}cx#K2X83GRTNo(b+k zi6*F#p}|i3?w%pf5@kC>8`iZ-utYDH>zp$TqBPqXIOD>ys$7TIhMlPr%+L=#Ju`d` zC7Pkmb%;>&P;Va`1M!?YN6Pk$UTo5pV3N=CFp=|&G)l8QBP=V+^@=_$wv}Ll{oE9C zCioIcG{I^a>h2uu8EOj+4fgeWs|7cfeT{xOj-T?AyWP#@uV`V97qPhv@5|HXLFu{3#eaV^NXDHDG z>+4E>{cK7vq5dP53NKvD#8 zIKCj-e}HEG-{HaIZlsQb^eYZa2r0<{o8uGq$nz>Sr%OuyguIiZ^Q7k6C*GC3YkrC1bo>BK}os+f&M-qGJL;noPP5_Eke82!1ji6iOlo%~aXCpgOcGDGWz{X(i^_C0t}Hy?KK zj*o>~5EF^5beef$-lv;I>7ggk54sz z`K=fMbduG)m&en>#X4!d6q`tlXhXRCytd_BX%<+@|Nn4!3jaeemlkThWKfG_NEiNp zG>&g?du3R@peq;fTm$EzdyuDE$xEbFQxv!coD>toxbjo#8DSW7}UJdxoF^R8Z zlQIV2zp#=@n{mAPZ>-6p>>43I04%P8)S)N=5NIpCB#R8-M0yCv@r>-pxz?522k9fI zE1p7-&kOK{^q=~ES~-C$|1;=+8dEtV2TSO4zEOuco+OKR=`1M5kGzv{3o{AK4O#R%|L+{(k`Hp3=nt literal 0 HcmV?d00001 diff --git a/writerperfect/qa/unit/data/draw/libstaroffice/fail/.gitignore b/writerperfect/qa/unit/data/draw/libstaroffice/fail/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/writerperfect/qa/unit/data/draw/libstaroffice/indeterminate/.gitignore b/writerperfect/qa/unit/data/draw/libstaroffice/indeterminate/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/writerperfect/qa/unit/data/draw/libstaroffice/pass/Draw_3.1.sda b/writerperfect/qa/unit/data/draw/libstaroffice/pass/Draw_3.1.sda new file mode 100644 index 0000000000000000000000000000000000000000..bd03aa7c176e053501d395cb2351030c10af5824 GIT binary patch literal 23040 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