[Libreoffice-commits] core.git: sw/CppunitTest_sw_ooxmlexport8.mk sw/CppunitTest_sw_ooxmlexport9.mk sw/Module_sw.mk sw/ooxmlexport_setup.mk sw/qa
Justin Luth
justin_luth at sil.org
Tue Oct 11 05:12:24 UTC 2016
dev/null |binary
sw/CppunitTest_sw_ooxmlexport8.mk | 104
sw/CppunitTest_sw_ooxmlexport9.mk | 16
sw/Module_sw.mk | 2
sw/ooxmlexport_setup.mk | 1
sw/qa/extras/ooxmlexport/data/all_gaps_word.docx |binary
sw/qa/extras/ooxmlexport/data/annotation-formatting.docx |binary
sw/qa/extras/ooxmlexport/data/bnc780044_spacing.docx |binary
sw/qa/extras/ooxmlexport/data/bnc865381.docx |binary
sw/qa/extras/ooxmlexport/data/bnc875718.docx |binary
sw/qa/extras/ooxmlexport/data/bnc891663.docx |binary
sw/qa/extras/ooxmlexport/data/caption.docx |binary
sw/qa/extras/ooxmlexport/data/chart-prop.docx |binary
sw/qa/extras/ooxmlexport/data/chart-size.docx |binary
sw/qa/extras/ooxmlexport/data/chtoutline.docx |binary
sw/qa/extras/ooxmlexport/data/conditionalstyles-tbllook.docx |binary
sw/qa/extras/ooxmlexport/data/dml-charheight-default.docx |binary
sw/qa/extras/ooxmlexport/data/dml-groupshape-capitalization.docx |binary
sw/qa/extras/ooxmlexport/data/dml-groupshape-runfonts.docx |binary
sw/qa/extras/ooxmlexport/data/dml-groupshape-sdt.docx |binary
sw/qa/extras/ooxmlexport/data/fdo38414.docx |binary
sw/qa/extras/ooxmlexport/data/fdo43093b.docx |binary
sw/qa/extras/ooxmlexport/data/fdo46361.docx |binary
sw/qa/extras/ooxmlexport/data/fdo49940.docx |binary
sw/qa/extras/ooxmlexport/data/fdo52208.docx |binary
sw/qa/extras/ooxmlexport/data/fdo53985.docx |binary
sw/qa/extras/ooxmlexport/data/fdo55187.docx |binary
sw/qa/extras/ooxmlexport/data/fdo59273.docx |binary
sw/qa/extras/ooxmlexport/data/fdo59638.docx |binary
sw/qa/extras/ooxmlexport/data/fdo60922.docx |binary
sw/qa/extras/ooxmlexport/data/fdo61343.docx |binary
sw/qa/extras/ooxmlexport/data/fdo63685.docx |binary
sw/qa/extras/ooxmlexport/data/fdo65090.docx |binary
sw/qa/extras/ooxmlexport/data/fdo65632.docx |binary
sw/qa/extras/ooxmlexport/data/fdo66474.docx |binary
sw/qa/extras/ooxmlexport/data/fdo68607.docx |binary
sw/qa/extras/ooxmlexport/data/fdo69548.docx |binary
sw/qa/extras/ooxmlexport/data/fdo70457.docx |binary
sw/qa/extras/ooxmlexport/data/fdo72560.docx |binary
sw/qa/extras/ooxmlexport/data/fdo73389.docx |binary
sw/qa/extras/ooxmlexport/data/fdo74357.docx |binary
sw/qa/extras/ooxmlexport/data/fdo74401.docx |binary
sw/qa/extras/ooxmlexport/data/fdo74745.docx |binary
sw/qa/extras/ooxmlexport/data/fdo78883.docx |binary
sw/qa/extras/ooxmlexport/data/fdo78904.docx |binary
sw/qa/extras/ooxmlexport/data/fdo78939.docx |binary
sw/qa/extras/ooxmlexport/data/fdo79535.docx |binary
sw/qa/extras/ooxmlexport/data/fdo79738.docx |binary
sw/qa/extras/ooxmlexport/data/fdo80555.docx |binary
sw/qa/extras/ooxmlexport/data/fdo81486.docx |binary
sw/qa/extras/ooxmlexport/data/fdo85542.docx |binary
sw/qa/extras/ooxmlexport/data/file_crash.docx |binary
sw/qa/extras/ooxmlexport/data/floating-tables-anchor.docx |binary
sw/qa/extras/ooxmlexport/data/footnote.docx |binary
sw/qa/extras/ooxmlexport/data/frame-wrap-auto.docx |binary
sw/qa/extras/ooxmlexport/data/gridbefore.docx |binary
sw/qa/extras/ooxmlexport/data/groupshape-rotation.docx |binary
sw/qa/extras/ooxmlexport/data/groupshape-smarttag.docx |binary
sw/qa/extras/ooxmlexport/data/groupshape-trackedchanges.docx |binary
sw/qa/extras/ooxmlexport/data/hello.docx |binary
sw/qa/extras/ooxmlexport/data/hidemark.docx |binary
sw/qa/extras/ooxmlexport/data/i124106.docx |binary
sw/qa/extras/ooxmlexport/data/imgshadow.docx |binary
sw/qa/extras/ooxmlexport/data/indentation.docx |binary
sw/qa/extras/ooxmlexport/data/indents.docx |binary
sw/qa/extras/ooxmlexport/data/inline-groupshape.docx |binary
sw/qa/extras/ooxmlexport/data/large-twips.docx |binary
sw/qa/extras/ooxmlexport/data/libreoffice.png |binary
sw/qa/extras/ooxmlexport/data/mathtype.docx |binary
sw/qa/extras/ooxmlexport/data/mce-nested.docx |binary
sw/qa/extras/ooxmlexport/data/mce-wpg.docx |binary
sw/qa/extras/ooxmlexport/data/missing-path.docx |binary
sw/qa/extras/ooxmlexport/data/msobrightnesscontrast.docx |binary
sw/qa/extras/ooxmlexport/data/n592908-frame.docx |binary
sw/qa/extras/ooxmlexport/data/n592908-picture.docx |binary
sw/qa/extras/ooxmlexport/data/n652364.docx |binary
sw/qa/extras/ooxmlexport/data/n693238.docx |binary
sw/qa/extras/ooxmlexport/data/n705956-1.docx |binary
sw/qa/extras/ooxmlexport/data/n705956-2.docx |binary
sw/qa/extras/ooxmlexport/data/n747461.docx |binary
sw/qa/extras/ooxmlexport/data/n750255.docx |binary
sw/qa/extras/ooxmlexport/data/n750935.docx |binary
sw/qa/extras/ooxmlexport/data/n751054.docx |binary
sw/qa/extras/ooxmlexport/data/n751117.docx |binary
sw/qa/extras/ooxmlexport/data/n764005.docx |binary
sw/qa/extras/ooxmlexport/data/n766481.docx |binary
sw/qa/extras/ooxmlexport/data/n766487.docx |binary
sw/qa/extras/ooxmlexport/data/n775906.docx |binary
sw/qa/extras/ooxmlexport/data/n777337.docx |binary
sw/qa/extras/ooxmlexport/data/n778828.docx |binary
sw/qa/extras/ooxmlexport/data/n778836.docx |binary
sw/qa/extras/ooxmlexport/data/n779630.docx |binary
sw/qa/extras/ooxmlexport/data/n779642.docx |binary
sw/qa/extras/ooxmlexport/data/n779834.docx |binary
sw/qa/extras/ooxmlexport/data/n779941.docx |binary
sw/qa/extras/ooxmlexport/data/n780563.docx |binary
sw/qa/extras/ooxmlexport/data/n780843.docx |binary
sw/qa/extras/ooxmlexport/data/n780843b.docx |binary
sw/qa/extras/ooxmlexport/data/n780853.docx |binary
sw/qa/extras/ooxmlexport/data/n782345.docx |binary
sw/qa/extras/ooxmlexport/data/n783638.docx |binary
sw/qa/extras/ooxmlexport/data/n785767.docx |binary
sw/qa/extras/ooxmlexport/data/n792778.docx |binary
sw/qa/extras/ooxmlexport/data/n793262.docx |binary
sw/qa/extras/ooxmlexport/data/n793998.docx |binary
sw/qa/extras/ooxmlexport/data/n816593.docx |binary
sw/qa/extras/ooxmlexport/data/n820509.docx |binary
sw/qa/extras/ooxmlexport/data/n830205.docx |binary
sw/qa/extras/ooxmlexport/data/negative-cell-margin-twips.docx |binary
sw/qa/extras/ooxmlexport/data/numbering1.docx |binary
sw/qa/extras/ooxmlexport/data/page-border-shadow.docx |binary
sw/qa/extras/ooxmlexport/data/picture-with-schemecolor.docx |binary
sw/qa/extras/ooxmlexport/data/rhbz1180114.docx |binary
sw/qa/extras/ooxmlexport/data/rprchange_closed.docx |binary
sw/qa/extras/ooxmlexport/data/section_break_numbering.docx |binary
sw/qa/extras/ooxmlexport/data/strict-smartart.docx |binary
sw/qa/extras/ooxmlexport/data/strict.docx |binary
sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size.docx |binary
sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size2.docx |binary
sw/qa/extras/ooxmlexport/data/table-auto-nested.docx |binary
sw/qa/extras/ooxmlexport/data/table-btlr-center.docx |binary
sw/qa/extras/ooxmlexport/data/table-pagebreak.docx |binary
sw/qa/extras/ooxmlexport/data/table-style-parprop.docx |binary
sw/qa/extras/ooxmlexport/data/tableborder-finedash.docx |binary
sw/qa/extras/ooxmlexport/data/tblr-height.docx |binary
sw/qa/extras/ooxmlexport/data/tcw-rounding.docx |binary
sw/qa/extras/ooxmlexport/data/tdf59699.docx |binary
sw/qa/extras/ooxmlexport/data/tdf78902.docx |binary
sw/qa/extras/ooxmlexport/data/tdf8255.docx |binary
sw/qa/extras/ooxmlexport/data/tdf83300.docx |binary
sw/qa/extras/ooxmlexport/data/tdf86374.docx |binary
sw/qa/extras/ooxmlexport/data/tdf87460.docx |binary
sw/qa/extras/ooxmlexport/data/tdf87924.docx |binary
sw/qa/extras/ooxmlexport/data/tdf89165.docx |binary
sw/qa/extras/ooxmlexport/data/tdf89702.docx |binary
sw/qa/extras/ooxmlexport/data/tdf90153.docx |binary
sw/qa/extras/ooxmlexport/data/tdf90611.docx |binary
sw/qa/extras/ooxmlexport/data/tdf90810short.docx |binary
sw/qa/extras/ooxmlexport/data/tdf91122.docx |binary
sw/qa/extras/ooxmlexport/data/tdf91260.docx |binary
sw/qa/extras/ooxmlexport/data/tdf91417.docx |binary
sw/qa/extras/ooxmlexport/data/tdf92045.docx |binary
sw/qa/extras/ooxmlexport/data/tdf92124.docx |binary
sw/qa/extras/ooxmlexport/data/tdf92157.docx |binary
sw/qa/extras/ooxmlexport/data/tdf92454.docx |binary
sw/qa/extras/ooxmlexport/data/tdf93919.docx |binary
sw/qa/extras/ooxmlexport/data/tdf94043.docx |binary
sw/qa/extras/ooxmlexport/data/tdf94374.docx |binary
sw/qa/extras/ooxmlexport/data/tdf95213.docx |binary
sw/qa/extras/ooxmlexport/data/tdf95376.docx |binary
sw/qa/extras/ooxmlexport/data/tdf95775.docx |binary
sw/qa/extras/ooxmlexport/data/tdf95777.docx |binary
sw/qa/extras/ooxmlexport/data/tdf97371.docx |binary
sw/qa/extras/ooxmlexport/data/tdf99140.docx |binary
sw/qa/extras/ooxmlexport/data/test_extra_image.docx |binary
sw/qa/extras/ooxmlexport/data/textbox-wpg-only.docx |binary
sw/qa/extras/ooxmlexport/data/tools-line-numbering.docx |binary
sw/qa/extras/ooxmlexport/data/vml-text-vertical-adjust.docx |binary
sw/qa/extras/ooxmlexport/data/wpg-nested.docx |binary
sw/qa/extras/ooxmlexport/data/wpg-only.docx |binary
sw/qa/extras/ooxmlexport/data/wps-only.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport8.cxx | 2082 +++++++++
sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 45
sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 2130 ----------
164 files changed, 2303 insertions(+), 2077 deletions(-)
New commits:
commit 086550313260d9fa45b91dc705b21bb9b51ce0b8
Author: Justin Luth <justin_luth at sil.org>
Date: Fri Oct 7 13:44:01 2016 +0300
move round-tripables to ooxmlexport
This serves two purposes. It helps to prevent regressions
and it allows focus on features that still don't export properly.
The standard .mk file had trouble on the Mac, so I ended up copying
ooxmlimport.mk instead of trying to tweak the export template.
The huge section of tests excluded from Win32 testing is still
excluded here.
The ole-anchor test works as export in the import code, but didn't
work from the ooxmlexport directory, so left that one as import only.
Change-Id: I9d72202c577940ba94855096c5a11d4dec4790a5
Reviewed-on: https://gerrit.libreoffice.org/29588
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Justin Luth <justin_luth at sil.org>
diff --git a/sw/CppunitTest_sw_ooxmlexport8.mk b/sw/CppunitTest_sw_ooxmlexport8.mk
new file mode 100644
index 0000000..8bf3f5d
--- /dev/null
+++ b/sw/CppunitTest_sw_ooxmlexport8.mk
@@ -0,0 +1,104 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sw_ooxmlexport8))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sw_ooxmlexport8, \
+ sw/qa/extras/ooxmlexport/ooxmlexport8 \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sw_ooxmlexport8, \
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ sal \
+ test \
+ unotest \
+ utl \
+ sw \
+ tl \
+ vcl \
+ svxcore \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,sw_ooxmlexport8,\
+ boost_headers \
+ libxml2 \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sw_ooxmlexport8,\
+ -I$(SRCDIR)/sw/inc \
+ -I$(SRCDIR)/sw/source/core/inc \
+ -I$(SRCDIR)/sw/qa/extras/inc \
+ $$(INCLUDE) \
+))
+
+ifeq ($(OS),MACOSX)
+
+$(eval $(call gb_CppunitTest_add_cxxflags,sw_ooxmlexport8,\
+ $(gb_OBJCXXFLAGS) \
+))
+
+$(eval $(call gb_CppunitTest_use_system_darwin_frameworks,sw_ooxmlexport8,\
+ AppKit \
+))
+
+endif
+
+$(eval $(call gb_CppunitTest_use_sdk_api,sw_ooxmlexport8))
+
+$(eval $(call gb_CppunitTest_use_ure,sw_ooxmlexport8))
+$(eval $(call gb_CppunitTest_use_vcl,sw_ooxmlexport8))
+
+$(eval $(call gb_CppunitTest_use_components,sw_ooxmlexport8,\
+ basic/util/sb \
+ chart2/source/controller/chartcontroller \
+ chart2/source/chartcore \
+ canvas/source/factory/canvasfactory \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ drawinglayer/drawinglayer \
+ embeddedobj/util/embobj \
+ filter/source/config/cache/filterconfig1 \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ sw/util/sw \
+ sw/util/swd \
+ sw/util/msword \
+ sfx2/util/sfx \
+ starmath/util/sm \
+ svl/source/fsstor/fsstorage \
+ svl/util/svl \
+ svtools/util/svt \
+ svx/util/svx \
+ svx/util/svxcore \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/file/ucpfile1 \
+ unotools/util/utl \
+ unoxml/source/service/unoxml \
+ unoxml/source/rdf/unordf \
+ uui/util/uui \
+ writerfilter/util/writerfilter \
+ xmloff/util/xo \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sw_ooxmlexport8))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/CppunitTest_sw_ooxmlexport9.mk b/sw/CppunitTest_sw_ooxmlexport9.mk
new file mode 100644
index 0000000..9b7c409
--- /dev/null
+++ b/sw/CppunitTest_sw_ooxmlexport9.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#*************************************************************************
+
+include $(SRCDIR)/sw/ooxmlexport_setup.mk
+
+$(eval $(call sw_ooxmlexport_test,9))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 3341552..d63c5a2 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -59,6 +59,8 @@ $(eval $(call gb_Module_add_slowcheck_targets,sw,\
CppunitTest_sw_ooxmlexport5 \
CppunitTest_sw_ooxmlexport6 \
CppunitTest_sw_ooxmlexport7 \
+ CppunitTest_sw_ooxmlexport8 \
+ CppunitTest_sw_ooxmlexport9 \
CppunitTest_sw_ooxmlfieldexport \
CppunitTest_sw_ooxmlw14export \
CppunitTest_sw_ooxmlimport \
diff --git a/sw/ooxmlexport_setup.mk b/sw/ooxmlexport_setup.mk
index da06f1a..91ffc4b 100644
--- a/sw/ooxmlexport_setup.mk
+++ b/sw/ooxmlexport_setup.mk
@@ -20,6 +20,7 @@ define sw_ooxmlexport_libraries
unotest \
utl \
vcl \
+ svxcore \
$(gb_UWINAPI)
endef
diff --git a/sw/qa/extras/ooxmlimport/data/all_gaps_word.docx b/sw/qa/extras/ooxmlexport/data/all_gaps_word.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/all_gaps_word.docx
rename to sw/qa/extras/ooxmlexport/data/all_gaps_word.docx
diff --git a/sw/qa/extras/ooxmlimport/data/annotation-formatting.docx b/sw/qa/extras/ooxmlexport/data/annotation-formatting.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/annotation-formatting.docx
rename to sw/qa/extras/ooxmlexport/data/annotation-formatting.docx
diff --git a/sw/qa/extras/ooxmlimport/data/bnc780044_spacing.docx b/sw/qa/extras/ooxmlexport/data/bnc780044_spacing.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/bnc780044_spacing.docx
rename to sw/qa/extras/ooxmlexport/data/bnc780044_spacing.docx
diff --git a/sw/qa/extras/ooxmlimport/data/bnc865381.docx b/sw/qa/extras/ooxmlexport/data/bnc865381.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/bnc865381.docx
rename to sw/qa/extras/ooxmlexport/data/bnc865381.docx
diff --git a/sw/qa/extras/ooxmlimport/data/bnc875718.docx b/sw/qa/extras/ooxmlexport/data/bnc875718.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/bnc875718.docx
rename to sw/qa/extras/ooxmlexport/data/bnc875718.docx
diff --git a/sw/qa/extras/ooxmlimport/data/bnc891663.docx b/sw/qa/extras/ooxmlexport/data/bnc891663.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/bnc891663.docx
rename to sw/qa/extras/ooxmlexport/data/bnc891663.docx
diff --git a/sw/qa/extras/ooxmlimport/data/caption.docx b/sw/qa/extras/ooxmlexport/data/caption.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/caption.docx
rename to sw/qa/extras/ooxmlexport/data/caption.docx
diff --git a/sw/qa/extras/ooxmlimport/data/chart-prop.docx b/sw/qa/extras/ooxmlexport/data/chart-prop.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/chart-prop.docx
rename to sw/qa/extras/ooxmlexport/data/chart-prop.docx
diff --git a/sw/qa/extras/ooxmlimport/data/chart-size.docx b/sw/qa/extras/ooxmlexport/data/chart-size.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/chart-size.docx
rename to sw/qa/extras/ooxmlexport/data/chart-size.docx
diff --git a/sw/qa/extras/ooxmlimport/data/chtoutline.docx b/sw/qa/extras/ooxmlexport/data/chtoutline.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/chtoutline.docx
rename to sw/qa/extras/ooxmlexport/data/chtoutline.docx
diff --git a/sw/qa/extras/ooxmlimport/data/conditionalstyles-tbllook.docx b/sw/qa/extras/ooxmlexport/data/conditionalstyles-tbllook.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/conditionalstyles-tbllook.docx
rename to sw/qa/extras/ooxmlexport/data/conditionalstyles-tbllook.docx
diff --git a/sw/qa/extras/ooxmlimport/data/dml-charheight-default.docx b/sw/qa/extras/ooxmlexport/data/dml-charheight-default.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/dml-charheight-default.docx
rename to sw/qa/extras/ooxmlexport/data/dml-charheight-default.docx
diff --git a/sw/qa/extras/ooxmlimport/data/dml-groupshape-capitalization.docx b/sw/qa/extras/ooxmlexport/data/dml-groupshape-capitalization.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/dml-groupshape-capitalization.docx
rename to sw/qa/extras/ooxmlexport/data/dml-groupshape-capitalization.docx
diff --git a/sw/qa/extras/ooxmlimport/data/dml-groupshape-runfonts.docx b/sw/qa/extras/ooxmlexport/data/dml-groupshape-runfonts.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/dml-groupshape-runfonts.docx
rename to sw/qa/extras/ooxmlexport/data/dml-groupshape-runfonts.docx
diff --git a/sw/qa/extras/ooxmlimport/data/dml-groupshape-sdt.docx b/sw/qa/extras/ooxmlexport/data/dml-groupshape-sdt.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/dml-groupshape-sdt.docx
rename to sw/qa/extras/ooxmlexport/data/dml-groupshape-sdt.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo38414.docx b/sw/qa/extras/ooxmlexport/data/fdo38414.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo38414.docx
rename to sw/qa/extras/ooxmlexport/data/fdo38414.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo43093.docx b/sw/qa/extras/ooxmlexport/data/fdo43093b.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo43093.docx
rename to sw/qa/extras/ooxmlexport/data/fdo43093b.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo46361.docx b/sw/qa/extras/ooxmlexport/data/fdo46361.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo46361.docx
rename to sw/qa/extras/ooxmlexport/data/fdo46361.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo49940.docx b/sw/qa/extras/ooxmlexport/data/fdo49940.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo49940.docx
rename to sw/qa/extras/ooxmlexport/data/fdo49940.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo52208.docx b/sw/qa/extras/ooxmlexport/data/fdo52208.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo52208.docx
rename to sw/qa/extras/ooxmlexport/data/fdo52208.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo53985.docx b/sw/qa/extras/ooxmlexport/data/fdo53985.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo53985.docx
rename to sw/qa/extras/ooxmlexport/data/fdo53985.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo55187.docx b/sw/qa/extras/ooxmlexport/data/fdo55187.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo55187.docx
rename to sw/qa/extras/ooxmlexport/data/fdo55187.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo59273.docx b/sw/qa/extras/ooxmlexport/data/fdo59273.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo59273.docx
rename to sw/qa/extras/ooxmlexport/data/fdo59273.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo59638.docx b/sw/qa/extras/ooxmlexport/data/fdo59638.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo59638.docx
rename to sw/qa/extras/ooxmlexport/data/fdo59638.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo60922.docx b/sw/qa/extras/ooxmlexport/data/fdo60922.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo60922.docx
rename to sw/qa/extras/ooxmlexport/data/fdo60922.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo61343.docx b/sw/qa/extras/ooxmlexport/data/fdo61343.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo61343.docx
rename to sw/qa/extras/ooxmlexport/data/fdo61343.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo63685.docx b/sw/qa/extras/ooxmlexport/data/fdo63685.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo63685.docx
rename to sw/qa/extras/ooxmlexport/data/fdo63685.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo65090.docx b/sw/qa/extras/ooxmlexport/data/fdo65090.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo65090.docx
rename to sw/qa/extras/ooxmlexport/data/fdo65090.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo65632.docx b/sw/qa/extras/ooxmlexport/data/fdo65632.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo65632.docx
rename to sw/qa/extras/ooxmlexport/data/fdo65632.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo66474.docx b/sw/qa/extras/ooxmlexport/data/fdo66474.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo66474.docx
rename to sw/qa/extras/ooxmlexport/data/fdo66474.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo68607.docx b/sw/qa/extras/ooxmlexport/data/fdo68607.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo68607.docx
rename to sw/qa/extras/ooxmlexport/data/fdo68607.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo69548.docx b/sw/qa/extras/ooxmlexport/data/fdo69548.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo69548.docx
rename to sw/qa/extras/ooxmlexport/data/fdo69548.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo70457.docx b/sw/qa/extras/ooxmlexport/data/fdo70457.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo70457.docx
rename to sw/qa/extras/ooxmlexport/data/fdo70457.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo72560.docx b/sw/qa/extras/ooxmlexport/data/fdo72560.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo72560.docx
rename to sw/qa/extras/ooxmlexport/data/fdo72560.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo73389.docx b/sw/qa/extras/ooxmlexport/data/fdo73389.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo73389.docx
rename to sw/qa/extras/ooxmlexport/data/fdo73389.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo74357.docx b/sw/qa/extras/ooxmlexport/data/fdo74357.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo74357.docx
rename to sw/qa/extras/ooxmlexport/data/fdo74357.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo74401.docx b/sw/qa/extras/ooxmlexport/data/fdo74401.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo74401.docx
rename to sw/qa/extras/ooxmlexport/data/fdo74401.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo74745.docx b/sw/qa/extras/ooxmlexport/data/fdo74745.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo74745.docx
rename to sw/qa/extras/ooxmlexport/data/fdo74745.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo78883.docx b/sw/qa/extras/ooxmlexport/data/fdo78883.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo78883.docx
rename to sw/qa/extras/ooxmlexport/data/fdo78883.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo78904.docx b/sw/qa/extras/ooxmlexport/data/fdo78904.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo78904.docx
rename to sw/qa/extras/ooxmlexport/data/fdo78904.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo78939.docx b/sw/qa/extras/ooxmlexport/data/fdo78939.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo78939.docx
rename to sw/qa/extras/ooxmlexport/data/fdo78939.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo79535.docx b/sw/qa/extras/ooxmlexport/data/fdo79535.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo79535.docx
rename to sw/qa/extras/ooxmlexport/data/fdo79535.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo79738.docx b/sw/qa/extras/ooxmlexport/data/fdo79738.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo79738.docx
rename to sw/qa/extras/ooxmlexport/data/fdo79738.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo80555.docx b/sw/qa/extras/ooxmlexport/data/fdo80555.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo80555.docx
rename to sw/qa/extras/ooxmlexport/data/fdo80555.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo81486.docx b/sw/qa/extras/ooxmlexport/data/fdo81486.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo81486.docx
rename to sw/qa/extras/ooxmlexport/data/fdo81486.docx
diff --git a/sw/qa/extras/ooxmlimport/data/fdo85542.docx b/sw/qa/extras/ooxmlexport/data/fdo85542.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo85542.docx
rename to sw/qa/extras/ooxmlexport/data/fdo85542.docx
diff --git a/sw/qa/extras/ooxmlimport/data/file_crash.docx b/sw/qa/extras/ooxmlexport/data/file_crash.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/file_crash.docx
rename to sw/qa/extras/ooxmlexport/data/file_crash.docx
diff --git a/sw/qa/extras/ooxmlimport/data/floating-tables-anchor.docx b/sw/qa/extras/ooxmlexport/data/floating-tables-anchor.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/floating-tables-anchor.docx
rename to sw/qa/extras/ooxmlexport/data/floating-tables-anchor.docx
diff --git a/sw/qa/extras/ooxmlimport/data/footnote.docx b/sw/qa/extras/ooxmlexport/data/footnote.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/footnote.docx
rename to sw/qa/extras/ooxmlexport/data/footnote.docx
diff --git a/sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx b/sw/qa/extras/ooxmlexport/data/frame-wrap-auto.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/frame-wrap-auto.docx
rename to sw/qa/extras/ooxmlexport/data/frame-wrap-auto.docx
diff --git a/sw/qa/extras/ooxmlimport/data/gridbefore.docx b/sw/qa/extras/ooxmlexport/data/gridbefore.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/gridbefore.docx
rename to sw/qa/extras/ooxmlexport/data/gridbefore.docx
diff --git a/sw/qa/extras/ooxmlimport/data/groupshape-rotation.docx b/sw/qa/extras/ooxmlexport/data/groupshape-rotation.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/groupshape-rotation.docx
rename to sw/qa/extras/ooxmlexport/data/groupshape-rotation.docx
diff --git a/sw/qa/extras/ooxmlimport/data/groupshape-smarttag.docx b/sw/qa/extras/ooxmlexport/data/groupshape-smarttag.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/groupshape-smarttag.docx
rename to sw/qa/extras/ooxmlexport/data/groupshape-smarttag.docx
diff --git a/sw/qa/extras/ooxmlimport/data/groupshape-trackedchanges.docx b/sw/qa/extras/ooxmlexport/data/groupshape-trackedchanges.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/groupshape-trackedchanges.docx
rename to sw/qa/extras/ooxmlexport/data/groupshape-trackedchanges.docx
diff --git a/sw/qa/extras/ooxmlimport/data/hello.docx b/sw/qa/extras/ooxmlexport/data/hello.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/hello.docx
rename to sw/qa/extras/ooxmlexport/data/hello.docx
diff --git a/sw/qa/extras/ooxmlimport/data/hidemark.docx b/sw/qa/extras/ooxmlexport/data/hidemark.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/hidemark.docx
rename to sw/qa/extras/ooxmlexport/data/hidemark.docx
diff --git a/sw/qa/extras/ooxmlimport/data/i124106.docx b/sw/qa/extras/ooxmlexport/data/i124106.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/i124106.docx
rename to sw/qa/extras/ooxmlexport/data/i124106.docx
diff --git a/sw/qa/extras/ooxmlimport/data/imgshadow.docx b/sw/qa/extras/ooxmlexport/data/imgshadow.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/imgshadow.docx
rename to sw/qa/extras/ooxmlexport/data/imgshadow.docx
diff --git a/sw/qa/extras/ooxmlimport/data/indentation.docx b/sw/qa/extras/ooxmlexport/data/indentation.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/indentation.docx
rename to sw/qa/extras/ooxmlexport/data/indentation.docx
diff --git a/sw/qa/extras/ooxmlimport/data/indents.docx b/sw/qa/extras/ooxmlexport/data/indents.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/indents.docx
rename to sw/qa/extras/ooxmlexport/data/indents.docx
diff --git a/sw/qa/extras/ooxmlimport/data/inline-groupshape.docx b/sw/qa/extras/ooxmlexport/data/inline-groupshape.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/inline-groupshape.docx
rename to sw/qa/extras/ooxmlexport/data/inline-groupshape.docx
diff --git a/sw/qa/extras/ooxmlimport/data/large-twips.docx b/sw/qa/extras/ooxmlexport/data/large-twips.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/large-twips.docx
rename to sw/qa/extras/ooxmlexport/data/large-twips.docx
diff --git a/sw/qa/extras/ooxmlimport/data/libreoffice.png b/sw/qa/extras/ooxmlexport/data/libreoffice.png
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/libreoffice.png
rename to sw/qa/extras/ooxmlexport/data/libreoffice.png
diff --git a/sw/qa/extras/ooxmlimport/data/mathtype.docx b/sw/qa/extras/ooxmlexport/data/mathtype.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/mathtype.docx
rename to sw/qa/extras/ooxmlexport/data/mathtype.docx
diff --git a/sw/qa/extras/ooxmlimport/data/mce-nested.docx b/sw/qa/extras/ooxmlexport/data/mce-nested.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/mce-nested.docx
rename to sw/qa/extras/ooxmlexport/data/mce-nested.docx
diff --git a/sw/qa/extras/ooxmlimport/data/mce-wpg.docx b/sw/qa/extras/ooxmlexport/data/mce-wpg.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/mce-wpg.docx
rename to sw/qa/extras/ooxmlexport/data/mce-wpg.docx
diff --git a/sw/qa/extras/ooxmlimport/data/missing-path.docx b/sw/qa/extras/ooxmlexport/data/missing-path.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/missing-path.docx
rename to sw/qa/extras/ooxmlexport/data/missing-path.docx
diff --git a/sw/qa/extras/ooxmlimport/data/msobrightnesscontrast.docx b/sw/qa/extras/ooxmlexport/data/msobrightnesscontrast.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/msobrightnesscontrast.docx
rename to sw/qa/extras/ooxmlexport/data/msobrightnesscontrast.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n592908-frame.docx b/sw/qa/extras/ooxmlexport/data/n592908-frame.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n592908-frame.docx
rename to sw/qa/extras/ooxmlexport/data/n592908-frame.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n592908-picture.docx b/sw/qa/extras/ooxmlexport/data/n592908-picture.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n592908-picture.docx
rename to sw/qa/extras/ooxmlexport/data/n592908-picture.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n652364.docx b/sw/qa/extras/ooxmlexport/data/n652364.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n652364.docx
rename to sw/qa/extras/ooxmlexport/data/n652364.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n693238.docx b/sw/qa/extras/ooxmlexport/data/n693238.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n693238.docx
rename to sw/qa/extras/ooxmlexport/data/n693238.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n705956-1.docx b/sw/qa/extras/ooxmlexport/data/n705956-1.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n705956-1.docx
rename to sw/qa/extras/ooxmlexport/data/n705956-1.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n705956-2.docx b/sw/qa/extras/ooxmlexport/data/n705956-2.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n705956-2.docx
rename to sw/qa/extras/ooxmlexport/data/n705956-2.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n747461.docx b/sw/qa/extras/ooxmlexport/data/n747461.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n747461.docx
rename to sw/qa/extras/ooxmlexport/data/n747461.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n750255.docx b/sw/qa/extras/ooxmlexport/data/n750255.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n750255.docx
rename to sw/qa/extras/ooxmlexport/data/n750255.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n750935.docx b/sw/qa/extras/ooxmlexport/data/n750935.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n750935.docx
rename to sw/qa/extras/ooxmlexport/data/n750935.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n751054.docx b/sw/qa/extras/ooxmlexport/data/n751054.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n751054.docx
rename to sw/qa/extras/ooxmlexport/data/n751054.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n751117.docx b/sw/qa/extras/ooxmlexport/data/n751117.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n751117.docx
rename to sw/qa/extras/ooxmlexport/data/n751117.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n764005.docx b/sw/qa/extras/ooxmlexport/data/n764005.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n764005.docx
rename to sw/qa/extras/ooxmlexport/data/n764005.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n766481.docx b/sw/qa/extras/ooxmlexport/data/n766481.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n766481.docx
rename to sw/qa/extras/ooxmlexport/data/n766481.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n766487.docx b/sw/qa/extras/ooxmlexport/data/n766487.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n766487.docx
rename to sw/qa/extras/ooxmlexport/data/n766487.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n775906.docx b/sw/qa/extras/ooxmlexport/data/n775906.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n775906.docx
rename to sw/qa/extras/ooxmlexport/data/n775906.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n777337.docx b/sw/qa/extras/ooxmlexport/data/n777337.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n777337.docx
rename to sw/qa/extras/ooxmlexport/data/n777337.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n778828.docx b/sw/qa/extras/ooxmlexport/data/n778828.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n778828.docx
rename to sw/qa/extras/ooxmlexport/data/n778828.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n778836.docx b/sw/qa/extras/ooxmlexport/data/n778836.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n778836.docx
rename to sw/qa/extras/ooxmlexport/data/n778836.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n779630.docx b/sw/qa/extras/ooxmlexport/data/n779630.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n779630.docx
rename to sw/qa/extras/ooxmlexport/data/n779630.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n779642.docx b/sw/qa/extras/ooxmlexport/data/n779642.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n779642.docx
rename to sw/qa/extras/ooxmlexport/data/n779642.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n779834.docx b/sw/qa/extras/ooxmlexport/data/n779834.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n779834.docx
rename to sw/qa/extras/ooxmlexport/data/n779834.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n779941.docx b/sw/qa/extras/ooxmlexport/data/n779941.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n779941.docx
rename to sw/qa/extras/ooxmlexport/data/n779941.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n780563.docx b/sw/qa/extras/ooxmlexport/data/n780563.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n780563.docx
rename to sw/qa/extras/ooxmlexport/data/n780563.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n780843.docx b/sw/qa/extras/ooxmlexport/data/n780843.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n780843.docx
rename to sw/qa/extras/ooxmlexport/data/n780843.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n780843b.docx b/sw/qa/extras/ooxmlexport/data/n780843b.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n780843b.docx
rename to sw/qa/extras/ooxmlexport/data/n780843b.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n780853.docx b/sw/qa/extras/ooxmlexport/data/n780853.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n780853.docx
rename to sw/qa/extras/ooxmlexport/data/n780853.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n782345.docx b/sw/qa/extras/ooxmlexport/data/n782345.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n782345.docx
rename to sw/qa/extras/ooxmlexport/data/n782345.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n783638.docx b/sw/qa/extras/ooxmlexport/data/n783638.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n783638.docx
rename to sw/qa/extras/ooxmlexport/data/n783638.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n785767.docx b/sw/qa/extras/ooxmlexport/data/n785767.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n785767.docx
rename to sw/qa/extras/ooxmlexport/data/n785767.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n792778.docx b/sw/qa/extras/ooxmlexport/data/n792778.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n792778.docx
rename to sw/qa/extras/ooxmlexport/data/n792778.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n793262.docx b/sw/qa/extras/ooxmlexport/data/n793262.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n793262.docx
rename to sw/qa/extras/ooxmlexport/data/n793262.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n793998.docx b/sw/qa/extras/ooxmlexport/data/n793998.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n793998.docx
rename to sw/qa/extras/ooxmlexport/data/n793998.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n816593.docx b/sw/qa/extras/ooxmlexport/data/n816593.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n816593.docx
rename to sw/qa/extras/ooxmlexport/data/n816593.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n820509.docx b/sw/qa/extras/ooxmlexport/data/n820509.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n820509.docx
rename to sw/qa/extras/ooxmlexport/data/n820509.docx
diff --git a/sw/qa/extras/ooxmlimport/data/n830205.docx b/sw/qa/extras/ooxmlexport/data/n830205.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/n830205.docx
rename to sw/qa/extras/ooxmlexport/data/n830205.docx
diff --git a/sw/qa/extras/ooxmlimport/data/negative-cell-margin-twips.docx b/sw/qa/extras/ooxmlexport/data/negative-cell-margin-twips.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/negative-cell-margin-twips.docx
rename to sw/qa/extras/ooxmlexport/data/negative-cell-margin-twips.docx
diff --git a/sw/qa/extras/ooxmlimport/data/numbering1.docx b/sw/qa/extras/ooxmlexport/data/numbering1.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/numbering1.docx
rename to sw/qa/extras/ooxmlexport/data/numbering1.docx
diff --git a/sw/qa/extras/ooxmlimport/data/page-border-shadow.docx b/sw/qa/extras/ooxmlexport/data/page-border-shadow.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/page-border-shadow.docx
rename to sw/qa/extras/ooxmlexport/data/page-border-shadow.docx
diff --git a/sw/qa/extras/ooxmlimport/data/picture-with-schemecolor.docx b/sw/qa/extras/ooxmlexport/data/picture-with-schemecolor.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/picture-with-schemecolor.docx
rename to sw/qa/extras/ooxmlexport/data/picture-with-schemecolor.docx
diff --git a/sw/qa/extras/ooxmlimport/data/rhbz1180114.docx b/sw/qa/extras/ooxmlexport/data/rhbz1180114.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/rhbz1180114.docx
rename to sw/qa/extras/ooxmlexport/data/rhbz1180114.docx
diff --git a/sw/qa/extras/ooxmlimport/data/rprchange_closed.docx b/sw/qa/extras/ooxmlexport/data/rprchange_closed.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/rprchange_closed.docx
rename to sw/qa/extras/ooxmlexport/data/rprchange_closed.docx
diff --git a/sw/qa/extras/ooxmlimport/data/section_break_numbering.docx b/sw/qa/extras/ooxmlexport/data/section_break_numbering.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/section_break_numbering.docx
rename to sw/qa/extras/ooxmlexport/data/section_break_numbering.docx
diff --git a/sw/qa/extras/ooxmlimport/data/strict-smartart.docx b/sw/qa/extras/ooxmlexport/data/strict-smartart.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/strict-smartart.docx
rename to sw/qa/extras/ooxmlexport/data/strict-smartart.docx
diff --git a/sw/qa/extras/ooxmlimport/data/strict.docx b/sw/qa/extras/ooxmlexport/data/strict.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/strict.docx
rename to sw/qa/extras/ooxmlexport/data/strict.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-auto-column-fixed-size.docx b/sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-auto-column-fixed-size.docx
rename to sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-auto-column-fixed-size2.docx b/sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size2.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-auto-column-fixed-size2.docx
rename to sw/qa/extras/ooxmlexport/data/table-auto-column-fixed-size2.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-auto-nested.docx b/sw/qa/extras/ooxmlexport/data/table-auto-nested.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-auto-nested.docx
rename to sw/qa/extras/ooxmlexport/data/table-auto-nested.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-btlr-center.docx b/sw/qa/extras/ooxmlexport/data/table-btlr-center.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-btlr-center.docx
rename to sw/qa/extras/ooxmlexport/data/table-btlr-center.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-pagebreak.docx b/sw/qa/extras/ooxmlexport/data/table-pagebreak.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-pagebreak.docx
rename to sw/qa/extras/ooxmlexport/data/table-pagebreak.docx
diff --git a/sw/qa/extras/ooxmlimport/data/table-style-parprop.docx b/sw/qa/extras/ooxmlexport/data/table-style-parprop.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/table-style-parprop.docx
rename to sw/qa/extras/ooxmlexport/data/table-style-parprop.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tableborder-finedash.docx b/sw/qa/extras/ooxmlexport/data/tableborder-finedash.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tableborder-finedash.docx
rename to sw/qa/extras/ooxmlexport/data/tableborder-finedash.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tblr-height.docx b/sw/qa/extras/ooxmlexport/data/tblr-height.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tblr-height.docx
rename to sw/qa/extras/ooxmlexport/data/tblr-height.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tcw-rounding.docx b/sw/qa/extras/ooxmlexport/data/tcw-rounding.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tcw-rounding.docx
rename to sw/qa/extras/ooxmlexport/data/tcw-rounding.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf59699.docx b/sw/qa/extras/ooxmlexport/data/tdf59699.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf59699.docx
rename to sw/qa/extras/ooxmlexport/data/tdf59699.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf78902.docx b/sw/qa/extras/ooxmlexport/data/tdf78902.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf78902.docx
rename to sw/qa/extras/ooxmlexport/data/tdf78902.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf8255.docx b/sw/qa/extras/ooxmlexport/data/tdf8255.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf8255.docx
rename to sw/qa/extras/ooxmlexport/data/tdf8255.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf83300.docx b/sw/qa/extras/ooxmlexport/data/tdf83300.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf83300.docx
rename to sw/qa/extras/ooxmlexport/data/tdf83300.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf86374.docx b/sw/qa/extras/ooxmlexport/data/tdf86374.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf86374.docx
rename to sw/qa/extras/ooxmlexport/data/tdf86374.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf87460.docx b/sw/qa/extras/ooxmlexport/data/tdf87460.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf87460.docx
rename to sw/qa/extras/ooxmlexport/data/tdf87460.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf87924.docx b/sw/qa/extras/ooxmlexport/data/tdf87924.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf87924.docx
rename to sw/qa/extras/ooxmlexport/data/tdf87924.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf89165.docx b/sw/qa/extras/ooxmlexport/data/tdf89165.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf89165.docx
rename to sw/qa/extras/ooxmlexport/data/tdf89165.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf89702.docx b/sw/qa/extras/ooxmlexport/data/tdf89702.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf89702.docx
rename to sw/qa/extras/ooxmlexport/data/tdf89702.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf90153.docx b/sw/qa/extras/ooxmlexport/data/tdf90153.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf90153.docx
rename to sw/qa/extras/ooxmlexport/data/tdf90153.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf90611.docx b/sw/qa/extras/ooxmlexport/data/tdf90611.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf90611.docx
rename to sw/qa/extras/ooxmlexport/data/tdf90611.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf90810short.docx b/sw/qa/extras/ooxmlexport/data/tdf90810short.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf90810short.docx
rename to sw/qa/extras/ooxmlexport/data/tdf90810short.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf91122.docx b/sw/qa/extras/ooxmlexport/data/tdf91122.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf91122.docx
rename to sw/qa/extras/ooxmlexport/data/tdf91122.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf91260.docx b/sw/qa/extras/ooxmlexport/data/tdf91260.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf91260.docx
rename to sw/qa/extras/ooxmlexport/data/tdf91260.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf91417.docx b/sw/qa/extras/ooxmlexport/data/tdf91417.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf91417.docx
rename to sw/qa/extras/ooxmlexport/data/tdf91417.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf92045.docx b/sw/qa/extras/ooxmlexport/data/tdf92045.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf92045.docx
rename to sw/qa/extras/ooxmlexport/data/tdf92045.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf92124.docx b/sw/qa/extras/ooxmlexport/data/tdf92124.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf92124.docx
rename to sw/qa/extras/ooxmlexport/data/tdf92124.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf92157.docx b/sw/qa/extras/ooxmlexport/data/tdf92157.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf92157.docx
rename to sw/qa/extras/ooxmlexport/data/tdf92157.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf92454.docx b/sw/qa/extras/ooxmlexport/data/tdf92454.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf92454.docx
rename to sw/qa/extras/ooxmlexport/data/tdf92454.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf93919.docx b/sw/qa/extras/ooxmlexport/data/tdf93919.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf93919.docx
rename to sw/qa/extras/ooxmlexport/data/tdf93919.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf94043.docx b/sw/qa/extras/ooxmlexport/data/tdf94043.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf94043.docx
rename to sw/qa/extras/ooxmlexport/data/tdf94043.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf94374.docx b/sw/qa/extras/ooxmlexport/data/tdf94374.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf94374.docx
rename to sw/qa/extras/ooxmlexport/data/tdf94374.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf95213.docx b/sw/qa/extras/ooxmlexport/data/tdf95213.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf95213.docx
rename to sw/qa/extras/ooxmlexport/data/tdf95213.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf95376.docx b/sw/qa/extras/ooxmlexport/data/tdf95376.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf95376.docx
rename to sw/qa/extras/ooxmlexport/data/tdf95376.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf95775.docx b/sw/qa/extras/ooxmlexport/data/tdf95775.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf95775.docx
rename to sw/qa/extras/ooxmlexport/data/tdf95775.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf95777.docx b/sw/qa/extras/ooxmlexport/data/tdf95777.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf95777.docx
rename to sw/qa/extras/ooxmlexport/data/tdf95777.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf97371.docx b/sw/qa/extras/ooxmlexport/data/tdf97371.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf97371.docx
rename to sw/qa/extras/ooxmlexport/data/tdf97371.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf99140.docx b/sw/qa/extras/ooxmlexport/data/tdf99140.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf99140.docx
rename to sw/qa/extras/ooxmlexport/data/tdf99140.docx
diff --git a/sw/qa/extras/ooxmlimport/data/test_extra_image.docx b/sw/qa/extras/ooxmlexport/data/test_extra_image.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/test_extra_image.docx
rename to sw/qa/extras/ooxmlexport/data/test_extra_image.docx
diff --git a/sw/qa/extras/ooxmlimport/data/textbox-wpg-only.docx b/sw/qa/extras/ooxmlexport/data/textbox-wpg-only.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/textbox-wpg-only.docx
rename to sw/qa/extras/ooxmlexport/data/textbox-wpg-only.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tools-line-numbering.docx b/sw/qa/extras/ooxmlexport/data/tools-line-numbering.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tools-line-numbering.docx
rename to sw/qa/extras/ooxmlexport/data/tools-line-numbering.docx
diff --git a/sw/qa/extras/ooxmlimport/data/vml-text-vertical-adjust.docx b/sw/qa/extras/ooxmlexport/data/vml-text-vertical-adjust.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/vml-text-vertical-adjust.docx
rename to sw/qa/extras/ooxmlexport/data/vml-text-vertical-adjust.docx
diff --git a/sw/qa/extras/ooxmlimport/data/wpg-nested.docx b/sw/qa/extras/ooxmlexport/data/wpg-nested.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/wpg-nested.docx
rename to sw/qa/extras/ooxmlexport/data/wpg-nested.docx
diff --git a/sw/qa/extras/ooxmlimport/data/wpg-only.docx b/sw/qa/extras/ooxmlexport/data/wpg-only.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/wpg-only.docx
rename to sw/qa/extras/ooxmlexport/data/wpg-only.docx
diff --git a/sw/qa/extras/ooxmlimport/data/wps-only.docx b/sw/qa/extras/ooxmlexport/data/wps-only.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/wps-only.docx
rename to sw/qa/extras/ooxmlexport/data/wps-only.docx
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
new file mode 100644
index 0000000..a7cfd8d
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
@@ -0,0 +1,2082 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "config_test.h"
+
+#ifdef MACOSX
+#define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
+#include <premac.h>
+#include <AppKit/AppKit.h>
+#include <postmac.h>
+#endif
+
+#include <swmodeltestbase.hxx>
+
+#include <com/sun/star/awt/XBitmap.hpp>
+#include <com/sun/star/awt/FontUnderline.hpp>
+#include <com/sun/star/awt/FontWeight.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/document/XEmbeddedObjectSupplier2.hpp>
+#include <com/sun/star/drawing/XControlShape.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
+#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <com/sun/star/text/HoriOrientation.hpp>
+#include <com/sun/star/text/RelOrientation.hpp>
+#include <com/sun/star/text/TableColumnSeparator.hpp>
+#include <com/sun/star/text/TextContentAnchorType.hpp>
+#include <com/sun/star/text/VertOrientation.hpp>
+#include <com/sun/star/text/WrapTextMode.hpp>
+#include <com/sun/star/text/WritingMode2.hpp>
+#include <com/sun/star/text/XBookmarksSupplier.hpp>
+#include <com/sun/star/text/XFootnote.hpp>
+#include <com/sun/star/text/XPageCursor.hpp>
+#include <com/sun/star/text/XTextColumns.hpp>
+#include <com/sun/star/text/XTextFrame.hpp>
+#include <com/sun/star/text/XTextFramesSupplier.hpp>
+#include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
+#include <com/sun/star/text/XTextViewCursorSupplier.hpp>
+#include <com/sun/star/style/BreakType.hpp>
+#include <com/sun/star/style/ParagraphAdjust.hpp>
+#include <com/sun/star/table/ShadowFormat.hpp>
+#include <com/sun/star/view/XFormLayerAccess.hpp>
+#include <com/sun/star/table/BorderLine2.hpp>
+#include <com/sun/star/table/TableBorder2.hpp>
+#include <com/sun/star/text/SizeType.hpp>
+#include <com/sun/star/xml/dom/XDocument.hpp>
+#include <com/sun/star/text/XDocumentIndex.hpp>
+#include <com/sun/star/style/CaseMap.hpp>
+#include <com/sun/star/document/XFilter.hpp>
+#include <com/sun/star/document/XImporter.hpp>
+#include <vcl/bitmapaccess.hxx>
+#include <unotest/assertion_traits.hxx>
+#include <unotools/fltrcfg.hxx>
+#include <comphelper/sequenceashashmap.hxx>
+#include <com/sun/star/text/GraphicCrop.hpp>
+#include <swtypes.hxx>
+#include <drawdoc.hxx>
+#include <oox/drawingml/drawingmltypes.hxx>
+#include <unotools/streamwrap.hxx>
+#include <comphelper/propertysequence.hxx>
+#include <svx/svdpage.hxx>
+
+#include <bordertest.hxx>
+
+class Test : public SwModelTestBase
+{
+public:
+ Test() : SwModelTestBase("/sw/qa/extras/ooxmlexport/data/", "Office Open XML Text") {}
+
+ virtual std::unique_ptr<Resetter> preTest(const char* filename) override
+ {
+ if (OString(filename) == "smartart.docx" || OString(filename) == "strict-smartart.docx" )
+ {
+ std::unique_ptr<Resetter> pResetter(new Resetter(
+ [] () {
+ SvtFilterOptions::Get().SetSmartArt2Shape(false);
+ }));
+ SvtFilterOptions::Get().SetSmartArt2Shape(true);
+ return pResetter;
+ }
+ return nullptr;
+ }
+
+protected:
+ /**
+ * Blacklist handling
+ */
+ bool mustTestImportOf(const char* filename) const override {
+ // If the testcase is stored in some other format, it's pointless to test.
+ return (OString(filename).endsWith(".docx"));
+ }
+
+protected:
+ /// Copy&paste helper.
+ bool paste(const OUString& rFilename, const uno::Reference<text::XTextRange>& xTextRange)
+ {
+ uno::Reference<document::XFilter> xFilter(m_xSFactory->createInstance("com.sun.star.comp.Writer.WriterFilter"), uno::UNO_QUERY_THROW);
+ uno::Reference<document::XImporter> xImporter(xFilter, uno::UNO_QUERY_THROW);
+ xImporter->setTargetDocument(mxComponent);
+ SvStream* pStream = utl::UcbStreamHelper::CreateStream(m_directories.getURLFromSrc("/sw/qa/extras/ooxmlexport/data/") + rFilename, StreamMode::READ);
+ uno::Reference<io::XStream> xStream(new utl::OStreamWrapper(*pStream));
+ uno::Sequence<beans::PropertyValue> aDescriptor(comphelper::InitPropertySequence(
+ {
+ {"InputStream", uno::makeAny(xStream)},
+ {"InputMode", uno::makeAny(true)},
+ {"TextInsertModeRange", uno::makeAny(xTextRange)},
+ }));
+ return xFilter->filter(aDescriptor);
+ }
+};
+
+#if !defined(_WIN32)
+
+DECLARE_OOXMLEXPORT_TEST(testN751054, "n751054.docx")
+{
+ text::TextContentAnchorType eValue = getProperty<text::TextContentAnchorType>(getShape(1), "AnchorType");
+ CPPUNIT_ASSERT(eValue != text::TextContentAnchorType_AS_CHARACTER);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN750935, "n750935.docx")
+{
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ // Some page break types were ignores, resulting in less pages.
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(5), xCursor->getPage());
+
+ /*
+ * The problem was that the header and footer was not shared.
+ *
+ * xray ThisComponent.StyleFamilies.PageStyles.Default.FooterIsShared
+ */
+ uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("Standard"), uno::UNO_QUERY);
+ bool bValue = false;
+ xPropertySet->getPropertyValue("HeaderIsShared") >>= bValue;
+ CPPUNIT_ASSERT_EQUAL(true, bValue);
+ xPropertySet->getPropertyValue("FooterIsShared") >>= bValue;
+ CPPUNIT_ASSERT_EQUAL(true, bValue);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN751117, "n751117.docx")
+{
+ // First shape: the end should be an arrow, should be rotated and should be flipped.
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+ OUString aValue;
+ xPropertySet->getPropertyValue("LineEndName") >>= aValue;
+ CPPUNIT_ASSERT(aValue.indexOf("Arrow") != -1);
+
+ // Rotating & Flipping will cause the angle to change from 90 degrees to 270 degrees
+ sal_Int32 nValue = 0;
+ xPropertySet->getPropertyValue("RotateAngle") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(270 * 100), nValue);
+
+ uno::Reference<drawing::XShape> xShape(xPropertySet, uno::UNO_QUERY);
+ awt::Size aActualSize(xShape->getSize());
+ CPPUNIT_ASSERT(aActualSize.Width > 0);
+
+ // The second shape should be a line
+ uno::Reference<lang::XServiceInfo> xServiceInfo(getShape(2), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xServiceInfo->supportsService("com.sun.star.drawing.LineShape"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo49940, "fdo49940.docx")
+{
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration();
+ uno::Reference<beans::XPropertySet> xPara(xParaEnum->nextElement(), uno::UNO_QUERY);
+ OUString aValue;
+ xPara->getPropertyValue("PageStyleName") >>= aValue;
+ CPPUNIT_ASSERT_EQUAL(OUString("First Page"), aValue);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo74745, "fdo74745.docx")
+{
+ uno::Reference<text::XTextRange > paragraph = getParagraph(3);
+ uno::Reference<text::XTextRange> text(paragraph, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(text->getString(),OUString("09/02/14"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo81486, "fdo81486.docx")
+{
+ uno::Reference<text::XTextRange > paragraph = getParagraph(1);
+ uno::Reference<text::XTextRange> text(paragraph, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(text->getString(),OUString("CustomTitle"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo79738, "fdo79738.docx")
+{
+ uno::Reference< style::XStyleFamiliesSupplier > xStylesSupplier( mxComponent, uno::UNO_QUERY_THROW );
+ uno::Reference< container::XNameAccess > xStyleFamilies = xStylesSupplier->getStyleFamilies();
+ uno::Reference<container::XNameContainer> xStyles;
+ xStyleFamilies->getByName("ParagraphStyles") >>= xStyles;
+ uno::Reference<beans::XPropertySet> xPropertySetHeader( xStyles->getByName("Header"), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySetHeader->getPropertyValue("ParaLineNumberCount").get<bool>());
+ uno::Reference<beans::XPropertySet> xPropertySetFooter( xStyles->getByName("Footer"), uno::UNO_QUERY );
+ CPPUNIT_ASSERT_EQUAL(false, xPropertySetFooter->getPropertyValue("ParaLineNumberCount").get<bool>());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN705956_1, "n705956-1.docx")
+{
+/*
+Get the first image in the document and check it's the one image in the document.
+It should be also anchored inline (as character) and be inside a groupshape.
+image = ThisComponent.DrawPage.getByIndex(0)
+graphic = image(0).Graphic
+xray graphic.Size
+xray image.AnchorType
+*/
+ uno::Reference<text::XTextDocument> textDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPageSupplier> drawPageSupplier(textDocument, uno::UNO_QUERY);
+ uno::Reference<drawing::XDrawPage> drawPage = drawPageSupplier->getDrawPage();
+ CPPUNIT_ASSERT_EQUAL( sal_Int32( 1 ), drawPage->getCount());
+ uno::Reference<drawing::XShapes> shapes(getShape(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> image;
+ shapes->getByIndex(0) >>= image;
+ uno::Reference<beans::XPropertySet> imageProperties(image, uno::UNO_QUERY);
+ uno::Reference<graphic::XGraphic> graphic;
+ imageProperties->getPropertyValue( "Graphic" ) >>= graphic;
+ uno::Reference<awt::XBitmap> bitmap(graphic, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int32>(120), bitmap->getSize().Width );
+ CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int32>(106), bitmap->getSize().Height );
+ text::TextContentAnchorType anchorType;
+ imageProperties->getPropertyValue( "AnchorType" ) >>= anchorType;
+ CPPUNIT_ASSERT_EQUAL( text::TextContentAnchorType_AS_CHARACTER, anchorType );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN705956_2, "n705956-2.docx")
+{
+/*
+<v:shapetype> must be global, reachable even from <v:shape> inside another <w:pict>
+image = ThisComponent.DrawPage.getByIndex(0)
+xray image.FillColor
+*/
+ uno::Reference<drawing::XShape> image = getShape(1);
+ uno::Reference<beans::XPropertySet> imageProperties(image, uno::UNO_QUERY);
+ sal_Int32 fillColor;
+ imageProperties->getPropertyValue( "FillColor" ) >>= fillColor;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32( 0xc0504d ), fillColor );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN747461, "n747461.docx")
+{
+/*
+The document contains 3 images (Red, Black, Green, in this order), with explicit
+w:relativeHeight (300, 0, 225763766). Check that they are in the right ZOrder
+after they are loaded.
+*/
+ uno::Reference<drawing::XShape> image1 = getShape(1), image2 = getShape(2), image3 = getShape(3);
+ sal_Int32 zOrder1, zOrder2, zOrder3;
+ OUString descr1, descr2, descr3;
+ uno::Reference<beans::XPropertySet> imageProperties1(image1, uno::UNO_QUERY);
+ imageProperties1->getPropertyValue( "ZOrder" ) >>= zOrder1;
+ imageProperties1->getPropertyValue( "Description" ) >>= descr1;
+ uno::Reference<beans::XPropertySet> imageProperties2(image2, uno::UNO_QUERY);
+ imageProperties2->getPropertyValue( "ZOrder" ) >>= zOrder2;
+ imageProperties2->getPropertyValue( "Description" ) >>= descr2;
+ uno::Reference<beans::XPropertySet> imageProperties3(image3, uno::UNO_QUERY);
+ imageProperties3->getPropertyValue( "ZOrder" ) >>= zOrder3;
+ imageProperties3->getPropertyValue( "Description" ) >>= descr3;
+ CPPUNIT_ASSERT_EQUAL( sal_Int32( 0 ), zOrder1 );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32( 1 ), zOrder2 );
+ CPPUNIT_ASSERT_EQUAL( sal_Int32( 2 ), zOrder3 );
+ CPPUNIT_ASSERT_EQUAL( OUString( "Black" ), descr1 );
+ CPPUNIT_ASSERT_EQUAL( OUString( "Red" ), descr2 );
+ CPPUNIT_ASSERT_EQUAL( OUString( "Green" ), descr3 );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN750255, "n750255.docx")
+{
+
+/*
+Column break without columns on the page is a page break, so check those paragraphs
+are on page 2 and page 3
+*/
+ CPPUNIT_ASSERT_EQUAL( OUString("one"), parseDump("/root/page[2]/body/txt/text()") );
+ CPPUNIT_ASSERT_EQUAL( OUString("two"), parseDump("/root/page[3]/body/txt/text()") );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN652364, "n652364.docx")
+{
+/*
+Related to 750255 above, column break with columns on the page however should be a column break.
+enum = ThisComponent.Text.createEnumeration
+enum.nextElement
+para1 = enum.nextElement
+xray para1.String
+xray para1.PageStyleName
+enum.nextElement
+para2 = enum.nextElement
+xray para2.String
+xray para2.PageStyleName
+*/
+ // get the 2nd and 4th paragraph
+ uno::Reference<uno::XInterface> paragraph1(getParagraph( 2, "text1" ));
+ uno::Reference<uno::XInterface> paragraph2(getParagraph( 4, "text2" ));
+ OUString pageStyle1 = getProperty< OUString >( paragraph1, "PageStyleName" );
+ OUString pageStyle2 = getProperty< OUString >( paragraph2, "PageStyleName" );
+ // "Standard" is the style for the first page (2nd is "Converted1").
+ CPPUNIT_ASSERT_EQUAL( OUString( "Standard" ), pageStyle1 );
+ CPPUNIT_ASSERT_EQUAL( OUString( "Standard" ), pageStyle2 );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN764005, "n764005.docx")
+{
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+
+ // The picture in the header wasn't absolutely positioned and wasn't in the background.
+ text::TextContentAnchorType eValue;
+ xPropertySet->getPropertyValue("AnchorType") >>= eValue;
+ CPPUNIT_ASSERT(eValue != text::TextContentAnchorType_AS_CHARACTER);
+ bool bValue = true;
+ xPropertySet->getPropertyValue("Opaque") >>= bValue;
+ CPPUNIT_ASSERT_EQUAL(false, bool(bValue));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN766481, "n766481.docx")
+{
+ /*
+ * The problem was that we had an additional paragraph before the pagebreak.
+ *
+ * oParas = ThisComponent.Text.createEnumeration
+ * oPara = oParas.nextElement
+ * oPara = oParas.nextElement
+ * xray oParas.hasMoreElements ' should be false
+ */
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum(xParaEnumAccess->createEnumeration());
+ for (int i = 0; i < 2; ++i)
+ xParaEnum->nextElement();
+ CPPUNIT_ASSERT_EQUAL(sal_False, xParaEnum->hasMoreElements());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN766487, "n766487.docx")
+{
+ /*
+ * The problem was that 1) the font size of the first para was too large 2) numbering had no first-line-indent.
+ *
+ * oParas = ThisComponent.Text.createEnumeration
+ * oPara = oParas.nextElement
+ * oRuns = oPara.createEnumeration
+ * oRun = oRuns.nextElement
+ * xray oRun.CharHeight ' 12, was larger
+ * oPara = oParas.nextElement
+ * xray oPara.ParaFirstLineIndent ' -635, was 0
+ */
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xParaEnum(xParaEnumAccess->createEnumeration());
+
+ uno::Reference<container::XEnumerationAccess> xRunEnumAccess(xParaEnum->nextElement(), uno::UNO_QUERY);
+ uno::Reference<container::XEnumeration> xRunEnum(xRunEnumAccess->createEnumeration());
+ uno::Reference<beans::XPropertySet> xPropertySet(xRunEnum->nextElement(), uno::UNO_QUERY);
+ float fValue = 0;
+ xPropertySet->getPropertyValue("CharHeight") >>= fValue;
+ CPPUNIT_ASSERT_EQUAL(12.f, fValue);
+
+ xPropertySet.set(xParaEnum->nextElement(), uno::UNO_QUERY);
+ sal_Int32 nValue = 0;
+ xPropertySet->getPropertyValue("ParaFirstLineIndent") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(-360)), nValue);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN693238, "n693238.docx")
+{
+ /*
+ * The problem was that a continuous section break at the end of the doc caused the margins to be ignored.
+ *
+ * xray ThisComponent.StyleFamilies.PageStyles.Default.LeftMargin ' was 2000, should be 635
+ */
+ uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("Standard"), uno::UNO_QUERY);
+ sal_Int32 nValue = 0;
+ xPropertySet->getPropertyValue("LeftMargin") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(635), nValue);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testNumbering1, "numbering1.docx")
+{
+/* <w:numPr> in the paragraph itself was overridden by <w:numpr> introduced by the paragraph's <w:pStyle>
+enum = ThisComponent.Text.createEnumeration
+para = enum.NextElement
+xray para.NumberingStyleName
+numberingstyle = ThisComponent.NumberingRules.getByIndex(6)
+xray numberingstyle.name - should match name above
+numbering = numberingstyle.getByIndex(0)
+xray numbering(11) - should be 4, arabic
+note that the indexes may get off as the implementation evolves, C++ code searches in loops
+*/
+ uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference< text::XTextRange > paragraph(getParagraph( 1, "Text1." ));
+ OUString numberingStyleName = getProperty< OUString >( paragraph, "NumberingStyleName" );
+ uno::Reference<text::XNumberingRulesSupplier> xNumberingRulesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> numberingRules(xNumberingRulesSupplier->getNumberingRules(), uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> numberingRule;
+ for( int i = 0;
+ i < numberingRules->getCount();
+ ++i )
+ {
+ OUString name = getProperty< OUString >( numberingRules->getByIndex( i ), "Name" );
+ if( name == numberingStyleName )
+ {
+ numberingRule.set( numberingRules->getByIndex( i ), uno::UNO_QUERY );
+ break;
+ }
+ }
+ CPPUNIT_ASSERT( numberingRule.is());
+ uno::Sequence< beans::PropertyValue > numbering;
+ numberingRule->getByIndex( 0 ) >>= numbering;
+ sal_Int16 numberingType = style::NumberingType::NUMBER_NONE;
+ for( int i = 0;
+ i < numbering.getLength();
+ ++i )
+ {
+ if( numbering[ i ].Name == "NumberingType" )
+ {
+ numbering[ i ].Value >>= numberingType;
+ break;
+ }
+ }
+ CPPUNIT_ASSERT_EQUAL( style::NumberingType::ARABIC, numberingType );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testAllGapsWord, "all_gaps_word.docx")
+{
+ BorderTest borderTest;
+ BorderTest::testTheBorders(mxComponent, false);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN775906, "n775906.docx")
+{
+ /*
+ * The problem was that right margin (via direct formatting) erased the left/first margin (inherited from numbering style).
+ *
+ * oParas = ThisComponent.Text.createEnumeration
+ * oPara = oParas.nextElement
+ * xray oPara.ParaFirstLineIndent ' was 0
+ * xray oPara.ParaLeftMargin ' was 0
+ */
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-635), getProperty<sal_Int32>(getParagraph(1), "ParaFirstLineIndent"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1905), getProperty<sal_Int32>(getParagraph(1), "ParaLeftMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTdf59699, "tdf59699.docx")
+{
+ uno::Reference<beans::XPropertySet> xImage(getShape(1), uno::UNO_QUERY);
+ auto xGraphic = getProperty<uno::Reference<graphic::XGraphic> >(xImage, "Graphic");
+ // This was false: the referenced graphic data wasn't imported.
+ CPPUNIT_ASSERT(xGraphic.is());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN777337, "n777337.docx")
+{
+ /*
+ * The problem was that the top and bottom margin on the first page was only 0.1cm instead of 1.7cm.
+ *
+ * oFirst = ThisComponent.StyleFamilies.PageStyles.getByName("First Page")
+ * xray oFirst.TopMargin
+ * xray oFirst.BottomMargin
+ */
+ uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("First Page"), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1702), getProperty<sal_Int32>(xPropertySet, "TopMargin"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1702), getProperty<sal_Int32>(xPropertySet, "BottomMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN778836, "n778836.docx")
+{
+ /*
+ * The problem was that the paragraph inherited margins from the numbering
+ * and parent paragraph styles and the result was incorrect.
+ */
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1270), getProperty<sal_Int32>(getParagraph(1), "ParaRightMargin"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3810), getProperty<sal_Int32>(getParagraph(1), "ParaLeftMargin"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-635), getProperty<sal_Int32>(getParagraph(1), "ParaFirstLineIndent"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN778828, "n778828.docx")
+{
+ /*
+ * The problem was that a page break after a continuous section break caused
+ * double page break on title page.
+ */
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xCursor->getPage());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN779834, "n779834.docx")
+{
+ // This document simply crashed the importer.
+}
+
+DECLARE_OOXMLEXPORT_TEST(testRHBZ1180114, "rhbz1180114.docx")
+{
+ // This document simply crashed the importer.
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTDF91122, "tdf91122.docx")
+{
+ /*
+ * OLE object shape: default vertical position is top in MSO, not bottom
+ */
+ for (int i = 1; i <= 2; ++i)
+ {
+ uno::Reference<beans::XPropertySet> xShapeProperties( getShape(i), uno::UNO_QUERY );
+ uno::Reference<drawing::XShapeDescriptor> xShapeDescriptor(xShapeProperties, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(OUString("FrameShape"), xShapeDescriptor->getShapeType());
+ sal_Int16 nValue;
+ xShapeProperties->getPropertyValue("VertOrient") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong vertical orientation", text::VertOrientation::TOP, nValue);
+ }
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTDF91260, "tdf91260.docx")
+{
+ /*
+ * textbox can't extend beyond the page bottom
+ * solution: shrinking textbox (its text frame) height, if needed
+ */
+ uno::Reference<text::XTextRange> xFrame(getShape(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT(xFrame->getString().startsWith( "Lorem ipsum" ) );
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3454), getProperty<sal_Int32>(xFrame, "Height"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo74357, "fdo74357.docx")
+{
+ // Floating table wasn't converted to a textframe.
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+ // This was 0.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount());
+
+ // Bottom margin of the first paragraph was too large, causing a layout problem.
+ // This was 494.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(86), getProperty<sal_Int32>(getParagraph(1), "ParaBottomMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo55187, "fdo55187.docx")
+{
+ // 0x010d was imported as a newline.
+ getParagraph(1, OUString("lup\xc4\x8dka", 7, RTL_TEXTENCODING_UTF8));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN780563, "n780563.docx")
+{
+ /*
+ * Make sure we have the table in the fly frame created
+ */
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount( ));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN780853, "n780853.docx")
+{
+ /*
+ * The problem was that the table was not imported.
+ *
+ * xray ThisComponent.TextTables.Count 'was 0
+ */
+ uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xIndexAccess(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN780843, "n780843.docx")
+{
+ uno::Reference< text::XTextRange > xPara = getParagraph(1);
+ OUString aStyleName = getProperty<OUString>(xPara, "PageStyleName");
+ CPPUNIT_ASSERT_EQUAL(OUString("First Page"), aStyleName);
+
+ //tdf64372 this document should only have one page break (2 pages, not 3)
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xCursor->getPage());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN780843b, "n780843b.docx")
+{
+ // Same document as testN780843 except there is more text before the continuous break. Now the opposite footer results should happen.
+ uno::Reference< text::XTextRange > xPara = getParagraph(3);
+ OUString aStyleName = getProperty<OUString>(xPara, "PageStyleName");
+ uno::Reference<beans::XPropertySet> xPageStyle(getStyles("PageStyles")->getByName(aStyleName), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xFooterText = getProperty< uno::Reference<text::XTextRange> >(xPageStyle, "FooterText");
+ CPPUNIT_ASSERT_EQUAL( OUString("hidden footer"), xFooterText->getString() );
+}
+
+DECLARE_OOXMLEXPORT_TEST(testShadow, "imgshadow.docx")
+{
+ /*
+ * The problem was that drop shadows on inline images were not being
+ * imported and applied.
+ */
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(2), uno::UNO_QUERY);
+
+ bool bShadow = getProperty<bool>(xPropertySet, "Shadow");
+ CPPUNIT_ASSERT(bShadow);
+
+ sal_Int32 nShadowXDistance = getProperty<sal_Int32>(xPropertySet, "ShadowXDistance");
+ CPPUNIT_ASSERT(nShadowXDistance != 0);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN782345, "n782345.docx")
+{
+ /*
+ * The problem was that the page break was inserted before the 3rd para, instead of before the 2nd para.
+ */
+ CPPUNIT_ASSERT_EQUAL(style::BreakType_PAGE_BEFORE, getProperty<style::BreakType>(getParagraph(2), "BreakType"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN779941, "n779941.docx")
+{
+ /*
+ * Make sure top/bottom margins of tables are set to 0 (problem was: bottom margin set to 0.35cm)
+ */
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xTableProperties(xTables->getByIndex(0), uno::UNO_QUERY);
+ {
+ uno::Any aValue = xTableProperties->getPropertyValue("TopMargin");
+ sal_Int32 nTopMargin;
+ aValue >>= nTopMargin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nTopMargin);
+ }
+ {
+ uno::Any aValue = xTableProperties->getPropertyValue("BottomMargin");
+ sal_Int32 nBottomMargin;
+ aValue >>= nBottomMargin;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nBottomMargin);
+ }
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN783638, "n783638.docx")
+{
+ // The problem was that the margins of inline images were not zero.
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(xPropertySet, "LeftMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo52208, "fdo52208.docx")
+{
+ // The problem was that the document had 2 pages instead of 1.
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN785767, "n785767.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
+ // Check the A1 and B1 cells, the width of both of them was the default value (10000 / 9, as there were 9 cells in the row).
+ CPPUNIT_ASSERT_MESSAGE("A1 must not have default width", sal_Int16(10000 / 9) != getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators")[0].Position);
+ CPPUNIT_ASSERT_MESSAGE("B1 must not have default width", sal_Int16(10000 / 9) != getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(1), "TableColumnSeparators")[0].Position);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFineTableDash, "tableborder-finedash.docx")
+{
+ // The problem was that finely dashed borders on tables were unsupported
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xTableProperties(xTables->getByIndex(0), uno::UNO_QUERY);
+ table::TableBorder2 aBorder;
+ xTableProperties->getPropertyValue("TableBorder2") >>= aBorder;
+ CPPUNIT_ASSERT_EQUAL(aBorder.RightLine.LineStyle, table::BorderLineStyle::FINE_DASHED);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN792778, "n792778.docx")
+{
+ /*
+ * The problem was that the importer didn't handle complex groupshapes with groupshapes, textboxes and graphics inside.
+ *
+ * xray ThisComponent.DrawPage.Count ' 1 groupshape
+ * xray ThisComponent.DrawPage(0).Count ' 2 sub-groupshapes
+ * xray ThisComponent.DrawPage(0).getByIndex(0).Count ' first sub-groupshape: 1 pic
+ * xray ThisComponent.DrawPage(0).getByIndex(1).Count ' second sub-groupshape: 1 pic
+ * xray ThisComponent.DrawPage(0).getByIndex(0).getByIndex(0).Position.Y ' 11684, the vertical position of the shapes were also wrong
+ * xray ThisComponent.DrawPage(0).getByIndex(1).getByIndex(0).Position.Y ' 11684
+ */
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount());
+
+ uno::Reference<drawing::XShapes> xGroupShape(xDrawPage->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xGroupShape->getCount());
+
+ uno::Reference<drawing::XShapes> xInnerGroupShape(xGroupShape->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xInnerGroupShape->getCount());
+
+ uno::Reference<drawing::XShape> xInnerShape(xInnerGroupShape->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(11684), xInnerShape->getPosition().Y);
+
+ xInnerGroupShape.set(xGroupShape->getByIndex(1), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xInnerGroupShape->getCount());
+
+ xInnerShape.set(xInnerGroupShape->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(11684), xInnerShape->getPosition().Y);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testGroupshapeSmarttag, "groupshape-smarttag.docx")
+{
+ uno::Reference<drawing::XShapes> xGroupShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xShape(xGroupShape->getByIndex(0), uno::UNO_QUERY);
+ // First run of shape text was missing due to the w:smartTag wrapper around it.
+ CPPUNIT_ASSERT_EQUAL(OUString("Box 2"), xShape->getString());
+
+ // Font size of the shape text was 10.
+ CPPUNIT_ASSERT_EQUAL(12.f, getProperty<float>(xShape->getText(), "CharHeight"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN793262, "n793262.docx")
+{
+ uno::Reference<container::XEnumerationAccess> xHeaderText = getProperty< uno::Reference<container::XEnumerationAccess> >(getStyles("PageStyles")->getByName("Standard"), "HeaderText");
+ uno::Reference<container::XEnumeration> xHeaderParagraphs(xHeaderText->createEnumeration());
+ xHeaderParagraphs->nextElement();
+ // Font size of the last empty paragraph in the header was ignored, this was 11.
+ CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xHeaderParagraphs->nextElement(), "CharHeight"));
+
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ // Cell margins as direct formatting were ignored, this was 0.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(76), getProperty<sal_Int32>(xTable->getCellByName("A1"), "TopBorderDistance"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN793998, "n793998.docx")
+{
+ sal_Int32 nTextPortion = parseDump("/root/page/body/txt/Text[1]", "nWidth").toInt32(); // Width of the first (text) portion
+ sal_Int32 nTabPortion = parseDump("/root/page/body/txt/Text[2]", "nWidth").toInt32(); // Width of the second (tab) portion
+ sal_Int32 nParagraph = parseDump("/root/page/body/txt/infos/bounds", "width").toInt32(); // Width of the paragraph
+ sal_Int32 nRightMargin = 3000;
+ // The problem was that the tab portion didn't ignore the right margin, so text + tab width wasn't larger than body (paragraph - right margin) width.
+ CPPUNIT_ASSERT(nTextPortion + nTabPortion > nParagraph - nRightMargin);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN779642, "n779642.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
+
+ // First problem: check that we have 2 tables, nesting caused the
+ // creation of outer one to fail
+ uno::Reference<container::XIndexAccess> xTables(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong number of imported tables", sal_Int32(2), xTables->getCount());
+
+ // Second problem: check that the outer table is in a frame, at the bottom of the page
+ uno::Reference<text::XTextTable> xTextTable(xTextTablesSupplier->getTextTables()->getByName("Table2"), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xAnchor(xTextTable->getAnchor(), uno::UNO_QUERY);
+ uno::Any aFrame = xAnchor->getPropertyValue("TextFrame");
+ uno::Reference<beans::XPropertySet> xFrame;
+ aFrame >>= xFrame;
+ sal_Int16 nValue;
+ xFrame->getPropertyValue("VertOrient") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong vertical orientation", nValue, text::VertOrientation::BOTTOM);
+ xFrame->getPropertyValue("VertOrientRelation") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong vertical orientation relation", nValue, text::RelOrientation::PAGE_PRINT_AREA);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTbLrHeight, "tblr-height.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
+ // btLr text direction was imported as MIN, it should be FIX to avoid incorrectly large height in case of too much content.
+ CPPUNIT_ASSERT_EQUAL(text::SizeType::FIX, getProperty<sal_Int16>(xTableRows->getByIndex(0), "SizeType"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testBnc865381, "bnc865381.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
+ // Second row has a vertically merged cell, make sure size type is not FIX in that case (otherwise B2 is not readable).
+ CPPUNIT_ASSERT(text::SizeType::FIX != getProperty<sal_Int16>(xTableRows->getByIndex(1), "SizeType"));
+ // Explicit size of 41 mm100 was set, so the vertical text in A2 was not readable.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(xTableRows->getByIndex(1), "Height"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo53985, "fdo53985.docx")
+{
+ // Unhandled exception prevented import of the rest of the document.
+
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), xTables->getCount()); // Only 4 tables were imported.
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo59638, "fdo59638.docx")
+{
+ // The problem was that w:lvlOverride inside w:num was ignores by dmapper.
+
+ uno::Reference<beans::XPropertySet> xPropertySet(getStyles("NumberingStyles")->getByName("WWNum1"), uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xLevels(xPropertySet->getPropertyValue("NumberingRules"), uno::UNO_QUERY);
+ uno::Sequence<beans::PropertyValue> aProps;
+ xLevels->getByIndex(0) >>= aProps; // 1st level
+
+ for (int i = 0; i < aProps.getLength(); ++i)
+ {
+ const beans::PropertyValue& rProp = aProps[i];
+
+ if (rProp.Name == "BulletChar")
+ {
+ // Was '*', should be 'o'.
+ CPPUNIT_ASSERT_EQUAL(OUString("\xEF\x82\xB7", 3, RTL_TEXTENCODING_UTF8), rProp.Value.get<OUString>());
+ return;
+ }
+ }
+ CPPUNIT_FAIL("no BulletChar property");
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo61343, "fdo61343.docx")
+{
+ // The problem was that there were a groupshape in the doc, followed by an
+ // OLE object, and this lead to a crash.
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDraws->getCount());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testToolsLineNumbering, "tools-line-numbering.docx")
+{
+ /*
+ * Test the line numbering feature import (Tools->Line Numbering ...)
+ *
+ * xray ThisComponent.getLineNumberingProperties().IsOn == True
+ * xray ThisComponent.getLineNumberingProperties().CountEmptyLines == True
+ * xray ThisComponent.getLineNumberingProperties().NumberPosition == 0
+ * xray ThisComponent.getLineNumberingProperties().NumberingType == 4
+ * xray ThisComponent.getLineNumberingProperties().SeparatorInterval == 3
+ */
+
+ bool bValue = false;
+ sal_Int32 nValue = -1;
+
+ uno::Reference< text::XTextDocument > xtextDocument(mxComponent, uno::UNO_QUERY);
+ uno::Reference< text::XLineNumberingProperties > xLineProperties( xtextDocument, uno::UNO_QUERY_THROW );
+ uno::Reference< beans::XPropertySet > xPropertySet = xLineProperties->getLineNumberingProperties();
+
+ xPropertySet->getPropertyValue("IsOn") >>= bValue;
+ CPPUNIT_ASSERT_EQUAL(true, bValue);
+
+ xPropertySet->getPropertyValue("CountEmptyLines") >>= bValue;
+ CPPUNIT_ASSERT_EQUAL(true, bValue);
+
+ xPropertySet->getPropertyValue("NumberPosition") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nValue);
+
+ xPropertySet->getPropertyValue("NumberingType") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(4), nValue);
+
+ xPropertySet->getPropertyValue("SeparatorInterval") >>= nValue;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nValue);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testfdo78904, "fdo78904.docx")
+{
+ uno::Reference<text::XTextFramesSupplier> xTextFramesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xIndexAccess(xTextFramesSupplier->getTextFrames(), uno::UNO_QUERY);
+ if (xIndexAccess->getCount())
+ {
+ uno::Reference<beans::XPropertySet> xFrame(xIndexAccess->getByIndex(0), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(0)), getProperty<sal_Int32>(xFrame, "HoriOrientPosition"));
+ }
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo60922, "fdo60922.docx")
+{
+ // This was 0, not 100, due to wrong import of w:position w:val="0"
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(100), getProperty<sal_Int32>(getRun(getParagraph(1), 1), "CharEscapementHeight"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo59273, "fdo59273.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ // Was 115596 (i.e. 10 times wider than necessary), as w:tblW was missing and the importer didn't set it.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(12961), getProperty<sal_Int32>(xTextTable, "Width"));
+
+ uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
+ // Was 9997, so the 4th column had ~zero width
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(7498), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators")[2].Position);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testConditionalstylesTablelook, "conditionalstyles-tbllook.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ // Background was -1.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x7F7F7F), getProperty<sal_Int32>(xTable->getCellByName("A1"), "BackColor"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo63685, "fdo63685.docx")
+{
+ // An inline image's wrapping should be always zero, even if the doc model has a non-zero value.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(getShape(1), "TopMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN592908_Frame, "n592908-frame.docx")
+{
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+ text::WrapTextMode eValue;
+ xPropertySet->getPropertyValue("Surround") >>= eValue;
+ CPPUNIT_ASSERT_EQUAL(eValue, text::WrapTextMode_PARALLEL);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN592908_Picture, "n592908-picture.docx")
+{
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+ text::WrapTextMode eValue;
+ xPropertySet->getPropertyValue("Surround") >>= eValue;
+ CPPUNIT_ASSERT_EQUAL(eValue, text::WrapTextMode_PARALLEL);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN779630, "n779630.docx")
+{
+ // First shape: date picker
+ uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.DateField")));
+ CPPUNIT_ASSERT_EQUAL(OUString("date default text"), getProperty<OUString>(xPropertySet, "HelpText"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(8), getProperty<sal_Int16>(xPropertySet, "DateFormat"));
+ CPPUNIT_ASSERT_EQUAL(true, bool(getProperty<bool>(xPropertySet, "Dropdown")));
+
+ // Second shape: combo box
+ xControlShape.set(getShape(2), uno::UNO_QUERY);
+ xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
+ xServiceInfo.set(xPropertySet, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(true, bool(xServiceInfo->supportsService("com.sun.star.form.component.ComboBox")));
+ CPPUNIT_ASSERT_EQUAL(OUString("dropdown default text"), getProperty<OUString>(xPropertySet, "DefaultText"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), getProperty< uno::Sequence<OUString> >(xPropertySet, "StringItemList").getLength());
+ CPPUNIT_ASSERT_EQUAL(true, bool(getProperty<bool>(xPropertySet, "Dropdown")));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testIndentation, "indentation.docx")
+{
+ uno::Reference<uno::XInterface> xParaLTRTitle(getParagraph( 1, "Title aligned"));
+ uno::Reference<uno::XInterface> xParaLTRNormal(getParagraph( 2, ""));
+
+ // this will test the text direction for paragraphs
+ CPPUNIT_ASSERT_EQUAL(text::WritingMode2::LR_TB, getProperty<sal_Int16>( xParaLTRTitle, "WritingMode" ));
+ CPPUNIT_ASSERT_EQUAL(text::WritingMode2::LR_TB, getProperty<sal_Int16>( xParaLTRNormal, "WritingMode" ));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testPageBorderShadow, "page-border-shadow.docx")
+{
+ // The problem was that in w:pgBorders, child elements had a w:shadow attribute, but that was ignored.
+ table::ShadowFormat aShadow = getProperty<table::ShadowFormat>(getStyles("PageStyles")->getByName("Standard"), "ShadowFormat");
+ CPPUNIT_ASSERT_EQUAL(COL_BLACK, sal_uInt32(aShadow.Color));
+ CPPUNIT_ASSERT_EQUAL(table::ShadowLocation_BOTTOM_RIGHT, aShadow.Location);
+ // w:sz="48" is in eights of a point, 1 pt is 20 twips.
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(convertTwipToMm100(48/8*20)), aShadow.ShadowWidth);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN816593, "n816593.docx")
+{
+ // Two consecutive <w:tbl> without any paragraph in between, but with different tblpPr. In this
+ // case we need to have 2 different tables instead of 1
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xTables->getCount());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN820509, "n820509.docx")
+{
+ // Design mode was enabled.
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<view::XFormLayerAccess> xFormLayerAccess(xModel->getCurrentController(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(false, bool(xFormLayerAccess->isFormDesignMode()));
+
+ // M.d.yyyy date format was unhandled.
+ uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
+ uno::Reference<lang::XServiceInfo> xServiceInfo(xPropertySet, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(8), getProperty<sal_Int16>(xPropertySet, "DateFormat"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testN830205, "n830205.docx")
+{
+ // Previously import just crashed (due to infinite recursion).
+ getParagraph(1, "XXX");
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTableAutoColumnFixedSize, "table-auto-column-fixed-size.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+
+ // Width was not recognized during import when table size was 'auto'
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(convertTwipToMm100(3996)), getProperty<sal_Int32>(xTextTable, "Width"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTableAutoColumnFixedSize2, "table-auto-column-fixed-size2.docx")
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+ // This was 17907, i.e. the sum of the width of the 3 cells (10152 twips each), which is too wide.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(16891), getProperty<sal_Int32>(xTextTable, "Width"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo46361, "fdo46361.docx")
+{
+ uno::Reference<container::XIndexAccess> xGroupShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(xGroupShape->getByIndex(0), uno::UNO_QUERY);
+ // This was CENTER.
+ CPPUNIT_ASSERT_EQUAL(drawing::TextVerticalAdjust_TOP, getProperty<drawing::TextVerticalAdjust>(xShape, "TextVerticalAdjust"));
+ uno::Reference<text::XText> xText = uno::Reference<text::XTextRange>(xShape, uno::UNO_QUERY)->getText();
+ uno::Reference<text::XTextRange> xParagraph = getParagraphOfText(1, xText);
+ // This was LEFT.
+ CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast<style::ParagraphAdjust>(getProperty<sal_Int16>(xParagraph, "ParaAdjust")));
+ // This was black, not green.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0x008000), getProperty<sal_Int32>(getRun(xParagraph, 1), "CharColor"));
+ // \n char was missing due to unhandled w:br.
+ CPPUNIT_ASSERT_EQUAL(OUString("text\ntext"), uno::Reference<text::XTextRange>(xGroupShape->getByIndex(1), uno::UNO_QUERY)->getString());
+ // \n chars were missing, due to unhandled multiple w:p tags.
+ CPPUNIT_ASSERT_EQUAL(OUString("text\ntext\n"), uno::Reference<text::XTextRange>(xGroupShape->getByIndex(2), uno::UNO_QUERY)->getString());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo65632, "fdo65632.docx")
+{
+ // The problem was that the footnote text had fake redline: only the body
+ // text has redline in fact.
+ uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText(xFootnotes->getByIndex(0), uno::UNO_QUERY);
+ //uno::Reference<text::XTextRange> xParagraph = getParagraphOfText(1, xText);
+ CPPUNIT_ASSERT_EQUAL(OUString("Text"), getProperty<OUString>(getRun(getParagraphOfText(1, xText), 1), "TextPortionType"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo66474, "fdo66474.docx")
+{
+ // The table width was too small, so the text in the second cell was unreadable: this was 1397.
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(10492), getProperty<sal_Int32>(xTables->getByIndex(0), "Width"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testGroupshapeRotation, "groupshape-rotation.docx")
+{
+ // Rotation on groupshapes wasn't handled at all by the VML importer.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(315 * 100), getProperty<sal_Int32>(getShape(1), "RotateAngle"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testBnc780044Spacing, "bnc780044_spacing.docx")
+{
+ // The document has global w:spacing in styles.xml , and local w:spacing in w:pPr, which however
+ // only applied to text runs, not to as-character pictures. So the picture made the line higher.
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+ xCursor->jumpToLastPage();
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(1), xCursor->getPage());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTableAutoNested, "table-auto-nested.docx")
+{
+ // This was 176, when compat option is not enabled, the auto paragraph bottom margin value was incorrect.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(494), getProperty<sal_Int32>(getParagraph(1), "ParaBottomMargin"));
+
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ // This was 115596, i.e. the width of the outer table was too large.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(23051), getProperty<sal_Int32>(xTables->getByIndex(1), "Width"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTableStyleParprop, "table-style-parprop.docx")
+{
+ // The problem was that w:spacing's w:after=0 (a paragraph property) wasn't imported from table style.
+ uno::Reference<text::XTextTable> xTable(getParagraphOrTable(1), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xCell(xTable->getCellByName("A1"), uno::UNO_QUERY);
+ // This was 353, the document default, i.e. paragraph property from table style had no effect.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(getParagraphOfText(1, xCell->getText()), "ParaBottomMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTablePagebreak, "table-pagebreak.docx")
+{
+ // Page break inside table: should be ignored (was style::BreakType_PAGE_BEFORE before).
+ CPPUNIT_ASSERT_EQUAL(style::BreakType_NONE, getProperty<style::BreakType>(getParagraphOrTable(2), "BreakType"));
+
+ // This one is outside the table: should not be ignored.
+ CPPUNIT_ASSERT_EQUAL(style::BreakType_PAGE_BEFORE, getProperty<style::BreakType>(getParagraph(3), "BreakType"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo68607, "fdo68607.docx")
+{
+ // Bugdoc was 8 pages in Word, 1 in Writer due to pointlessly wrapping the
+ // table in a frame. Exact layout may depend on fonts available, etc. --
+ // but at least make sure that our table spans over multiple pages now.
+ CPPUNIT_ASSERT(getPages() > 1);
+}
+
+DECLARE_OOXMLEXPORT_TEST(testVmlTextVerticalAdjust, "vml-text-vertical-adjust.docx")
+{
+ uno::Reference<drawing::XShapes> xOuterGroupShape(getShape(1), uno::UNO_QUERY);
+ uno::Reference<drawing::XShapes> xInnerGroupShape(xOuterGroupShape->getByIndex(0), uno::UNO_QUERY);
+ uno::Reference<drawing::XShape> xShape(xInnerGroupShape->getByIndex(0), uno::UNO_QUERY);
+ // Was CENTER.
+ CPPUNIT_ASSERT_EQUAL(drawing::TextVerticalAdjust_TOP, getProperty<drawing::TextVerticalAdjust>(xShape, "TextVerticalAdjust"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testFdo69636, "fdo69636.docx")
+{
+ // The problem was that the mso-layout-flow-alt:bottom-to-top VML shape property wasn't handled for sw text frames.
+ uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
+ comphelper::SequenceAsHashMap aCustomShapeGeometry(xPropertySet->getPropertyValue("CustomShapeGeometry"));
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(-270), aCustomShapeGeometry["TextPreRotateAngle"].get<sal_Int32>());
+}
+
+DECLARE_OOXMLEXPORT_TEST(testChartProp, "chart-prop.docx")
+{
+ // The problem was that chart was not getting parsed in writer module.
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount());
+
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list