summaryrefslogtreecommitdiff
path: root/sw/qa/extras
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-02-08 12:34:55 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-02-08 14:33:28 +0100
commite15f9ceafdf6e8b21cd315936ab44edfa91dd8b2 (patch)
treee099d0ba1a9052073242518fda35c74b72825a6b /sw/qa/extras
parent8880c773e779710dc0a08760e92afd709a73ca31 (diff)
fdo#59953 RTF import: fix unreadable graphic and nested cell contents
There were two issues here: 1) c3b0f13546b30e5db3aecd311c7178e4e0933208 added a mechanism to work around broken documents, but that didn't deal with nested tables. Additionally, the check compared the max row width with the width of the last cell, not the last row. 2) d276d3f3ae112a11c8cb5768650d147cbb94275e cleaned up implicit horizontal merge detection, but didn't deal with valid documents, where each row definition is available twice. Change-Id: I1a32ec2fcb0d1a8fca7a7bd26501d3daf17880c9
Diffstat (limited to 'sw/qa/extras')
-rw-r--r--sw/qa/extras/rtfimport/data/fdo59953.rtf16
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx12
2 files changed, 28 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/fdo59953.rtf b/sw/qa/extras/rtfimport/data/fdo59953.rtf
new file mode 100644
index 000000000000..66432e32ab85
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/fdo59953.rtf
@@ -0,0 +1,16 @@
+{\rtf1\ansi\deff0
+\trowd\cellx7384\cellx9652
+\pard\intbl\sl0
+A1
+\cell
+\pard\intbl\sl0\lin10
+B1
+\cell
+\trowd\cellx7384\cellx9652\row
+\trowd\cellx7384\cellx9652
+\pard\intbl A2\cell
+\pard\intbl B2\cell
+\trowd\cellx7384\cellx9652
+\row
+\pard\itap0\sl0\lin14\rin8 \par
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index a3a2f12e651a..446e9c925c01 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -142,6 +142,7 @@ public:
void testFdo58646();
void testFdo59419();
void testFdo58076_2();
+ void testFdo59953();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -255,6 +256,7 @@ void Test::run()
{"fdo58646.rtf", &Test::testFdo58646},
{"fdo59419.rtf", &Test::testFdo59419},
{"fdo58076-2.rtf", &Test::testFdo58076_2},
+ {"fdo59953.rtf", &Test::testFdo59953},
};
header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -1106,6 +1108,16 @@ void Test::testFdo58076_2()
CPPUNIT_ASSERT_EQUAL(sal_Int32(TWIP_TO_MM100(8345)), getProperty<sal_Int32>(xDraws->getByIndex(0), "HoriOrientPosition"));
}
+void Test::testFdo59953()
+{
+ 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);
+ // Cell width of A1 was 4998 (e.g. not set / not wide enough, ~50% of total width)
+ uno::Reference<table::XTableRows> xTableRows(xTable->getRows(), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int16(7650), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators")[0].Position);
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();